Pages
448
Year
2019
Level
intermediate
Read time
12h
Martin Fowler · Addison-Wesley · 2019
Reviewed by Ashish Sheth · Updated July 2026
Refactoring
Improving the Design of Existing Code
4.7 / 5
AMAZON · 1.2K RATINGS
software craft
SUBJECTS
What you'll come away with
01.
A named, searchable catalog of safe code transformations
02.
How to change structure without changing behavior
03.
Why small steps plus tests beat big rewrites
04.
How to read a code smell and pick the right refactoring
05.
The discipline that makes legacy code tractable
Strengths
+The definitive catalog: a reference you return to for years
+Second edition uses JavaScript, widening its reach
+Each refactoring has clear mechanics you can follow step by step
+Reframes refactoring as economics, not vanity cleanup
Caveats
−Reads like a reference, not a cover-to-cover narrative
−Some find the JavaScript examples less rigorous than the first edition Java
−The catalog format can feel repetitive read linearly
★ 4.7 FROM 1.2K READERS ON AMAZON
Check Price on Amazon →
Read this if
→Engineers who regularly modify existing production code
→Anyone who read Clean Code and wants the mechanical follow-through
→Tech leads standardizing how the team improves code
Skip this if
—Beginners who have not yet written code worth refactoring
—Readers wanting high-level design philosophy over mechanics
—People looking for a quick weekend read
Head-to-head comparisons
Refactoring vs Clean Code → Refactoring vs Tidy First? → Refactoring vs A Philosophy of Software Design → Refactoring vs Working Effectively with Legacy Code → Refactoring vs Domain-Driven Design → Frequently asked
Is the 2nd edition of Refactoring worth it over the 1st?
Yes for most readers. The second edition modernizes examples to JavaScript, refreshes the catalog, and reflects two more decades of practice. Keep the first edition only if you specifically want the original Java mechanics. The core principles are unchanged.
Do I need Refactoring if I have read Clean Code?
They complement rather than overlap. Clean Code sets the target for readable code; Refactoring gives the named, test-backed moves to reach it from messy code. Read Clean Code first, then use Refactoring as a working reference.
Is Refactoring beginner-friendly?
It is best at intermediate level. You need enough experience to have felt tangled code and to work comfortably with a test suite. Beginners can skim the smells chapter, but the catalog pays off once you maintain real systems.
Read this next
5 alternatives
Ready?
Check Price on Amazon →