重構

改善現有程式碼的設計

馬丁·福勒與肯特·貝克合著

2018

透過安全且快速的流程轉換程式碼的指南,對於讓程式碼保持低成本且易於修改以符合未來需求至關重要。

重構是一種受控技術,用於改善現有程式碼庫的設計。其核心是應用一系列小的行為保留轉換,每個轉換都「小到不值得執行」。然而,這些轉換的累積效應相當顯著。透過小步驟執行這些轉換,您可以降低引入錯誤的風險。您還可以避免在執行重構時系統中斷,這讓您可以在一段較長的時間內逐步重構系統。

我的書描述了重構的流程,並花費大部分時間說明如何執行各種重構,也就是行為保留轉換。本書以一個描述整個流程的簡單範例開頭。接著有一些引言章節討論重構周圍的更廣泛問題、建議重構的「程式碼異味」,以及測試的角色。

本書的大部分內容約有 70 個重構,並詳細描述了執行這些重構的動機、如何安全執行這些重構的機制,以及一個簡單的範例。

這是本書的第二版,於 2018 年底出版。第一版於 1999 年問世。這是讓我最自豪的一本書,因為它對軟體開發的世界產生了重大的影響。現在有許多開發環境自動執行本書中描述的許多重構。重構已成為軟體開發詞彙中一個成熟的部分(遺憾的是也導致了誤用)。

勘誤表

延伸閱讀

refactoring.com

有關重構的更多資源:特別是包含書中所有重構摘要的目錄

免費下載開場章節

開場章節的程式碼範例

Emily Bache 主持一個存放開場章節起始程式碼的儲存庫,使用十幾種語言

第二版的變更

摘要第一版和第二版之間的變更。

如何存取網路版本

第二版的備忘錄

撰寫新版的想法:包括其範圍、封面選擇、目標讀者。

第一版的勘誤表

由 Camilla Crispim 採訪

關於第二版的 1 小時影片

InfoQ 採訪