核心觀點#
作者深入剖析知名開源測試框架 JUnit 的內部程式碼。
他以 ComparisonCompactor.java 這類別為例,展示即便是被公認為高品質、由頂尖工程師(Kent Beck 與 Eric Gamma)所撰寫的程式碼,依然有優化空間。
這證明整潔程式碼不是一個靜態終點,而是個持續改進的過程。
- 沒有完美程式碼: 世上沒有任何模組對「改善」免疫
- 重構的本質: 重構非一蹴可幾,而是一連串「嘗試與錯誤(Try-and-Error)」的過程
案例分析:ComparisonCompactor#
本章核心在於實戰演練。
作者帶領讀者檢視 ComparisonCompactor 類別。
透過案例,作者示範了:
- 批判性閱讀: 如何發現變數命名不夠精準、邏輯分割不夠清晰的地方
- 安全的重構: 在測試保護下,如何拆解長函式、移除不必要的狀態變數
- 職責分離: 將字串格式化與字串比較的邏輯拆開,使程式碼意圖更明顯
程式碼的專業特質#
重構不是施展魔法,讓程式碼瞬間變好。
它是個反覆過程:你做了些改變,發現不如預期,然後回退(Rollback),再嘗試另種結構。
“Refactoring is a predictable set of steps that implies trial and error.”
重構是組可預期的步驟,但其中隱含了反覆的嘗試與錯誤。
最終,這些看似瑣碎的修改累積起來,會讓程式碼展現出專業特質——
不僅能運作,易讀、易維護,且像散文一樣優雅。
如果連 JUnit 這樣優秀的專案都有值得改進的地方,
那麼日常撰寫的商業邏輯程式碼,絕對值得花更多時間回頭檢視與打磨。