Open7

Clean Architectureを雑に理解する

nojima kosukenojima kosuke

第1階層:Entities (Domain) - Enterprise Business Rules

  • どこにも依存した完全に独立した層
  • 主にモデル層として扱う
nojima kosukenojima kosuke

第2階層:Use Cases - Application Business Rules

  • Interfaces/controllerへのGateway的な役割がある
  • Interfacesに依存する
nojima kosukenojima kosuke

第3階層:Interfaces - Interface Adapters

  • Controllers, Gateways, Presenters
  • 実際のデータのやりとりをする役割がある
  • Infrastructure に依存する

層の中間で一番プログラミング的な仕事をする層と僕は捉えている。

nojima kosukenojima kosuke

第4階層:Infrastructure - Frameworks & Drivers

  • Devices, Web, UI, DB, External Interfaces
  • UI、DB、フレームワークやプラグインを内部に繋ぐ役割がある
  • 外部に依存する