The Pre-Loved edit from Shopbop
Buy used:
$51.97
FREE delivery Monday, December 2
Or Prime members get FREE delivery Friday, November 29. Order within 14 hrs 22 mins.
Condition: Used: Good
Access codes and supplements are not guaranteed with used items.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Follow the author

Something went wrong. Please try your request again later.

Refactoring to Patterns Hardcover – August 15, 2004

4.6 4.6 out of 5 stars 134 ratings

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 refactoringDetailed 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.
"

Amazon First Reads | Editors' picks at exclusive prices

Editorial Reviews

From the Publisher

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.

From the Back Cover

Advance Praise for Refactoring to Patterns

"For refactoring to be valuable it must be going somewhere, not just an abstract intellectual exercise. Patterns document program structures with known good properties. Put the two together and you have Refactoring to Patterns." Kent Beck, Director, Three Rivers Institute

"In the GoF book we claimed that design patterns are targets for refactorings. This book finally shows that we didn't lie. By doing so, Joshua's book will deepen your understanding of both refactoring and design patterns." Erich Gamma, Eclipse Java Development Tools lead, IBM

"Refactoring to patterns is a revolutionary approach to applying patterns that combines the top-down utility of design patterns with the bottom-up discovery of iterative development and continuous refactoring. Any serious software developer should be using this approach to discover new opportunities to use patterns to improve their code." Bobby Woolf, Consulting I/T Specialist, IBM Software Services for Web- Sphere, and coauthor of Enterprise Integration Patterns (Addison-Wesley) and The Design Patterns Smalltalk Companion (Addison-Wesley).

"With this unique catalog of design-level refactorings Joshua Kerievsky has given refactoring an entirely new dimension. Refactoring to Patterns shows developers how to make design-level improvements that simplify everyday work. This book is an invaluable reference for the refactoring practitioner." Sven Gorts

"This book refactors and restructures GoF, and much more. Refactoring to Patterns takes a subject that has been presented as static and rigid and makes it dynamic and flexible, converting it into a human process with experiments, mistakes, and corrections so you understand that good designs do not occur by turning some series of cranks--they evolve through struggle and reflection. Kerievsky has also restructured the presentation to make it far clearer and easier to assimilate. Indeed, he has solved a number of the organization problems that I have struggled with in Thinking in Patterns. This book is a clear introduction and combination of the disciplines of testing, refactoring, and patterns, and it is filled with easy reading, good sense, and great insights." Bruce Eckel, President of Mindview, Inc., and author of Thinking in Java/Thinking in C++ (Prentice Hall)

"The first time I met Joshua, I was struck by the depth of his passion for understanding, applying, and teaching design patterns. Great teachers care deeply about their subject and how to share it. I think Joshua is a great teacher--and developer--and that we can all benefit from his insight." Craig Larman, Chief Scientist, Valtech, and author of Applying UML and Patterns, Second Edition (Prentice Hall) and Agile and Iterative Development (Addison-Wesley)

"Refactoring to Patterns is important not only because it provides step-by-step instructions on how to improve your code through the methodical introduction of appropriate patterns, but more so because it teaches the principles that underlie the design patterns implemented. This book should be useful for novice and expert designers alike. This is a great book." Kyle Brown, IBM Software Services for WebSphere, and author of Enterprise Java™ Programming with IBM® WebSphere®, Second Edition (Addison-Wesley)

"Mastering a trade means more than just having the right tools--you also need to use them effectively. Refactoring to Patterns explains how to wield industrial-strength design tools with the skills of an artist." Russ Rufer, Silicon Valley Patterns Group

"Josh uses patterns to guide the small steps of refactoring toward larger goals and uses refactoring to introduce patterns into your code as it evolves. You'll learn how to make large improvements to existing code incrementally, rather than trying to force-fit a prefabricated solution. As the code changes you'll go beyond seeing better designs--you'll experience them." Phil Goodwin, Silicon Valley Patterns Group

"Now the connection between software patterns and agile development is finally told." Ward Cunningham

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 importa and effectively.

Product details

  • Publisher ‏ : ‎ Addison-Wesley Professional; 1st edition (August 15, 2004)
  • Language ‏ : ‎ English
  • Hardcover ‏ : ‎ 367 pages
  • ISBN-10 ‏ : ‎ 0321213351
  • ISBN-13 ‏ : ‎ 978-0321213358
  • Item Weight ‏ : ‎ 2.1 pounds
  • Dimensions ‏ : ‎ 7.25 x 1.25 x 9.5 inches
  • Customer Reviews:
    4.6 4.6 out of 5 stars 134 ratings

About the author

Follow authors to get new release updates, plus improved recommendations.
Joshua Kerievsky
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

Joshua is founder and CEO of Industrial Logic, one of the oldest and most well-respected agile consultancies in the world. Since 1996, Joshua and his global team of lean and agile experts have helped people in many industries leverage the wisdom and power of modern management and development methods. Joshua is a Dad, tennis player, and international speaker. He is the author of the best-selling and award-winning book, Refactoring to Patterns, and his newest book, Joy of Agility.

Customer reviews

4.6 out of 5 stars
134 global ratings

Customers say

Customers find the book very informative and adds richer context. They also appreciate the clear writing and perfect explanations. Readers describe the writing quality as well-written, easy to read, and understand. Overall, they say it's a valuable next step in learning about design.

AI-generated from the text of customer reviews

6 customers mention "Information quality"6 positive0 negative

Customers find the book very informative and provides a great overview of patterns. They appreciate the clear writing and perfect explanations. Readers also mention the book adds richer context and analysis.

