Customer Reviews


47 Reviews
5 star:
 (27)
4 star:
 (6)
3 star:
 (10)
2 star:
 (2)
1 star:
 (2)
 
 
 
 
 
Average Customer Review
Share your thoughts with other customers
Create your own review
 
 
Only search this product's reviews

The most helpful favorable review
The most helpful critical review


71 of 75 people found the following review helpful:
5.0 out of 5 stars A book I've been waiting for
Kerievsky has done it. He has started to pull together anti-patterns (a.k.a. "bad smells"), refactorings, and patterns into one unified study. All three work well individually. Together, they make a powerful combination.

This isn't as rigorously analytic as the original Design Patterns book. I fully expect more theory-oriented writers to follow the trail...
Published on September 5, 2004 by wiredweird

versus
49 of 55 people found the following review helpful:
3.0 out of 5 stars Over-complicated examples ruin a superb piece of work.
This book is the only one of its kind that tries to use a patterns approach to refactoring. It is a good add-on to Martin Fowler's book. It's a very valuable contribution to the refactoring community. Kerievsky has a no-nonsense, down-to-earth approach to the subject of Patterns. However unlike Fowler who makes an effort to keep the code examples in his book as simple as...
Published on November 7, 2004 by Bibek


‹ Previous | 1 25| Next ›
Most Helpful First | Newest First

