カテゴリー:DDD
-
09.19
【DDD】「コマンドオブジェクト」を作る。
コマンドオブジェクトとは? 「アプリケーションサービス」の処理(登録処理や更新処理)を呼ぶ際に、今後の変更でいちいちシグネチャが変わってしまう可能性があります。 「アプリケーションサービス」のメソッドのシグネチャが増えるたびにいちい…
-
アプリケーションサービスとは? ユースケースを実現するためのオブジェクトです。アプリケーションとは利用者の目的に応じたプログラムのことを指しており、ドメインオブジェクト(ドメインサービス)とは概念的には対比される概念です。 例 例えば…
-
09.19
【DDD】「リポジトリ」について
リポジトリとは? データを永続化(保存)して、再構築(復元)するといった処理を抽象的に扱うためのオブジェクト。(メモリ上に展開したデータはプログラム終了したら消えてしまうので永続化が必要) オブジェクトのインスタンスをDBに保存、読…
-
09.18
【DDD】「ドメインサービス」とは?
ドメイン駆動設計では「アプリケーションサービス」と「ドメインサービス」の二つのサービスがあります。ここでは「ドメインサービス」について解説します。 ドメインサービスとは? 「値オブジェクト」や「ドメインオブジェクト」には振る舞い(文字数…
-
09.12
【DDD】「CQRS」の活用
リポジトリにドメイン側の処理を埋め込んでしまうのも問題です。(例えば、商品を発売日順に並び替えるというのは仕様になります。) 対策としては、レポジトリ側に仕様オブジェクトを渡して、レポジトリではfindAllで単純に情報を取得して仕様…
-
特徴 値として扱うクラス DB項目を扱う。 ただ、項目に対してビジネスロジックがない場合は基本データ型でも良い。 別インスタンスでも値が同じなら同じものと判断する。 普通のクラスと違って扱いはインスタンスというよりは値に着目する。…
-
Entity(エンティティ) データベースのデータに対するビジネスロジックの置き場所として使うカスタムクラスです。 Entityの特徴 一意性のあるデータの一塊り あるインスタンスは他のインスタンスと重複しない。ユニーク。 SQL…
-
ドメイン駆動設計とは? 高品質のソフトウェア設計をする手法、単純にバグがないと言うよりはビジネス的に成功していると言う意味合いが強い。「ユビキタス言語」と言うチーム共通言語でプログラムを実装する。 ドメインエキスパート 担当業務やシス…
-
08.01
【DDD】三層 + ドメインモデル
層 役割 説明 プレゼンテーション層 画面 進行役に処理を依頼します。 アプリケーション層 進行役 ・処理の流れの進行役、調整役 ・「データソース層」と「ドメインモデル」を使います。 …