"Refactoring for Software Design Smells: Managing Technical Debt" 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.
- A comprehensive catalogue of structural design smells and their refactoring solutions to solve problems occurring in design
- Explains the importance of smells in managing technical debt, an area of increased concern at software engineering conferences
- Each smell includes examples, source code, and visualization diagrams to facilitate understanding
- Describes solutions across common software design concepts and smells that cross multiple domains