CleanArchitecture
https://gyazo.com/e42f9d0796cb140b7c3d524c8d6db4d7
クリーン・アーキテクチャとは、アプリケーション・ドメインに近接しているかどうかによって、責任と機能の一部を分離する方法である。
The Clean Architectureは、その中の機能が層に分かれていることから、3層アーキテクチャと呼ばれることもあります。
3層アーキテクチャ
ドメイン層
黄色いところ
アプリケーションの対象領域を表すエンティティやデータ、そしてそのデータを変換するためのコードを指します。
ドメインエンティティのデータ構造と、その変換の本質は、外界から独立しています。外部イベントはドメイン変換のきっかけとなるが、どのように変換されるかは決定しません。
アプリケーション層
この層はユースケース、つまりユーザーシナリオを記述します。
アダプタ層
一番外のレイヤ
外部サービスへのアダプタを含みます。アダプタは、外部サービスの互換性のない API を、アプリケーションの希望に沿った API に変換するために必要です。
アダプタはよく次のように分けられます。
・ドライビング(driving) - アプリケーションに信号を送信するもの。
・ドリブン(driven) - アプリケーションから信号を受け取るもの
インフラストラクチャ(backend, DB),や他サービスAPIと対話する
UIとも対話する。(View)
依存関係のルール
外側の層だけが内側の層に依存できる
reference