Open7
Clean Architectureを雑に理解する
概要
流行りのクリーンアーキテクチャを理解するための個人的なメモです。
Clean Architectureとは
よくある図
第1階層:Entities (Domain) - Enterprise Business Rules
- どこにも依存した完全に独立した層
- 主にモデル層として扱う
第2階層:Use Cases - Application Business Rules
- Interfaces/controllerへのGateway的な役割がある
- Interfacesに依存する
第3階層:Interfaces - Interface Adapters
- Controllers, Gateways, Presenters
- 実際のデータのやりとりをする役割がある
- Infrastructure に依存する
層の中間で一番プログラミング的な仕事をする層と僕は捉えている。
第4階層:Infrastructure - Frameworks & Drivers
- Devices, Web, UI, DB, External Interfaces
- UI、DB、フレームワークやプラグインを内部に繋ぐ役割がある
- 外部に依存する
DIP(依存関係逆転の原則)
これが一番理解しにくい。
かつ、これが一番重要。