《高效程序員的45個習慣:敏捷開發修煉之道》摘記一

態度決定一切

1、做事

     當出現問題,BUG的時候不要抱怨,指責,最終要的是解決問題。

2、欲速則不達

    不要墜入快速的簡單修復之中,要投入時間和精力理解它,並使代碼保持整潔、敞亮。

    不要孤立的編碼,花時間閱讀其他人的代碼。

    使用單元測試。

3、對事不對人

    不要一味否定別人的意見,要提出自己的看法。

    只有更好,沒有最好。

    不帶任何情緒並不是盲目接受所有的觀點。用合適的詞和理由去解釋爲什麼不贊同,並提出明確的問題。

4、排除萬難,奮勇前進

    如果發現項目中代碼有問題,向其他成員反饋問題,並且想辦法重寫它。

學無止境

5、跟蹤變化

    迭代和增量式的學習:記錄下想學的東西——當聽到不熟悉的術語或短語時,簡要的記錄,然後有計劃的深入學習。

    瞭解最新行情:選擇一些公認的優秀技術博客,瞭解頂尖博客作者們在關注什麼。

    參加本地的用戶組活動。

    參加研討會議。

    如飢似渴的閱讀:好書,期刊雜誌等。

6、對團隊投資

    提供你和團隊更好的學習平臺:可以搞一些類似午餐會議,提供一個團隊分享的平臺

    不要侷限於純技術的主題

7、懂得丟棄

    學習新的東西,丟棄舊的東西。

    要果斷丟棄舊習慣,一味遵循過時的舊習慣會危害你的職業生涯。

    不是完全忘記舊的習慣,而是在使用適當的技術時才使用它。

    對所使用的語言,要總結熟悉它的特性,並比較這些特性在新語言或新版本中有什麼不同。

8、打破砂鍋問到底

    要不停地問爲什麼,直到明白事情的本質。

9、把握開發節奏

    每天下班的時候提交所有的工作,包括測試代碼。第二天開始新的內容。

    每天固定時間固定地點的站立會議。

    最大的節拍就是迭代時間,一般是1-4周。

    項目開發需要一致和穩定的節奏。編輯,運行測試,代碼複審,一致的迭代,然後發佈。

交付用戶想要的軟件

10、讓客戶做決定

    開發、經理、或者業務分析師不應該做業務方面的決定。用業務負責人能夠理解的語言,向他們詳細解釋遇到的問題,由他們做決定。

    不要用低級別或沒有價值的問題打擾業務人員。

11、讓設計指導而不是操縱開發

    好的設計應該是正確的,而不是精確的。設計不應該涉及細節。

    做一些類層次的設計:類名,職責,協作者。

    白板,草圖,便利貼是非常好的設計工具。

12、合理的使用技術

    根據需要選擇技術。

    新技術就像新工具,它可以幫助你更好的工作,它自己不應該成爲你的工作。

    不要開發那些容易下載到的東西。

13、保持可以發佈

    提交代碼之前: 在本地運行測試;檢出最新的代碼;提交代碼

    可以弄一個持續集成系統.

14、提早集成,頻繁集成

    決不要做大爆炸式的集成。

    集成也不要太頻繁,一天幾次就差不多了。

15、提早實現自動化部署

    系統安裝、部署應該簡單、可靠及可重複。

16、使用演示獲得頻繁反饋

    需求就像是流動的油墨。

    定期地,如一個迭代的結束,就與客戶會晤,並演示你已經完成的功能特性。

    維護項目術語表。

    會晤也不要太頻繁,只有在你做完一些東西可以給客戶演示的時候 ,才進行。

17、使用迭代,增量發佈

    給我一份詳細的長期計劃,我就給你一個註定完蛋的項目。 (Show me a detail long-term plan, and I'll show you a project that's doomed.)

    確定產品可用的核心功能,然後把它們放在生產環境中,越早交到用戶的手裏越好。

    發佈帶有最小卻可用功能塊的產品,每個增量開發中,使用1-4周左右迭代時間。

