To facilitate the discussion and help readers understand the scope of the book, I am putting down the relevant information about the book
"Refactoring for Software Design Smells: Managing Technical Debt".
The sample text covering two design smells can be found
here.
Information about the book:
The book is geared towards software developers and architects. The book presents 25 structural design smells, how they uncover 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. 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. The book describes how the overall quality of software can be improved significantly and technical debt can be reduced by finding and addressing smells in the design.
Companion website: www.designsmells.com
Amazon web page of the book:
http://bit.ly/DesignSmells.
Table of Contents
Foreword by Grady Booch
Foreword by Dr. Stéphane Ducasse
Preface
Acknowledgments
CHAPTER 1 Technical Debt
1.1 What is Technical Debt?
1.2 What Constitutes Technical Debt?
1.3 What is the Impact of Technical Debt?
1.4 What causes Technical Debt?
1.5 How to Manage Technical Debt?
CHAPTER 2 Design Smells
2.1 Why Care About Smells?
2.2 What Causes Smells?
2.3 How to Address Smells?
2.4 What Smells Are Covered in This Book?
2.5 A Classification of Design Smells
CHAPTER 3 Abstraction Smells
3.1 Missing Abstraction
3.2 Imperative Abstraction
3.3 Incomplete Abstraction
3.4 Multifaceted Abstraction
3.5 Unnecessary Abstraction
3.6 Unutilized Abstraction
3.7 Duplicate Abstraction
CHAPTER 4 Encapsulation Smells
4.1 Deficient Encapsulation
4.2 Leaky Encapsulation
4.3 Missing Encapsulation
4.4 Unexploited Encapsulation
CHAPTER 5 Modularization Smells
5.1 Broken Modularization
5.2 Insufficient Modularization
5.3 Cyclically-Dependent Modularization
5.4 Hub-like Modularization
CHAPTER 6 Hierarchy Smells
6.1 Missing Hierarchy
6.2 Unnecessary Hierarchy
6.3 Unfactored Hierarchy
6.4 Wide Hierarchy
6.5 Speculative Hierarchy
6.6 Deep Hierarchy
6.7 Rebellious Hierarchy
6.8 Broken Hierarchy
6.9 Multipath Hierarchy
6.10 Cyclic Hierarchy
CHAPTER 7 The Smell Ecosystem
7.1 The Role of Context
7.2 Interplay of Smells
CHAPTER 8 Repaying Technical Debt in Practice
8.1 The Tools
8.2 The Process
8.3 The People
Appendix A
Appendix B
Appendix C
Appendix D
Bibliography
Index