爲什麼重構
重構不是銀彈,可是幫助你達到如下幾個目的算法
改進軟件設計
不良的程序須要更多的代碼。而代碼越多,正確的修改就越困難。改進代碼設計的一個重要原則就是消除重複代碼性能
使軟件更容易被理解
優秀的代碼可以讓接收你代碼的付出更少的學習成本。學習
重構更容易找到bug
重構能加深對代碼的理解。而後就更容易找到bug優化
重構提升開發速度
更快理解代碼,更快找到bug,更多可重用的模塊。不是更快了嗎設計
什麼時候重構
重構何時均可以作。開發
三次法則
第一次作某件事時只管去作;第二次作相似的事會產生反感,但不管如何仍是能夠去作;第三次在作相似的是,你就應該重構。事不過三,三則重構。重構
能夠重構的狀況
- 添加功能時能夠重構。重構能夠幫助咱們理解代碼。而後更快開始新功能的開發
- 修改錯誤時能夠重構。收到錯誤報告。說明你沒有發現代碼的錯誤。須要重構
- 複審代碼時能夠重構。經過重構看的更遠
什麼時候不應重構
- 重構還不如重寫來的快的狀況
- 最後期限的時候不要重構,別本身挖坑。由於在最後階段重構的提升生產力的做用已經晚了
重構和性能
不能由於追求代碼的純潔性而忽視代碼的性能
三個編寫快速軟件的方法:軟件
- 時間預算法。分解你的設計時要考慮時間預算。不能超過期間限制。只針對於對時間要求很高的系統
- 持續關注法。任什麼時候候寫代碼的時候都考慮性能。可是大多數的時間都是花在一小半的代碼上的。你會作不少無用功
- 數據統計法。用攻擊數據直接進入代碼優化階段。(經常使用)