2016-05-26
新大樓903
曹冬林
定義:保證原有功能的情況下,重組、重排代碼
Y:重構應隨時隨地進行;當看到一個更好的方式來做同一件事的時候
N:穩定的代碼;別人的代碼;沒有重構方案的情況下
代碼的壞味道:
- Duplicate Code
- Long Method
- Large Class
- Long Parameter List
- Divergent Change(發散式變化)
- Shotgun Surgery(散彈式修改)
- Feature Envy(依戀情結)
- Switch Statements(Switch驚悚現身)
常用的重構手段:
- Extract Method(提煉函數)
- Extract Class(提煉類)
- Inline Class(將類內聯化)
- Move Method(搬移函數)
重構技巧:
- 分解表達式(用函數代替條件表達式)
- 移除雙重否定
- 減少臨時變量
- 提前判斷
- 冗余方法的分割(提煉方法)
- 提取代碼中的常量
重構建議:
- 每次一小步,有目的性的重構
- 必須測試通過
- 針對問題而重構
- 隨時隨地重構
- 重構結果不改變功能
- 不要在發布前去重構