クリーンアーキテクチャ(ちょうぜつ本)
最も内側:ドメインモデル
まるで現実から事実をただ写し取っただけのようなコード (p.53)
業務の中心
プログラミング言語の文法と標準ライブラリのみに依存
アプリケーションとしては無意味
変わらないことだけを意図的に抽出した
ユーザーの希望で変わるものを排除し、何を望まれても共通したものを残す (p.53)
どメインモデル
ユースケース
本質から排除された、ユーザーが行いたい操作を表現するロジック (p.54)
ユースケースはユーザの要望によって変わる!
別の言い方:改善の余地がある
ドメインモデルにのみ依存
技術的な理由で変更を強いられる可能性がほぼない
ユースケースまででは、実機能を持たない
プログラムコードで書いた仕様書 (p.55)
(IMO:この説明が一番しっくり来た)
安定しているので円の中央にあるが、実機能には何も貢献しない(1-2)
関心が現実世界に向いている
インターフェースアダプター
3層目の関心はコンピューターシステムと付きあうためのモデルづくりになります (p.56)
アダプター=言い換え
ユースケースの表現に適したデータや語彙を、コンピューターが扱うのに適したデータと語彙に言い換える役目 (p.56)
言葉としては「コントローラー」
ユースケース(内側の円)を参照する
まだ完全に動作しない。具体的な技術的問題を解決していないから
最も外側:インフラストラクチャ
外部とのやりとりをする技術に関心を向けます (p.57)
アプリケーション外部の事情に影響されるため、かなり不安定
処理内容ごとに小分けにして不安定さを小さく閉じる
(IMO:図は小さく閉じることも表している!)
クリーンアーキテクチャでは、最も外側の円が、アプリケーションの実動作のすべてを担います。(p.58)
内側の3つの円はいらないわけではなく、不安定を安定に依存させることで、変更を閉じることができる!