Book description
Awareness of design smells – indicators of common design problems – helps developers or software engineers understand mistakes made while designing, what design principles were overlooked or misapplied, and what principles need to be applied properly to address those smells through refactoring. Developers and software engineers may "know" principles and patterns, but are not aware of the "smells" that exist in their design because of wrong or mis-application of principles or patterns. These smells tend to contribute heavily to technical debt – further time owed to fix projects thought to be complete – and need to be addressed via proper refactoring.Refactoring for Software Design Smells presents 25 structural design smells, their role in identifying design issues, and potential refactoring solutions. Organized across common areas of software design, each smell is presented with diagrams and examples illustrating the poor design practices and the problems that result, creating a catalog of nuggets of readily usable information that developers or engineers can apply in their projects. The authors distill their research and experience as consultants and trainers, providing insights that have been used to improve refactoring and reduce the time and costs of managing software projects. Along the way they recount anecdotes from actual projects on which the relevant smell helped address a design issue.- Contains a comprehensive catalog of 25 structural design smells (organized around four fundamental designprinciples) that contribute to technical debt in software projects
- Presents a unique naming scheme for smells that helps understand the cause of a smell as well as pointstoward its potential refactoring
- Includes illustrative examples that showcase the poor design practices underlying a smell and the problemsthat result
- Covers pragmatic techniques for refactoring design smells to manage technical debt and to create and maintainhigh-quality software in practice
- Presents insightful anecdotes and case studies drawn from the trenches of real-world projects
Table of contents
- Cover image
- Title page
- Table of Contents
- Copyright
- Dedication
- Foreword by Grady Booch
- Foreword by Dr. Stéphane Ducasse
- Preface
- Acknowledgments
- Chapter 1. Technical Debt
- Chapter 2. Design Smells
- Chapter 3. Abstraction Smells
- Chapter 4. Encapsulation Smells
- Chapter 5. Modularization Smells
- Chapter 6. Hierarchy Smells
- Chapter 7. The Smell Ecosystem
- Chapter 8. Repaying Technical Debt in Practice
- Appendix A. Software Design Principles
- Appendix B. Tools for Repaying Technical Debt
- Appendix C. Notations for Figures
- Appendix D. Suggested Reading
- Bibliography
- Index
Product information
- Title: Refactoring for Software Design Smells
- Author(s):
- Release date: October 2014
- Publisher(s): Morgan Kaufmann
- ISBN: 9780128016466
You might also like
book
Refactoring to Patterns
In 1994, Design Patterns changed the landscape of object-oriented development by introducing classic solutions to recurring …
book
Software Development, Design and Coding: With Patterns, Debugging, Unit Testing, and Refactoring
Learn the principles of good software design, and how to turn those principles into great code. …
book
Refactoring at Scale
Making significant changes to large, complex codebases is a daunting task--one that's nearly impossible to do …
book
Refactoring JavaScript
How often do you hear people say things like this? "Our JavaScript is a mess, but …