Highlights
- Business rules belong at the center; everything else is a plugin — Martin's core move is putting entities and use cases at the heart of the system, with databases, UIs, and frameworks as replaceable details on the outside. This is SBM's forgotten third pillar made architectural: rules are not scattered glue code but the explicit, protected core the rest of the system orbits.
- The Dependency Rule: source-code dependencies only point inward toward policy — outer layers may know about inner ones, never the reverse, so the stable core stays uncontaminated by volatile detail. In MDDE terms this is exactly why the model sits upstream of the generated code: metadata is the inner circle, and generation flows outward from it.
- Frameworks are details you use, not architectures you marry — Martin warns against letting a framework's structure become your system's structure, because frameworks come and go faster than the business they serve. Platforms churn, capabilities endure: the same reasoning says your data models and rules must outlive whichever tool currently renders them.
- Good architecture defers decisions and keeps options open — the measure of an architecture is how long you can postpone committing to a database, a delivery mechanism, or a vendor without paying for it. This is the model-outlives-the-tool argument in another dialect: a model-driven core lets you re-target generation when the decision finally lands, instead of rewriting.
- Architecture should scream the domain, not the technology — Martin's "screaming architecture" says a system's top-level structure should announce what the business does, not which framework it runs on. That is business-friendly modeling as a structural discipline: the same instinct behind concept-libraries, where shared, precise domain vocabulary shapes the system rather than tool jargon.
- Components earn independence through cohesion and controlled coupling — his component principles argue for units that group what changes together and expose narrow, deliberate boundaries. That is the atomic-units reflex applied to code: self-contained pieces with explicit interfaces compose into systems, where entangled cleverness only compounds into magic nobody can regenerate.
Highlights on this page are generated with the help of AI.
