Martin Fowler 《重構:改善既有代碼設計》連續暢銷印證了重構價值。重構定義:在不改變現有功能前提下,調整代碼改善質量、性能,優化設計模式與架構,提升擴展性與維護性。
Kent Beck 「代碼壞味道」即隊伍變形信號:
| 壞味道 | 信號描述 | 重構方向 |
|---|---|---|
| 重複代碼 | 同類/異類中存在相同代碼塊 | 提煉方法、提煉類,杜絕複製貼上 |
| 過大類/過長方法 | 類抽象不合理、方法邏輯過度複雜 | 拆分類、分解方法(分而治之) |
| 霰彈式修改 | 微小功能變更引發連鎖修改 | 提高抽象層次、聚合職責 |
| 過度溝通 | A 類頻繁調用 B 類內部方法/數據 | 合併類或移動方法(Feature Envy) |
| 過長消息鏈 | 獲取信息需層層委派(如輸油管) | 移除中間層、提供直接訪問 |
| 各自為政 | 團隊協調不足導致功能重複實現 | 建立共享庫、加強溝通機制 |
| 不完美設計 | 早期決策隨需求演變暴露缺陷 | 勇於重寫,如提取通訊模塊復用 |
| 註釋缺失 | 功能實現優先導致註釋極少/過簡 | 養成「像命名新生兒一樣」寫註釋習慣 |