Refactoring: Improving the Design of Existing Code eBook, 2nd Edition

Martin Fowler

Refactoring: Improving the Design of Existing Code eBook, 2nd Edition

By Martin Fowler
In stock
Add to cart
Martin Fowler
Published Date

Refactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With refactoring you can even take a bad design and rework it into a good one. This book offers a thorough discussion of the principles of refactoring, including where to spot opportunities for refactoring, and how to set up the required tests. There is also a catalog of more than 40 proven refactorings with details as to when and why to use the refactoring, step by step instructions for implementing it, and an example illustrating how it works. The book is written using Java as its principle language, but the ideas are applicable to any OO language.

The full text downloaded to your computer

With eBooks you can:

  • search for key concepts, words and phrases
  • make highlights and notes as you study
  • share your notes with friends

eBooks are downloaded to your computer and accessible either offline through the Bookshelf (available as a free download), available online and also via the iPad and Android apps.

Upon purchase, you'll gain instant access to this eBook.

Time limit

The eBooks products do not have an expiry date. You will continue to access your digital ebook products whilst you have your Bookshelf installed.

  • The first update to a classic that is the standard reference for refactoring in over 15 years
  • Enhanced, web-based features including interactive examples, video snippets, code highlighting
  • Extensive use of JavaScript examples
Table of contents
  • Preface
  • 1. Refactoring, a First Example
  • 2. Principles in Refactoring
  • 3. Bad Smells in Code
  • 4. Building Tests
  • 5. Toward a Catalog of Refactorings
  • 6. Composing Methods
  • 7. Moving Features between Objects
  • 8. Organizing Data
  • 9. Simplifying Conditional Expressions
  • 10. Making Method Calls Simpler
  • 11. Dealing with Generalization
  • 12. Big Refactorings
  • 13. Refactoring, Reuse, and Reality
  • 14. Refactoring Tools
  • 15. Putting It All Together