Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The clean architecture was developed by Robert Cecil Martin (co-author of the Agile Manifesto) and provides a structure that supports maintainable applications. It has one main objective, the separation of concerns. Other, often similar concepts have been introduced that promote maintainable applications, and they all have in common that they address the separation of concerns. We choose to explain the clean architecture in this design guide, as it is a good example of an architecture that addresses the separation of concerns. We believe that other concepts are valuable as well, and might be chosen instead of the clean architecture.

In the clean architecture, the separation of concerns is achieved by the following rules:

...

  • It is intrinsically testable, with all benefits attached to that. 
  • Independent of UI. The UI can change easily, without changing the rest of the system.
  • Independent of Database. You can swap out one database for another, and your business rules do not know the difference.
  • Independent of any external system. The business rules should not have to change when the outside world changesexternal systems change. Please note that business rules may change if these reflect law or regulations.

Below is the original figure from the clean architecture:

...