だらだらと思いついたこととか書くブログ

エンジニア的なネタとか備忘録とかを書いていく予定

ドメイン駆動設計について調べてみる - Part1

ドメイン駆動設計について自分なりに調べてまとめてみる まずはドメインや境界づけられたコンテキストなど実践ドメイン駆動設計の第2章から

ドメイン

組織が行う事業やそれを取り巻く世界のこと

ドメインモデル

ドメインの知識や振舞を抽象化したもの

業務の"データ"と業務の"機能"をコードで表現 -> データクラスと機能クラスに分けるのはアンチパターン => クラスにカプセル化 -> データと機能を行ったり来たりしながらドメインモデルを作り上げていく

ドメインモデルをみんな(データベースや各アプリケーションなど)で共有する

あちこちに分散しがちな業務ロジックをデータ中心に整理して集約する ->ドメインモデルに業務ロジックを集めて重複コードを減らす

ドメイン層のオブジェクト

業務の"関心事"を表現したオブジェクト

業務サービスの実行役

独自の型(利用者の関心事)だらけにする

ユビキタス言語

ドメインエキスパート(その業務に詳しい人)や開発者を含めたチーム全体で作り上げる共通言語

境界づけられたコンテキスト

ユビキタス言語が使われるコンテキストを明示したもの

--> ドメイン毎(サブドメインの集合体)の境界を表すものなのか、そのドメインが共有されている組織を表すものなのか、はたまたそのどっちでも無いのか、ここについてまだ理解ができていない・・

https://www.slideshare.net/masuda220/ss-26583161 https://www.slideshare.net/masuda220/ss-57352072 https://www.slideshare.net/hirokishigemura9/ruby-ddd