程式設計師修煉之道 一

2021-10-08 14:54:42 字數 1951 閱讀 6729

最近兩周突然就忙了起來,需求乙個接著乙個,短時間內還不能完全適應的我有些手足無措心力交瘁,不過通過加班總歸是緩了過來。所幸產出的**經過**的review之後沒啥大問題,遂打算抽點時間總結一下近期的工作經驗。

由於本人挺喜歡《程式設計師修煉之道》這本書(現在第二版已經由雲風翻譯完成),個人認為裡面提到的不少觀點和建議對程式設計師(尤其是我這種彩筆)大有裨益,而且這些寶貴的經驗也能在工作實踐中得到反向驗證,故此類涉及程式設計師解決問題的方**的相關問題**都會以這本書的名字命名,這篇部落格算是開個頭吧(也不知自己能不能堅持下來)。

「只要目標是對的,偏離方向的可能性就會小很多,然後如何實現目標往往只是乙個時間問題。」

對程式設計師來說,解決問題就是實現需求,實現需求就是首要目標(聽起來像是一句廢話)。但是在面對乙個大型專案時,乙個需求從最初的提出到最後的測試通過,整個過程中涉及到的人員和要素很多,開發人員可能會因為各種原因產生偏離目標的奇怪想法,僅以本人為參考,舉幾個例子:

理順了需求,正在思考如何設計。同事a:對於需求裡的某件事,我打算這麼處理blabla,你看怎麼樣?(和我沒什麼關係,隨他咋處理吧)

每個人各司其職把自己的工作做好就行。

同事c的做事節奏好慢(我自己手上有活還要一邊幫他除錯,還挺煩的,懶得管了)。

對於以上幾點,我總結出的經驗就是:

很多時候你無法定義哪些事情是"你自己的工作",這會導致一種情況的出現:每個人寫自己的**,然後問題在最後才暴露出來,拖慢進度。但如果第一反應是把許多任務作視為"需要共同解決的問題"就會好很多(事實上也確實是這樣),團隊成員可以通過溝通提早發現並解決一些問題,這樣帶來的正反饋既節省了溝通成本,又能提高工作效率。

情緒問題是難以避免的,但是不適合帶到工作中來,多告訴自己解決問題為重。要麼想想是否可以改進某些令人厭煩的流程,要麼就忍忍吧(草)。

實際上如何與他人溝通、了解他們的做事風格和情緒等也是你在解決問題的過程中會碰到的困難之一,能否把它們也視為問題的一部分來處理?(就好像是閒暇之餘學習人類行為和心理學- -)

如果你在實現需求的過程中經常提醒自己"首要目的是解決問題",以上三點都是比較容易察覺並總結出來的。

「**是意圖的體現,而如果連意圖都無法表述清楚,就完全沒有寫**的必要了。」

對於大型專案而言,如果能在一開始將需求盡可能詳細地描述為乙個或多個流程,不僅能更加精準地把握需求的進度和開發方向,又能以"分而治之"的方法將大問題分解成小問題逐一破解,也便於團隊成員在出現問題時快速定位問題發生在哪個具體環節。

以遊戲為例,大部分需求可以概括為玩家的觀察、思考、輸入、得到反饋的乙個流程。而站在客戶端程式的角度,就可以進一步翻譯為:玩家從登陸遊戲再到退出的過程中,客戶端需要根據玩家的輸入做出什麼反饋,如何處理產生的資料,回應伺服器下發的訊息的整個流程。

同時也不難發現,基於這個方法結合需求設計和實現**,各個子流程又能不斷向下被細分為若干個單一職責的類、介面或函式,**的內聚性能夠得到一定保證,也有利於後期**的擴充套件和維護。

「你是來解決問題的,在解決乙個問題之後又引入了乙個新的問題等於啥也沒乾。」

專案發展到一定規模之後,最初的**都會難以避免地出現逐漸腐爛的跡象,所謂的屎山就是這麼來的。扒完層層屎山後毫不猶豫地往上再堆一坨,雖然能解決燃眉之急,但對專案**的維護來說毫無裨益。如果時間允許的話,趁著還能吹噓一下自己有一點職業操守,能改一點是一點。一次簡單的封裝,乙個簡潔的介面,說不定能讓下乙個倒霉的程式設計師找到一絲慰藉

老生常談了,be a man, bro.

以上觀點都可在《程式的修煉之道》一書中尋到蛛絲馬跡。個人認為,不僅是程式設計師,對於每乙個人來說,做事的方法和態度始終貫穿整個職業生涯,影響著自己看問題的角度,以及思考並解決問題時產生的認知。然後這些認知又反過來不斷修正自己得出的方**和經驗,在不長不短的職業生涯裡形成乙個良性迴圈,個人才得以不斷發展和進步。雖然有時候這些所謂的態度在他人看來可能是愚蠢、中二或是沒啥意義,但是有些自己的堅持,對社會或是國家,甚至是世界,能做出一丟丟貢獻也是極好的。

程式設計師修煉之道

在所有的弱點中,最大的弱點就是害怕自己暴露弱點。j.b bossuet,politics from holy writ,1709 provide options,don t make lame excuses 提供各種選擇,不要找蹩腳的藉口 don t live with broken window...

程式設計師修煉之道

身為一名程式設計師,當一本叫做 程式設計師修煉之道 的書出現在面前,又怎能忍住不去看呢?於是,出現了下邊的讀書筆記。該書確實博大精深,包含了很多內容,但很多都是點到為止。那種心中有劍的感覺,躍然紙上,或許高手都是如此吧。根據多年武俠觀摩經驗,一定要把不懂的記下來,以後肯定大有用處。那就記。第一章 注...

程式設計師修煉之道

1 通過自己工作上的不斷努力,成為公司的骨幹員工,構建自己的不可替代性。2 學院派講究的是把簡單問題複雜化,實戰派講究的是把複雜問題簡單化,模組化。3 c語言,資料結構與演算法,編譯原理。4 修煉程式的內功,是學習抽象能力和描述能力,與語言無關。5 獲得智力資本,從而為自己的資產提供最佳的方式 摘自...