天天看點

《程式員修煉之道——從小工到專家》之一

《程式員修煉之道——從小工到專家》之一

“如果我在管理一個項目,這本書的作者就是我想要的人……如果辦不到,我就會要讀過他們書的人。”——Ward Cunningham

0.作者介紹

【Andy Hunt】一位熱切的木匠和音樂家,但奇怪的是,讓你們更需要作為顧問的他。工作領域包括電信、銀行、金融服務、公共服務以及一些更奇特的領域,比如醫學成像、圖形藝術、Internet 服務。Andy的專長是經過驗證的技術與先進的技術混合在一起,建立各種新穎的——但也實用的——解決方案。

【Dave Thomas】喜歡駕駛單引擎飛機飛行,為各種難題尋找優雅的解決方案,提供諸多領域裡的咨詢服務——航空、銀行、金融服務、電信、交通運輸以及Internet,曾建立公司,為世界各地客戶開發成熟、定制的軟體項目。

0.前言

【1】公司新人必備的學習材料

【2】不止讀一遍的書

【3】看似樸素道理,實則經驗之談

【4】推薦書單

【5】水準不夠時,你永遠不懂那些樸素道理的重要

【6】堅持正确的原則,并付諸實踐

1.注重實效的哲學

哲學所講的大都是思想和意識,是頂層方法論。從本質上認識問題,認識注重實效的重要性以及主要途徑。

【1】在自己的項目的各個時期,對其負責。不找借口,不推脫,提供針對問題的多個解決方案,讓問題得到足夠好的解決

【2】不能容忍軟體慢慢變的複雜,難以維護的任何修改。避免“破窗戶”,避免因程式員的偷懶而欲速不達

【3】項目資源沒充分擷取時,做架構,做demo,慢慢的“石頭湯”變成美味的“肉湯”。避免“萬事俱備”才啟動項目的“啟動雜役”

【4】軟體不可能做到完美,需求的變更,隐藏很深bug的出現都會帶來軟體的變動。不過度修飾、求精而損壞完好程式,盡量早的讓使用者回報,參與優化

【5】保持知識資産不失時效。政策:定投、多遠化、管理風險、定期評估;具體:學習新語言、閱讀技術書籍、上課、技術論壇、上網

【6】交流包括面談、文檔、電子郵件、電話、示範文稿等,注意各自的特點。你說什麼和你怎麼說同樣重要。 避免交流方式不對,導緻“潰于蟻穴”

2.注重實效的途徑

【1】知識重複。簡單的知識用代碼表述,足夠;複雜的知識加上注釋;先有文檔,再有代碼,更新代碼,更新文檔;注釋跟随代碼變動而變更,否則整個工程的注釋将不可信

【2】正交代的設計思想,讓系統更清晰、易測試、易擴充,提高生産率,降低風險。代碼解除耦、避免使用全局變量、避免相似的函數

【3】靈活的架構便于子產品撤銷與替換,注重擴充性。 唾棄糟糕的封裝、高度耦合以及寫死的邏輯

【4】曳光彈 時髦的名字,找到目标或者真正的問題。設計原型以及原型忽略細節的特點

【5】習慣用所熟悉的程式設計語言思考問題,擴充語言,“他山之石,可以攻玉”

【6】項目進度評估,資源配置設定、項目分解、人員安排的品質共同決定。項目流程:檢查需求、分析風險、設計、實作、內建、向使用者确認。 謹慎評估

繼續閱讀