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(依存関係逆転の原則)

これが一番理解しにくい。

作成者以外のコメントは許可されていません