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