核心觀點#
作者選擇 JCommon 函式庫中的 SerialDate.java 類別(由 David Gilbert 撰寫)作為剖析對象。
這章目的並非批評原程式碼,而是展示 「專業的程式碼審查(Code Review)」
與 「重構(Refactoring)」 應是什麼樣子。
即使是高品質的開源專案,也存在著讓程式碼更乾淨、健壯的改進空間。
重構前提是擁有完整測試覆蓋。你不能整理一個你不敢保證正確性的系統。
本章示範了「補足測試」 ➡️ 「重構」 ➡️ 「驗證」的完整循環。
重構的標準作業程序#
本章透過實際操作,演示將一段「能運作的程式碼」化為「整潔程式碼」的具體步驟:
建立安全網:補足單元測試#
動手修改任何邏輯前,作者發現 SerialDate 的測試覆蓋率未達 100%,且遺漏一些邊界條件的測試。
- 行動: 撰寫缺少的單元測試
- 目的: 確保對程式碼的理解正確,並建立重構時的安全網。
如果沒有這些測試,任何微小變動都可能導致未知 Bug
執行重構#
在測試保護下,作者對程式碼進行了一系列的清理工作:
- 提升可讀性: 修改變數與函式名稱,使其更具表達力
- 簡化邏輯: 移除過時的註解、死程式碼(Dead Code)與不必要的複雜度
- 改進抽象層級: 將實作細節隱藏,修正類別與介面的繼承關係
結論#
SerialDate 的重構過程展示了軟體工藝(Software Craftsmanship)的精神。
這不是關於「對與錯」,而是關於「好與更好」。
透過不斷打磨,我們不僅讓程式碼更易被人理解,也發現並修復原本藏在深處的邏輯缺陷。
這正是我們身為專業開發者應有的態度。