Clean Architecture: A Craftsman's Guide to Software Structure and Design

Martin’s definitive guide to software architecture, teaching dependency rules, component cohesion, and use case boundaries that keep business logic pristine.
Resources & Links
Uncle Bob’s legendary guide reveals timeless architecture rules that eliminate framework dependencies and enable systems to evolve gracefully—essential for building platforms that outlast technology trends.
Who This Is For
Staff+ engineers designing systems from scratch or refactoring legacy codebases. Platform architects building developer platforms that must adapt to changing technology stacks. Technical leads making architectural decisions that impact team velocity. Senior developers who want to build maintainable, testable systems that outlive frameworks and databases.
Key Takeaways
- The Dependency Rule: source code dependencies must point inward toward higher-level policies; outer layers (frameworks, databases, UI) depend on inner layers (business rules), never the reverse, enabling plugin architecture patterns.
- Treat frameworks as tools, not foundations—business rules should remain isolated from web frameworks, ORMs, and external dependencies to prevent architectural lock-in and enable easy replacement.
- Screaming Architecture: system structure should reveal intent and use cases at first glance; folder names should describe business domains, not technical frameworks, making the application’s purpose immediately obvious.
- Component cohesion principles (REP, CCP, CRP) organize code into components that change together and minimize unnecessary dependencies, reducing coupling and improving reusability.
- Use case boundaries encapsulate application-specific business rules in interactors that orchestrate entity flows while remaining isolated from UI, database, and external concerns for maximum testability.
Related Books
More titles with similar themes.
Domain-Driven Design: Tackling Complexity in the Heart of Software
The foundational text teaching platform architects to model complex business domains through patterns that unite technical implementation with strategic organizational design.
By Eric Evans
The Let Them Theory
Release control over others' choices and redirect that energy to outcomes you can actually influence.
By Mel Robbins
Building Evolutionary Architectures: Automated Software Governance
Protect critical architecture characteristics through automated fitness functions while enabling continuous evolution—transforming architecture from static blueprint to dynamic …
By Neal Ford, Rebecca Parsons, Patrick Kua, Pramod Sadalage


