About_Clean_Architecture en - umm/cafu_core GitHub Wiki
What is Clean Architecture?

Clean Architecture proposed by Uncle Bob at 8th Light's blog in August 2012 It is a software architecture.
Represented by Hexagonal Architecture and Onion Architecture It is a kind of Layered Architecture and is an architecture that strongly considers separation of software by layers.
Rule
Clean Architecture defines the following rules.
- Define a layer according to the role of software / program
- Layer dependency is unidirectional
- Use a method based on Dependency Inversion Principle for layer dependency resolution
- The number of layers is indeterminate
Separate layers
Domain
The Clean Architecture requires that business logic be separated properly.
By describing the class according to the role as UseCase and maintaining a mutual relationship, it is expected that we can suppress the influence on other layers.
Data
We define a variety of data structures such as data related to drawing of UI and data brought from external DB as classes and structures.
They should also be defined as separate data structures to realize the separation of interest between layers. You may also want to define a layer like interface adapter for converting these data.