Refactoring: Improving the Design of Existing Code
by Martin Fowler; Kent Beck; John Brant; William Opdyke; Don Roberts
Patterns of Enterprise Application Architecture
by Martin Fowler; David Rice; Matthew Foemmel; Edward Hieatt; Robert Mee; Randy Stafford
Test Driven Development: By Example
by Kent Beck
Working Effectively with Legacy Code
by Michael Feathers
Design Patterns: Elements of Reusable Object-Oriented Software
by Erich Gamma; Richard Helm; Ralph Johnson; John Vlissides
Refactoring: Improving the Design of Existing Code
by Martin Fowler; Kent Beck; John Brant; William Opdyke; Don Roberts
UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition
by Martin Fowler
The Object-Oriented Thought Process, Third Edition
by Matt Weisfeld
In 1994, Design Patterns changed the landscape of object-oriented development by introducing classic solutions to recurring design problems. In 1999, Refactoring revolutionized design by introducing an effective process for improving code. With the highly anticipated Refactoring to Patterns, Joshua Kerievsky has changed our approach to design by forever uniting patterns with the evolutionary process of refactoring.
This book introduces the theory and practice of pattern-directed refactorings: sequences of low-level refactorings that allow designers to safely move designs to, towards, or away from pattern implementations. Using code from real-world projects, Kerievsky documents the thinking and steps underlying over two dozen pattern-based design transformations. Along the way he offers insights into pattern differences and how to implement patterns in the simplest possible ways.
Coverage includes:
A catalog of twenty-seven pattern-directed refactorings, featuring real-world code examples
Descriptions of twelve design smells that indicate the need for this book’s refactorings
General information and new insights about patterns and refactoring
Detailed implementation mechanics: how low-level refactorings are combined to implement high-level patterns
Multiple ways to implement the same pattern—and when to use each
Practical ways to get started even if you have little experience with patterns or refactoring
Refactoring to Patterns reflects three years of refinement and the insights of more than sixty software engineering thought leaders in the global patterns, refactoring, and agile development communities. Whether you’re focused on legacy or “greenfield” development, this book will make you a better software designer by helping you learn how to make important design changes safely and effectively.
Average Amazon.com® Rating: ![]()
![]()
![]()
![]()
Based on 44 Ratings
Good ideas, but needs refactoring - 2008-02-21
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
There are a lot of nuggets of wisdom in the book, especially in the pragmatic approach the author takes to refactoring and patterns. He admits that patterns can make code worse, or better, depending on the need and skill of the author. He also provides a number of clear examples. However, the style of the book is like the dull works I had to read in graduate school, unnecessarily littered with citations. He cites Fowler to such an obscene degree that it looks more like academic backslapping. Citations are fine when doing a review of literature or examining research, but when they are used for mere quotations, the style is intrusive. As a final complaint, I found that I could often read a whole page and reduce it to one or two sentences. Curiously, he cites an example of Benjamin Franklin trimming a long phrase down to a single person's name. I wish he would have refactored the book in the same way. Almost all programming practices books suffer in the same way: dull, ungodly verbose, academic, and making unnecessary deviations from the point at hand. My suggestion is to get good at skimming, and you will find this book to be worthwhile.
Very good book - 2008-11-16
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Refactoring written by Martin Fowler is the foundamental book, and this Refactoring to Patterns is higher level talking about refactoring. This is an excellent book about the refactoring.
Needed book for architect - 2009-12-21
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
If you want to be an good architect you need read this book. It uses a easy language and goes direct to point. After reading that book i've changed the way i thought to integrate systems.Strongly recommended. Have good reading.
The Joy of Clean Up Reaches the Design Level - 2008-01-15
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Clean up (refactoring) is fun. Clean up to the design level (patterns) is stunning. A very pragmatic introduction, down to the code and incredibly helpful. Even strong procrastinators develop an appetite for this often little loved part of our work.
Now what are the prerequisites: You should have read and maybe even handy the landmark book "Refactoring" by Martin Fowler and colleagues. You need a working knowledge of design patterns. You have to actually like real code. Everything else is contained in this beautiful book.
The writing style is lucid and the topic is explained in a refactoring fashion: Readers are guided through the subject with real code (somewhat simplified) in small steps at a slow speed step by step. It is amazing how much ground you cover this way and how fast.
I do highly recommend this book for every software developer.
Combines Refactoring and Patterns - 2008-01-08
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
A master-piece and a must-read art-work. When I was studying on Martin Fowler's Refactoring to make my code more comprehensive and improve its clarification, I see, Martin Fowler's techiques are generalized techniques, I found Joshua Kerievsky's techiques in Refactoring to Patterns are more specific techiques concern of purely Design Patterns. While Design Patterns itself high-level abstracted, it is easy to find concrete examples in Recfactoring to Patterns and that makes programmer easy to understand Design Patterns. Special thanks to Joshua Kerievsky and to his study group for a this kind of work.
Top Level Categories:
Software Engineering
Sub-Categories:
Software Engineering > OOP
Some information on this page was provided using data from Amazon.com®. View at Amazon >