核心觀點#

作者選擇 JCommon 函式庫中的 SerialDate.java 類別(由 David Gilbert 撰寫)作為剖析對象。

這章目的並非批評原程式碼,而是展示 「專業的程式碼審查(Code Review)」
「重構(Refactoring)」 應是什麼樣子。
即使是高品質的開源專案,也存在著讓程式碼更乾淨、健壯的改進空間。

重構前提是擁有完整測試覆蓋。你不能整理一個你不敢保證正確性的系統。
本章示範了「補足測試」 ➡️ 「重構」 ➡️ 「驗證」的完整循環。


重構的標準作業程序#

本章透過實際操作,演示將一段「能運作的程式碼」化為「整潔程式碼」的具體步驟:

建立安全網:補足單元測試#

動手修改任何邏輯前,作者發現 SerialDate 的測試覆蓋率未達 100%,且遺漏一些邊界條件的測試。

  • 行動: 撰寫缺少的單元測試
  • 目的: 確保對程式碼的理解正確,並建立重構時的安全網。
    如果沒有這些測試,任何微小變動都可能導致未知 Bug

執行重構#

在測試保護下,作者對程式碼進行了一系列的清理工作:

  • 提升可讀性: 修改變數與函式名稱,使其更具表達力
  • 簡化邏輯: 移除過時的註解、死程式碼(Dead Code)與不必要的複雜度
  • 改進抽象層級: 將實作細節隱藏,修正類別與介面的繼承關係

結論#

SerialDate 的重構過程展示了軟體工藝(Software Craftsmanship)的精神。

這不是關於「對與錯」,而是關於「好與更好」。
透過不斷打磨,我們不僅讓程式碼更易被人理解,也發現並修復原本藏在深處的邏輯缺陷。
這正是我們身為專業開發者應有的態度。