Refactoring: Improving the Design of Existing Code by Martin Fowler, Kent Beck

BUY IT NEW

  • $64.99 List price
    $46.58 Online price
    $41.93 Member price
    (Save 35%)
    Limited Time Offer! Everyone receives the Member Price on books.
    See Details
  • skip to cart
  • Add To List uiAction=GetAllLists&page=List&pageType=list&ean=9780201485677&productCode=BK&maxCount=100&threshold=3

GET FREE SHIPPING ON ORDERS OF $25 OR MORE

DELIVERY & GIFT DETAILS:

Usually ships within 24 hours

Delivery Time and Shipping Rates

Eligible for gift wrap & gift message.

BUY IT USED

18 copies from $28.55

See All Available

Pick Me Up

Reserve it at BN.com & pick it up in 60 minutes at your local store.

Enter a zip code

Textbook (Other Format - New Edition)

  • 431pp
  • Sales Rank: 67,268

Textbook Information

  • ISBN-13: 9780201485677
  • Edition Description: New Edition
  • Edition Number: 1
  • Pub. Date: June 1999
  • Publisher: Addison-Wesley

Reader Rating: (5 ratings)

Detailed Rating: "Relevant" See All

Buy it Used: 18 copies from $28.55 See All Available

Customers who bought this also bought

 
  • Overview
  • Editorial Reviews
  • Customer Reviews
  • Features

Product Details

  • Pub. Date: June 1999
  • Publisher: Addison-Wesley
  • Format: Textbook Other Format, 431pp
  • Sales Rank: 67,268

Synopsis

As the application of object technology - particularly the Java programming language - has become commonplace, a new problem has emerged to confront the software development community. Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and extend. Increasingly, software system professionals are discovering just how difficult it is to work with these inherited, "non-optimal" applications. For several years, expert-level object programmers have employed a growing collection of techniques to improve the structural integrity and performance of such existing software programs. Referred to as "refactoring," these practices have remained in the domain of experts because no attempt has been made to transcribe the lore into a form that all developers could use. . .until now. In Refactoring: Improving the Design of Existing Software, renowned object technology mentor Martin Fowler breaks new ground, demystifying these master practices and demonstrating how software practitioners can realize the significant benefits of this new process.

With proper training a skilled system designer can take a bad design and rework it into well-designed, robust code. In this book, Martin Fowler shows you where opportunities for refactoring typically can be found, and how to go about reworking a bad design into a good one. Each refactoring step is simple - seemingly too simple to be worth doing. Refactoring may involve moving a field from one class to another, or pulling some code out of a method to turn it into its own method, or even pushing some code up or down ahierarchy. While these individual steps may seem elementary, the cumulative effect of such small changes can radically improve the design. Refactoring is a proven way to prevent software decay.

In addition to discussing the various techniques of refactoring, the author provides a detailed catalog of more than seventy proven refactorings with helpful pointers that teach you when to apply them; step-by-step instructions for applying each refactoring; and an example illustrating how the refactoring works. The illustrative examples are written in Java, but the ideas are applicable to any object-oriented programming language.

Booknews

A guide to refactoring, the process of changing a software system so that it does not alter the external behavior of the code yet improves its internal structure, for professional programmers. Early chapters cover general principles, rationales, examples, and testing. The heart of the book is a catalog of refactorings, organized in chapters on composing methods, moving features between objects, organizing data, simplifying conditional expressions, and dealing with generalizations. Later chapters describe issues in adopting refactoring in commercial development, automated tools, and the future of refactoring. Java is used for all examples. Annotation c. Book News, Inc., Portland, OR (booknews.com)

More Reviews and Recommendations

Biography

Martin Fowler is the Chief Scientist of ThoughtWorks, an enterprise-application development and delivery company. He's been applying object-oriented techniques to enterprise software development for over a decade. He is notorious for his work on patterns, the UML, refactoring, and agile methods. Martin lives in Melrose, Massachusetts, with his wife, Cindy, and a very strange cat. His homepage is http://martinfowler.com.

Kent Beck consistently challenges software engineering dogma, promoting ideas like patterns, test-driven development, and Extreme Programming. Currently affiliated with Three Rivers Institute and Agitar Software, he is the author of many Addison-Wesley titles.

John Brant and Don Roberts are the authors of the Refactoring Browser for Smalltalk, which is found at http://st-www.cs.uiuc.edu/~brant/RefactoringBrowser/. They are also consultants who have studied both the practical and theoretical aspects of refactoring for six years.

William Opdyke's doctoral research on refactoring object-oriented frameworks at the University of Illinois led to the first major publication on this topic. He is currently a Distinguished Member of Technical Staff at Lucent Technologies/Bell Laboratories.

John Brant and Don Roberts are the authors of the Refactoring Browser for Smalltalk, which is found at http://st-www.cs.uiuc.edu/~brant/RefactoringBrowser/. They are also consultants who have studied both the practical and theoretical aspects of refactoring for six years.



Customer Reviews

Essential reading for professional programmersby Anonymous

Reader Rating:
See Detailed Ratings

October 26, 2009: Refactoring is the process of changing the internal structure of a program without changing its outward behavior. If you are writing a program that you only ever intend to run once, then you have no need to refactor. If, however, you plan on maintaining and adapting your program for years to come, then you will need to know how to change it safely without producing a sloppy, fragile, top-heavy mess. The point of this book is to produce clean, bug-free source code that is easy to adapt to the ever-changing requirements of the marketplace. So this book is as much about writing clean code as it is about refactoring. It identifies around seventy refactorings, explains when you would use each one, and provides some simple source code to illustrate each one.

I Also Recommend: Clean Code, Refactoring to Patterns (The Addison-Wesley Signature Series).

Great book for anyone refactoring codeby Anonymous

Reader Rating:
See Detailed Ratings

February 21, 2009: The book is split into two sections, the process for refactoring code and the library of patterns. The topic is explained through the actual refactoring of sample code. It is an easy read and does a great job addressing the "wrong" approach to refactoring and a step by step process for doing it right. The website contains a more detailed and complex example of refactoring - the missing chapter.

Fowler address the issues with the actual code but I would have liked some discussions on database migration issues. The code we needed to refactor was using ORM (Hibernate) and we shied away from a few classes since we wanted to avoid data migrations. Eventually we'll have to tackle the issue and we won't have a guidebook to help make better choices.


More Customer Reviews