Book Review: Refactoring to Patterns


Refactoring To Patterns book

Refactoring to Patterns

( Joshua Kerievsky )

Expanding the directions given by Fowler and others Refactoring to Patterns sets out on a further exploration of evolutionary design. Combining insights from both Refactoring and Design Patterns, Joshua Kerievsky has composed a catalog of twenty-seven high-level refactorings directly targeting Design Patterns.

Each of the refactorings described uses real code examples and is accompanied with a discussion highlighting both the benefits and liabilities of the refactoring. A detailed motivation of the principles and tradeoffs encountered makes this book a source of inspiration for a reader's home-grown refactorings.

Refactoring to Patterns is well-written and easy to read. Some of the examples may be a bit lengthy for more experienced readers but in general the book keeps a good balance between narrative, code samples and diagrams.

Reading Josh's book has definitely broadened my vision of software design. Take for example Replace Implicit Language With Interpreter: Additionally to making a design more extensible introducing an interpreter allows to express the code directly in terms of the domain model. As refactoring practitioner I've found this and many other of the refactorings described to be a source of inspiration when searching for ways to improve existing designs in my day-to-day work

-- Sven Gorts


Review originally appeared in The Agile Times vol. 6