Refactoring: Improving the Design of Existing Code, 2/e (Hardcover)

Martin Fowler



Martin Fowler’s Refactoring defined core ideas and techniques that hundreds of thousands of developers have used to improve their software. Now, Fowler has thoroughly updated his book to reflect modern programming techniques.

Fully Revised and Updated—Includes New Refactorings and Code Examples


“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” 
–M. Fowler (1999)


For more than twenty years, experienced programmers worldwide have relied on Martin Fowler’s Refactoring to improve the design of existing code and to enhance software maintainability, as well as to make existing code easier to understand.

This eagerly awaited new edition has been fully updated to reflect crucial changes in the programming landscape. Refactoring, Second Edition, features an updated catalog of refactorings and includes JavaScript code examples, as well as new functional examples that demonstrate refactoring without classes.


Like the original, this edition explains what refactoring is; why you should refactor; how to recognize code that needs refactoring; and how to actually do it successfully, no matter what language you use.

  • Understand the process and general principles of refactoring
  • Quickly apply useful refactorings to make a program easier to comprehend and change
  • Recognize “bad smells” in code that signal opportunities to refactor
  • Explore the refactorings, each with explanations, motivation, mechanics, and simple examples
  • Build solid tests for your refactorings
  • Recognize tradeoffs and obstacles to refactoring


Martin Fowler的《重構》定義了核心的概念和技巧,數以十萬計的開發人員使用這些技巧來改進他們的軟體。現在,Fowler已經全面更新了他的書籍,以反映現代的程式設計技術。


“任何傻瓜都可以寫出電腦能理解的程式碼。好的程式設計師寫出人類能理解的程式碼。”- M. Fowler(1999)

二十多年來,全球經驗豐富的程式設計師一直依賴Martin Fowler的《重構》來改進現有程式碼的設計,提高軟體的可維護性,並使現有程式碼更容易理解。



- 理解重構的過程和一般原則
- 快速應用有用的重構,使程式更容易理解和修改
- 識別程式碼中的“壞味道”,這些味道表明了重構的機會
- 探索重構,每個重構都有解釋、動機、機制和簡單範例
- 為你的重構建立堅實的測試
- 識別重構的權衡和障礙


Martin Fowler is Chief Scientist at ThoughtWorks. He describes himself as “an author, speaker, consultant and general loud-mouth on software development.” Fowler concentrates on designing enterprise software: exploring what makes a good design and what practices are needed to create one.


Martin Fowler 是 ThoughtWorks 的首席科學家。他自稱為「一位作家、演講者、顧問和軟體開發方面的大嘴巴」。Fowler 專注於設計企業軟體,探索什麼是好的設計以及創造好設計所需的實踐方法。