Chapter 1 What Is Design and Architecture?
Chapter 2 A Tale of Two Values
PART II Starting with the Bricks: Programming Paradigms
Chapter 4 Structured Programming
Chapter 5 Object-Oriented Programming
Chapter 6 Functional Programming
Chapter 7 SRP: The Single Responsibility Principle
Symptom 1: Accidental Duplication
Chapter 8 OCP: The Open-Closed Principle
Chapter 9 LSP: The Liskov Substitution Principle
Guiding the Use of Inheritance
Chapter 10 ISP: The Interface Segregation Principle
Chapter 11 DIP: The Dependency Inversion Principle
The Reuse/Release Equivalence Principle
The Tension Diagram for Component Cohesion
The Acyclic Dependencies Principle
The Stable Dependencies Principle
The Stable Abstractions Principle
Chapter 15 What Is Architecture?
Chapter 17 Boundaries: Drawing Lines
Which Lines Do You Draw, and When Do You Draw Them?
Chapter 21 Screaming Architecture
The Purpose of an Architecture
Frameworks Are Tools, Not Ways of Life
Chapter 22 The Clean Architecture
Chapter 23 Presenters and Humble Objects
Chapter 25 Layers and Boundaries
Chapter 27 Services: Great and Small
Chapter 29 Clean Embedded Architecture
The Target-Hardware Bottleneck
Chapter 30 The Database Is a Detail
Why Are Database Systems So Prevalent?
Chapter 31 The Web Is a Detail
Chapter 32 Frameworks Are Details
Chapter 33 Case Study: Video Sales
Chapter 34 The Missing Chapter
The Devil Is in the Implementation Details
Organization versus Encapsulation
Conclusion: The Missing Advice
Appendix A Architecture Archaeology