Table of Contents

Cover image

Title page

Copyright

Dedication

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. Software Design Principles

Appendix B. Tools for Repaying Technical Debt

Appendix C. Notations for Figures

Appendix D. Suggested Reading

Bibliography

Index

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset