見出し画像

読書ログ:『ドメイン駆動設計入門-13、14章』

このnoteは「ドメイン駆動設計入門」の読書記録です。


13章-複雑な条件を表現する「仕様」と14章-アーキテクチャを読みました📚


仕様とは

あるオブジェクトがある評価基準に達しているかを判定するオブジェクト。複雑な評価手順をオブジェクトに埋もれさせず切り出すことでカプセル化され、コードの意図が明確になる。

アーキテクチャは方針

何がどこに記述されるべきかを明確にし、ロジックが無秩序に点在することを防ぐ。開発者がドメイン駆動設計の本質である「ドメインを捉え、うまく表現する」ことに集中できる。

レイヤードアーキテクチャ

最も伝統的で有名なアーキテクチャ。プレゼンテーション層、アプリケーション層、ドメイン層、インフラストラクチャ層の4つで形成。ドメイン層は最も重要で、問題解決に必要な知識を他の層へ流出しないようにする。アプリケーション層はドメイン層の住人を取りまとめ、プレゼンテーション層はユーザーインターフェースとアプリケーションを結びつけ、インフラストラクチャ層は他の層を支える技術的基盤へのアクセスを提供する。

ヘキサゴナルアーキテクチャ

六角形をモチーフにした、アプリケーションとそれ以外のインターフェースや保存媒体は付け外しできるようにするというコンセプトのもの。アプリケーション以外のモジュールはゲームのコントローラーのように差し替え可能。コアとなるアプリケーションに影響しない。

クリーンアーキテクチャ

4つの同心円が特徴的な図によって説明されるアーキテクチャ。ビジネスルールをカプセル化したモジュールを中心に捉え、依存の方向を絶対的に制御するというコンセプトのもの。ヘキサゴナルアーキテクチャと目的は同じ。

ドメインの隔離

ドメイン駆動設計で最も重要なこと。アーキテクチャの採用はドメインの隔離を促すことができる。

いいなと思ったら応援しよう!