71 of 75 people found the following review helpful:
5.0 out of 5 stars A book I've been waiting for, September 5, 2004
Amazon Verified Purchase(What's this?)
This review is from: Refactoring to Patterns (Hardcover)
Kerievsky has done it. He has started to pull together anti-patterns (a.k.a. "bad smells"), refactorings, and patterns into one unified study. All three work well individually. Together, they make a powerful combination.

This isn't as rigorously analytic as the original Design Patterns book. I fully expect more theory-oriented writers to follow the trail blazed here. Instead, Kerievsky gives worked examples, in great detail. At every point, he starts with a code sample drawn from real life, complex enough to be interesting. Then, step by step, he shows the incremental changes made to transition from it's problematic start to its pattern-based end point. Experienced programmers may find this plodding and repetitive. Beginners, however, often have a hard time planning incremental changes and executing them. The author takes care to keep the code in working order at each increment, showing a clear path through the forest of possibilities. Some readers may even trace the path backwards, giving another look at how each change moves toward the end state. The worked examples are the real strength of this text.

This is a book for the software maintainer. In other words, it addresses 90% or 99% of the work that real programmers do. Just about every other software text on the market assumes that the project just started - the disks are empty and the compiler shrink-wrap is on the floor. I admit, that kind of programming is the most fun. It's just not realistic, though. Most work is rework, the kind demonstrated here.

Another great feature of this book is what it lacks: dogmatic harangues about methodology. It even keeps a skeptical attitude towards patterns, since heavyweight design techniques aren't always right for lightweight problems. Kerievsky mentions agile-ism, but doesn't make it a part of the process. He does, however, take the continuous testing idea from the eXtremists and work that into the demonstrations. Bravo! Hardware designers may wonder what the fuss is about, since thorough testing has been part of their culture for years. It's a happy novelty in much of the software world, though, and deserves to become standard practice.

My only problem with this book is that there isn't more of it. For example, constructor chaining is a great idea. There are two kind of chain, though. He shows the increasing parameter list, where simpler constructors supply default values for the more ones with more parameters. It's also possible to chain in decreasing order, where each constructor processes one parameter and passes on the simplified list. (What's good for constructors, of course, is also good for other collections of related methods.)

The book's ideal reader understands an OO language, uses subclassing regularly, and knows something about design patterns. That reader, with enough patience to follow the examples, will learn a lot. More experienced developers won't need the step by step approach, but may benefit from seeing multiple refactorings working together to solve a complex problem. It has my highest recommendation for any developer who really thinks about design and redesign.

//wiredweird
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


44 of 47 people found the following review helpful:
5.0 out of 5 stars Wonderful! Brings patterns into coding, not just designing, September 19, 2004
This review is from: Refactoring to Patterns (Hardcover)
Based on its title alone I had high expectations for this book. It didn't disappoint. The book takes two of the most important advances of the past decade (patterns and refactoring) and puts them together into a whole that is definitely more than the sum of its parts.

I've read many good patterns books and have been applying patterns to how I think and talk about software since the original "Design Patterns" book in 1995. However, something was always missing. Through my consulting work, whenever I introduced patterns to a new team they would take quickly to the idea and patterns would become part of how they thought-but only when designing, not when coding. Since we spent more time coding than designing, patterns played less of a role than they could have.

This book does an excellent job of bringing patterns into coding, rather than relegating them just to design discussions. As the author points out, "patterns are best viewed in the light of refactoring and that they are destinations best reached by applying sequences of low-level refactorings."

This book has earned a permanent place on my bookshelf. That is, when it's not open beside me as I program. Very highly recommended!
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


49 of 55 people found the following review helpful:
3.0 out of 5 stars Over-complicated examples ruin a superb piece of work., November 7, 2004
This review is from: Refactoring to Patterns (Hardcover)
This book is the only one of its kind that tries to use a patterns approach to refactoring. It is a good add-on to Martin Fowler's book. It's a very valuable contribution to the refactoring community. Kerievsky has a no-nonsense, down-to-earth approach to the subject of Patterns. However unlike Fowler who makes an effort to keep the code examples in his book as simple as possible, Kerievsky has made his examples over-complicated with all kinds of detailed finance domain references and the XML DOM. The example he uses to show how the Builder pattern simplifies creation of Composites is like a really heavy chapter on XML processing/generation.
The "Replace Conditional Logic with Strategy" is like a chapter on Investments / Loans. It really distracts the reader's attention from the pattern or refactoring.
This is a shame because it is impossible to write a good book on refactoring without nice examples. It is also a bit surprising that none of the other Amazon reviews mention this issue.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


18 of 19 people found the following review helpful:
5.0 out of 5 stars A remarkable work, with genuine wisdom and solid pragmatism, August 24, 2004
This review is from: Refactoring to Patterns (Hardcover)
This book goes much further than Martin Fowler's seminal work on refactoring. Indeed, it goes further than the GoF's canonical work on patterns. By combining the two, Kerievsky breaks new ground.

The refactorings are accessible and beautifully presented. As with the GoF book, a lot of the rationale will ring a bell. "Gee, I've seen this before..." The value of these refactorings lie precisely in that corner, where the mechanics of refactoring with a GoF pattern as the goal allow one to improve the readability and maintainability of the code.

Some of the refactorings were less than obvious to me until I read this book. And that's where Kerievsky's mastery shows. He presents fresh ideas (to me, anyway) with solid examples, and thoroughly thought-out steps.

The examples deserve special mention. How many times have you read a "manual" or other technical how-to with toy examples that fail to illustrate the point? Or with examples so narrow that they hardly approach your real-world situation. (I could name names... ;->) OTOH, how many examples are so long and laborious, that gleaning any useful information requires learning the author's example-problem domain before you can get anywhere?

Kerievsky walks the tightrope between toy examples and over-engineered examples with tremendous skill. They're Goldilocks examples: Neither too big, nor too small, his examples are juuust right.

Another area in which some tightrope walking is required is presenting material that's suitable for a tutorial, vs. material that makes for easy access as a reference. Josh somehow manages to balance the two. Reading from begining to end, one is able to appreciate the tutorial nature of the material. However, (like Fowler's Refactoring) easy look-up is made possible by the formal presentation of each refactoring.

I heartily recommend this book to anyone who cares about Software Craftsmanship (my plug for Pete McBreen's book too!)

Disclaimer: This review is based on a prepublication manuscript.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


13 of 13 people found the following review helpful:
3.0 out of 5 stars Could have been a 5!, October 5, 2005
By 
Dennis Becton (Audubon, PA USA) - See all my reviews
This review is from: Refactoring to Patterns (Hardcover)
The book is great, and I've learned a lot from it. I REALLY wanted to give it 5 stars, but the lack of full source code for the examples, detailing before and after application of the refactoring techniques, forced me to give it a 3. Ended up spending way too much time trying to piece together the snippets of code in order to fully understand what was going on.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


11 of 11 people found the following review helpful:
3.0 out of 5 stars Refactoring to Patterns, October 11, 2005
This review is from: Refactoring to Patterns (Hardcover)
The book is good in terms of how it is organised and the topics that it covers.

However, the choice of the type of examples used are poor. I recommend that the entire listing of the code before refactoring and after refactoring should be provided along with each chapter. Often I got lost while walking through the code snippets, as the steps that the author is walking through does not necessarily match the way I would walk through the code while refactoring using patterns. Sometimes it is hard to predict why the author did what he did, although it is just an intermediate step to to reach the ultimate goal. Some of the code snippets does not match the class diagrams and caused added confusion.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


8 of 8 people found the following review helpful:
3.0 out of 5 stars Nice book, but..., October 11, 2005
By 
This review is from: Refactoring to Patterns (Hardcover)
The lack of full source code makes it hard to see the big picture of what the author is trying to convey. It doesn't even have a CD nor a link to a page where you can try and download the snippets he has in the book. These drawbacks prompted me to rate this book to 3 stars, though it could have been better had he provided those resources that could reinforce the concepts, and of course for me to test them.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


7 of 7 people found the following review helpful:
5.0 out of 5 stars Brings practicality to Patterns, October 13, 2004
This review is from: Refactoring to Patterns (Hardcover)
Patterns have always been the domain of the 'architect type'. This book turns that around. It provides practical insight at the code level in how to improve code structure using patterns. What's more it provides these insights on existing code bases. Most of us don't start projects, we extend existing projects. This book tells us how to refactor this existing code in practical ways that will end up making the code more maintainable and reliable.

I can't hold the GoF responsible for the architectural bias in patterns. The original Design Patterns book was very practical in nature. Design patterns just had better penetration in the architecture world. With this book Kerievsky brings patterns back to the front line implementers.

I recommend this book for any software engineer. Thank you Joshua! Great job.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


8 of 9 people found the following review helpful:
5.0 out of 5 stars A High Quality Reference for Agile Developers, October 6, 2004
This review is from: Refactoring to Patterns (Hardcover)
A high quality reference for those that want to gain some direction to their refactoring. That's what Joshua Kerievsky has managed to create with this book. This book assumes that you already know about refactoring and even states clearly that this book is best read with Martin Fowler's "Refactorings" as a reference. With that prerequisite in mind, this text does an excellent job of introducing the process of using refactorings to fix code problems by introducing patterns into your design.

Some of the strongest points include: editing, organization, and clarity. My hat goes off to the editor(s) of this book as I found very few errors even though this book contains a lot of "real world" code. Organizationally, this book does an excellent job of making itself useful as a "read-through" book for those that want to immerse themselves in the topic and as a reference book that can sit on your shelf until you need it.

One word of caution about this book is that it originally started as a paper and grew from there. Especially throughout the first few chapters of the book, this is very evident. Constant references to works done by other authors and numerous footnotes can, at times, become a bit distracting from the overall message.

Overall, this is an excellent book and, if you're into extreme programming and refactoring, it's one that you're going to want to have on your shelf.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5 of 5 people found the following review helpful:
4.0 out of 5 stars Good book, very readable, needs fuller source examples, October 11, 2005
This review is from: Refactoring to Patterns (Hardcover)
I found this book to be very readable. It combines refactoing and patterns. The refactoring shows how to improve existing code in order to improve maintenance and start on the road to patterns. I find the ideas can be used in practice and a group of us are using the book to see how we can improve the code base. The book makes extensive use of ideas from the Martin Fowler book, so it may have helped if I had read that book first. The examples tend to be small subsections of java code and you see how to change by applying a series of refactorings. Sometimes the examples seem to jump so a little larger examples would have helped. I liked that the examples are taken step wise so you can see that the code can change in an evolutionary manner.I would recommend this book for anyone doing software development.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


‹ Previous | 1 25| Next ›
Most Helpful First | Newest First

This product

Refactoring to Patterns
Refactoring to Patterns by Joshua Kerievsky (Hardcover - August 15, 2004)
$64.99 $44.85
In Stock
Add to cart Add to wishlist