Foreword Preface Acknowledgments About the Author Part I: Introduction Chapter 1: What Is Design and Architecture? Chapter 2: A Tale of Two Values Part II: Starting with the Bricks: Programming Paradigms Chapter 3: Paradigm Overview Chapter 4: Structured Programming Chapter 5: Object-Oriented Programming Chapter 6: Functional Programming Part III: Design Principles Chapter 7: SRP-The Single Responsibility Principle Chapter 8: OCP-The Open-Closed Principle Chapter 9: LSP-The Liskov Substitution Principle Chapter 10: ISP-The Interface Segregation Principle Chapter 11: DIP-The Dependency Inversion Principle Part IV: Component Principles Chapter 12: Components Chapter 13: Component Cohesion Chapter 14: Component Coupling Part V: Architecture Chapter 15: What Is Architecture? Chapter 16: Independence Chapter 17: Boundaries: Drawing Lines Chapter 18: Boundary Anatomy Chapter 19: Policy and Level Chapter 20: Business Rules Chapter 21: Screaming Architecture Chapter 22: The Clean Architecture Chapter 23: Presenters and Humble Objects Chapter 24: Partial Boundaries Chapter 25: Layers and Boundaries Chapter 26: The Main Component Chapter 27: Services: Great and Small Chapter 28: The Test Boundary Chapter 29: Clean Embedded Architecture Chapter 30: The Database Is a Detail Part VI: Details Chapter 31: The Web Is a Detail Chapter 32: Frameworks Are Details Chapter 33: Case Study: Video Sales Chapter 34: The Missing Chapter Part VII: Appendix Appendix: Architecture Archaeology Afterword Index
Robert C. Martin ("Uncle Bob") has been a programmer since 1970. He is founder of Uncle Bob Consulting, LLC, and cofounder with his son Micah Martin of The Clean Coders LLC. Martin has published dozens of articles in various trade journals and is a regular speaker at international conferences and trade shows. He has authored and edited many books, including: Designing Object Oriented C++ Applications Using the Booch Method, Patterns Languages of Program Design 3, More C++ Gems, Extreme Programming in Practice, Agile Software Development: Principles, Patterns, and Practices, UML for Java Programmers, Clean Code, and The Clean Coder. A leader in the industry of software development, Martin served for three years as editor-in-chief of the C++ Report, and he served as the first chairman of the Agile Alliance.