18、固定的價格就意味着背叛承諾

    構建系統最初、小的和有用的部分,之後再根據功能迭代,每個迭代給客戶選擇繼續還是取消合同。每個迭代的費用還是相對可以評估的。並且客戶承擔更低的風險。

    

    

敏捷反饋

19、守護天使

    編寫能產生反饋的代碼。-》自動化單元測試。

    在後臺架設一臺構建機器,不斷獲得最新版本的源代碼,然後編譯代碼,運行單元測試,有錯誤及時通知。

    如果單元測試到位,可以隨意重構代碼。

    簡單屬性的訪問方法和價值不大的方法是不值得寫單元測試的。

20、先用它再實現它

    編程之前,先寫測試。測試驅動開發

    使你站在代碼用戶的角度。

    有助於消除過度的設計。

    好的設計並不意味着需要更多的類。

    只有在具體理由的時候纔開始編碼,你可以專注於接口設計,而不會被很多實現的細節干擾。

    測試優先和提交代碼之前的測試要區分開來,測試先行幫助改進設計,提交代碼之前還需要進行測試。

21、不同環境,就有不同問題

    使用自動化在多個平臺上運行測試。    

22、自動驗收測試

   爲核心的業務邏輯創建測試。讓客戶單獨驗證這些測試,要讓他們像一般的測試一樣可以自動運行。

23、度量真實的進度

     專注於你的方向。

    在真正完成一項任務時,要清楚知道完成這個任務真正花費的時間。

    使用代辦事項。

    度量剩下的工作量。要評估那些需要完成的代辦事項。

24、傾聽用戶的聲音

    沒有給用戶很友好的提示。

    每一個抱怨的背後都隱藏了一個事實,需要努力找出背後真正的問題。

     如果代碼問題解決不了,可以用修改文檔和培訓來解決。

    

敏捷編碼

25、代碼要清晰的表達意圖

    開發代碼時,應該更注重可讀性,而不是隻圖自己方便。

    代碼必須說出意圖,而且富有表達力。

26、用代碼溝通

    建立代碼文檔:利用代碼本身;利用註釋溝通代碼之外的問題。

    不需要註釋來包裹你的代碼。

    使用細心挑選的名稱和清晰的執行路徑,代碼幾乎不需要註釋。

    對於類中的方法,可能要說明下面的信息: 目的;需求;承諾;異常。

    解釋代碼做了什麼的註釋用處不那麼大。註釋要說明爲什麼這樣寫代碼。

27、動態評估取捨

    強調性能的重要性情有可原。但如果性能已經足夠好了,就沒有必要再花時間去投入了。

    沒有最佳解決方案。

    過早的優化是萬惡之源。

28、增量式編程

    它可以精煉並結構化你的代碼。

    會使你傾向於創建更小的方法和更內聚性的類。

    持續做一些細小而有用的事情,而不是做一段長時間的編程或重構。

    在很短的編輯/構建/測試循環中編寫代碼。

    要想重構代碼一樣重構你的測試,而且要經常重構測試。

29、保持簡單

    不要被迫過分設計,也不要將代碼過分複雜化。

    開發人員應該爲自己創建一個簡單並且可用的設計而驕傲。

    簡單不是簡陋。

    不要盲目使用模式、原則和高難度技術之類的東西。

    當你覺得代碼中沒有一行是多餘的,並且仍能交付全部的功能,這種感覺就對了。

30、編寫內聚的代碼

    組件中各個類的功能類似,且功能緊密相關,這就是組件的內聚性。

    類中的方法和屬性共同完成了一個或一系列緊密相關的功能,這就是類的內聚性。

    MVC模式分離展示邏輯、控制器和模型,它可以讓開發人員獲得更高的內聚性。

    內聚性會影響一個組件的可重用性。

    讓類的功能儘量集中,讓組件儘量小。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章