Chapter 10: ISP — The Interface Segregation Principle
No client should be forced to depend on methods it does not use. ISP keeps interfaces focused, prevents unnecessary recompilation, and — at the architectural level — prevents importing modules that drag in unwanted dependencies.
Chapter 11: DIP — The Dependency Inversion Principle
High-level policy should not depend on low-level details. Both should depend on abstractions. DIP is the mechanism that makes Clean Architecture possible — and the most architecturally consequential of all SOLID principles.
Chapter 7: SRP — The Single Responsibility Principle
The most misunderstood SOLID principle. SRP is NOT "every class does one thing" — it means a module should have only one reason to change, i.e., it serves only one actor. Learn the two symptoms of SRP violation and how to solve them.
Chapter 8: OCP — The Open-Closed Principle
A software artifact should be open for extension but closed for modification. OCP is the architectural goal that drives Clean Architecture: protect high-level policy from changes in low-level details by controlling the direction of dependencies.
Chapter 9: LSP — The Liskov Substitution Principle
If S is a subtype of T, objects of type S must be substitutable for objects of type T without altering the correctness of the program. LSP governs not just inheritance but any interface contract — and its violation breaks architectural boundaries.