Clean Architecture..?
Why?
in some MMT services
business logic, data access, application logic are scrambled and spreaded
logic is tightly coupled with "outside"
what if we have to migrate database?
Core logic should not be tightly coupled with "oustside"
What is it?
The Architecture
To Implement this
Framework Independent
Easy testable
UI Independent
Database Independent
Independent of any external agency
Dependency Rule
The further in you go, the higher level the software becomes.
Source code dependencies can only point
inward
.
Data formats used in an outer circle
should not
be used by an inner circle.
Anything in an outer circle to impact the inner circles.
Entities
Use Cases
Interface Adapters
Framework + Drivers
Crossing boundaries
Dependency Rule
Dependency Inversion Principle
Data that crosses the boundaries is simple data structures.
Entities
Service
Repo Interface
Repos
Service Interface
View
(Controler, Presenter)
Data Store