Refactoring: Improving the Design of Existing Code (2nd Edition) (Addison-Wesley Signature Series (Fowler))

by: Martin Fowler (0)

"Whenever you read [Refactoring], it’s time to read it again. And if you haven’t read it yet, please do before writing another line of code." –David Heinemeier Hansson, Creator of Ruby on Rails, Founder & CTO at Basecamp


Fully Revised and Updated—Includes New Refactoring's 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 refactoring's 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

Includes free access to the canonical web edition, with even more refactoring resources. (See inside the book for details about how to access the web edition.)

The Reviews

This book is a quick read but is unusually clear and practical. I recommend it to everyone on my team and have see it change the way people program for the better.

The catalogue of refactoring is interesting. The way Martin (and also Kent Beck according to Martin) approach coding is fascinating. The small step approach and the thinking put into every step is inspirational and the book worth reading just to understand that.

I get the book very soon and in perfect state, thanks you!!!!

I agree with some reviewers here -- this book is verbose. Martin Fowler tends to write comma-separated sentence across a few lines. I got tired and lost focus after a few minutes of reading.Chapter 3- Bad Smells in Code would be easier to understand after understanding the later chapters.The examples and concepts that are introduced are informative and make you want to run back to your code.I would use this book to skim relevant topics before refactoring a block of code instead of reading cover to cover.

Loving it, my friend asked me why I’m reading such a boring book, while I’m completely mesmerized by the book. It uses Java as the language but nothing to worry about as I’m assuming that the target audience are professional programmers.

The binding was poor on mine, the front cover wasn't well attached to the rest of the book. This caused the first page to stick out, I ended up just cutting it back. I'm not sure how long it will hold up though.The book content itself is great, if dense.

I've been impatiently waiting the second edition ever since I heard it was coming. If you're like me, looking for an excuse to re-read Refactoring, now is the time. Some of the new refactorings, like Split Phase, fill me with glee because there's finally a formal approach to something I've just been winging for several years now. It draws attention to the practice of splitting out computations from rendering/formatting, which is an unfamiliar topic for many developers but it's absolutely crucial for high-quality code. There's a strong mix of classic refactorings from the original book, too, updated and broadened to apply to any programming language. I am very happy with the code formatting on kindle, which has rarely been the case. Definitely worth the wait!

This book is a must have and must read if you are a software developer. It’s a notebook with great examples how to follow the clean code guidelines.

OjalĂĄ lo envolvieran sobre algo para reservar, por suerte este libro no tuvo algun problema.

Fantastic book and one that should be in every developers personal library. The depth of knowledge and technical precision the author has in regards to refactoring is immense. This book is not a quick read but should be read in its entirety to really take in all that refactoring has to offer. Refactoring has now become part of my everyday programming and development process.There is only one thing I would change about the book and that is for the author to add the completed refactored code for some of the more complex methodologies to the end of each refactoring. Some of the refactoring methodologies can be quite extensive and by adding the completed refactored code to the end may help give a clearer picture of the information the author is imparting to the reader. Other than that this book has taught me so much about refactoring and will be a go to book for the rest of my software development career.

Refactoring: Improving the Design of Existing Code (2nd Edition) (Addison-Wesley Signature Series (Fowler))
⭐ 4.7 💛 831
kindle: $32.39
hardcover: $46.01
Buy the Book