Refactoring cover
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
Check Price on Amazon →
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
MORE SOFTWARE CRAFT & CODE QUALITY BOOKS
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
Clean Code cover
Robert C. Martin
Clean Code
★ 4.5 · 6.6K RATINGS
Tidy First? cover
Kent Beck
Tidy First?
★ 4.4 · 420 RATINGS
A Philosophy of Software Design cover
John Ousterhout
A Philosophy of Software Design
★ 4.6 · 1.3K RATINGS
Ready?
Check Price on Amazon →