"...It even keeps a skeptical attitude towards patterns, since heavyweight design techniques aren't always right for lightweight problems...." Read more

"...Examples are in Java, it is well written and references patterns in the GOF book, which is a great neighbor to this one." Read more

"...Overall I have been pleased with the level of detail and content." Read more

"...Having never worked with patterns before this book was a perfect introduction to be used for class." Read more

6 customers mention "Writing quality"6 positive0 negative

Customers find the book well-written, easy to read, and understand. They say it's a valuable next step in learning about design.

"...Examples are in Java, it is well written and references patterns in the GOF book, which is a great neighbor to this one." Read more

"If you want to be an good architect you need read this book. It uses a easy language and goes direct to point...." Read more

"This is a very nice book...." Read more

"This is truly a must read book! clear writing and perfect explanation!" Read more

Top reviews from the United States

Reviewed in the United States on September 5, 2004
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
83 people found this helpful
Report
Reviewed in the United States on December 4, 2013
This book paired with the GOF book is a deadly combination. I think this book is fantastic and has lots of very useful data. I don't believe it will go out of date anytime soon :). If you are interested in design patterns then this would be a good read to pick up. Examples are in Java, it is well written and references patterns in the GOF book, which is a great neighbor to this one.
Reviewed in the United States on April 25, 2016
The emergence of Design Patterns has certainly been one of the most important things that has ever happened to object-oriented programming. We are more likely to end up with much cleaner and more testable systems when using design patterns as they are based upon tried and tested formulas for solving common problems. In reality though, we're often faced with different challenges. We need to work on legacy systems that often contain a lot of poorly structured and untested code. In the real world we often know that patterns would help a lot to clean up that mess, but adding them to an existing system is ... hard.

This book attempts to show you how to cut through undergrowth of various code smells and how to patch the systems with appropriate patterns. The book contains a lot of bite-sized chapters, so it is okay to grab it for 15 minutes, read a bit and get back to it some time later. Each refactoring contains a theoretical part (explaining the symptoms of said smell and a suggested refactoring), a "mechanics" part (how to perform the refactoring) and a practical example.

As of 2016, I didn't find step-by-step mechanics very useful (but this book was written back in 2004 and modern IDEs we use nowadays were nowhere as smart as they are today), but reading the original (unrefactored) code and comparing it with the final one (refactored) is definitely worth it.
4 people found this helpful
Report
Reviewed in the United States on January 20, 2012
This book was exactly what I was looking for. While understanding the GoF Design Patterns is useful, this book goes into sufficient detail to explain them (and online searches for the DP's is easy enough). The book expands into naming the various refactoring so as to have a shared language describing (naming) those refactoring methodologies. Overall I have been pleased with the level of detail and content.
Reviewed in the United States on December 21, 2009
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.
One person found this helpful
Report
Reviewed in the United States on September 3, 2014
I am not done reading this, but so far I really like it. I do a lot of refactoring and I think this will help me improve my techniques.

I recommend this book.
Reviewed in the United States on January 19, 2014
I have just finished this book. All i can tell is that this one clearly is the next book you should read after knowing basic pattern design.

there is only one thing i wish any pattern book should have is that "at the end of each chapter, the author should include the COMPLETE refactored code so we can spend less time to understand what is going on". That's why i won't give this one 5 stars because it makes us spending more neccessary time to understand what is going on.

anyway, if you have no knowledge about pattern, you will need to spend more time to understand this book. Whenever you start a new chapter, you need to go online to search for a better understanding of what the pattern is about before diving into each chapter. if not, you will get lost for sure if you just concentrate on the mechanics section. The mechanics section is just the steps helping you reach the final form of a pattern . So if you know the structure of the pattern already, it will help you understand the mechanics section a lot faster.
4 people found this helpful
Report
Reviewed in the United States on May 21, 2013
This book was very informative and gave me a great overview of patterns. Having never worked with patterns before this book was a perfect introduction to be used for class.

Top reviews from other countries

Translate all reviews to English
N. Murali Mohan
5.0 out of 5 stars The "real" refactorings are here
Reviewed in India on January 17, 2021
Read this book if you are serious about refactoring or you want to learn. The examples in this book are taken from real-world examples and hence I rate this book above ALL other books on refactoring.

Over the years, I have read many books on refactoring techniques and they were boring and filled with unrealistic examples.

Importantly, try practicing some if not all.

Sincerely,
Murali
Mouffok Lamara
5.0 out of 5 stars Five Stars
Reviewed in Canada on September 18, 2017
perfect
Baver Acu
5.0 out of 5 stars Great book
Reviewed in Germany on March 14, 2017
This is the first time that I have thought the refactorings as a way of transforming the software to more complex forms.
I always thought the patters as design patterns that one applies up front to a software. However this book fits the patterns very nicely to the context of software evolution. I found this book very valuable. It made me to apply patterns much more frequently in my projects.
david
5.0 out of 5 stars Gran libro demasiado caro en Amazon.es
Reviewed in Spain on July 11, 2015
Libro imprescindible, muy bien escrito y estructurado. Conjuga refactorings y patrones de forma excelente. Para sacarle todo el jugo requiere tener en mente el de Refactorings de Fowler y el clásico de Patrones de diseño, ya que se hace referencia a ellos constantemente en cada uno de los casos planteados asumiendo que ya se dominan los conceptos.
Excesivamente caro en Amazon España, 60 € me parece un timo.
matteo
5.0 out of 5 stars Un must have
Reviewed in Italy on February 24, 2014
Consigliato, un libro da leggere assolutamente.
Per quanto riguarda la velocità di spedizione, l'affidabilità ed il packaging: ottimo come sempre.