Clean Architecture
Clean Architecture is an architectural pattern that advocates organizing a software system into distinct layers, each with its own responsibilities and dependencies.
The term Clean Architecture was introduced by Robert Martin (known as Uncle Bob) in his book titled Clean Architecture: A Craftsman’s Guide to Software Structure and Design, published in 2017. The foundation of this approach is built upon a few earlier architectural patterns:
- The hexagonal architecture (also known as ports and adapters) by Alistair Cockburn
- Onion Architecture by Jeffrey Palermo
- Screaming Architecture by Robert Martin
- Data, context, and interaction (DCI) by James Coplien and Trygve Reenskaug
- Boundary-control-entity (BCE) by Ivar Jacobson
Clean Architecture dissects a software system by numerous layers, where each layer is wrapped one on top of the other, like an onion. The Dependency Rule of Clean Architecture states that the outer layers always...