Clean Architecture
Robert C. Martin cemented the term "clean architecture" in his book of the same name (Clean Architecture by Robert C. Martin, Prentice Hall, 2017, Chapter 22). In clean architecture, in his opinion, the business rules are testable by design and independent of frameworks, databases, UI technologies, and other external applications or interfaces.
That means that the domain code must not have any outward-facing dependencies. Instead, with the help of the DIP, all dependencies point toward the domain code.
The following figure shows how such an architecture might look on an abstract level:
Figure 2.3: In a clean architecture, all dependencies point inward toward the domain logic. Source: "Clean Architecture" by Robert C. Martin
The layers in this architecture are wrapped around each other in concentric circles. The main rule in such an architecture is the dependency rule, which states that all dependencies between those layers must point inward...