當重構沒有現成的明顯的方向時,可以遵循下面的原則:
- 當屬性、方法或類存在任何的需要複用的意向時,歸納提煉它們。
- 不要低估小方法對代碼整潔的作用。使用小方法能讓你節省很多筆墨。
- 能讓代碼長度變短的提煉都應該去提煉,包括註釋。
- 用多形代替switch()——即使這樣做會使代碼變長。
- 用封裝控制可見度。
- 消除依賴。
- 簡化構造方法——即使這樣做會使代碼變複雜。
-
封裝或避免條件表達式。使用guard語句,避免使用
else
語句。 - 使用常量代替魔幻數字。
- 不確定時,偏向使用組合而不是繼承。
- 不確定時,將計算操作移入到這些數據的所有者對象裏,或將數據移動到執行計算操作的對象裏(也就是迪米特法則(Law of Demeter))。
- 使用小對象,鬆耦合,避免大對象,高聚合。
- 不確定時,偏向使用遞歸而不是循環。
- 使用代理對象,模擬對象和輔助對象來隔離網絡,數據庫,文件和用戶接口。
- 不確定時,儘量在model裏添加代碼,必要時才往controler添加代碼。view裏添加的都應該是便捷功能和簡寫方法,但不要侷限於此。
- 偏向使用apply, each, mapcar,而不是loop.
- 儘量使用新技術。