カテゴリー:DDD
-
もし適用するならの話になります。(あまり適用されている案件は見たことないですが。) ビューモデル エンティティを表示のために変換したものです。SPAの中心にはこれが属します。 ユースケース ビューモデルを…
-
09.23
【DDD】「ドメインイベント」について
ドメインイベントとは? 対象とするシステムで何かの出来事が起きたときに扱う仕組み。システム間の連携を柔軟にします。 業務的な出来事をドメインイベントとして発生させ、それらを同期的、非同期的に処理することでシステムとしての整合性を維持…
-
API Composition ある一つのサービスが中心となってデータを収集、結合を行う方式です。 デメリット オーバーヘッドが高くなる。 可用性が下がる可能性がある。 CQRS(コマンドクエリ責務分離) データ…
-
09.23
【DDD】「コンテキストマップ」について
コンテキストマップとは? 「境界づけられたコンテキスト」間の関係を俯瞰する地図。他のチーム(連携システム)との関係性を可視化する図。 アーキテクチャというよりはシステム間のコミュニケーションを表す図になります。組織間の問題を見つけ出…
-
ドメイン 企業には独自のルールや文化が存在しています。 分析対象となる問題領域(ビジネス課題)、全ての仕組みを理解するにはあまりに大きく複雑なため通常は「コアドメイン」と「サブドメイン」と言う適切なサイズに分割する。 コアドメイン…
-
DDDは、特定の技術に依存していないため自由にアーキテクチャを選択することが可能です。 以下は、ドメイン駆動設計と同時に語られることが多いアーキテクチャです。 アーキテクチャ選定のポイント 以下の要素が判断材料になります。 …
-
09.20
【DDD】「集約」とは?
集約とは? トランザクション整合性を保ちながら更新を行うオブジェクトのまとまりです。集約は主に「エンティティ」から構成されます。(IDで識別することが重視されるため)なお、「集約ルート」しか操作してはいけないです。 集約ルートとは? …
-
09.20
【DDD】トランザクション処理はどうするか?
トランザクション処理は技術基盤が主に関わる低次元な役割です。 普通に書くと「アプリケーションサービス」に対してトランザクションを記述しなければならなくなるでしょう。 そうすると、特定の技術基盤に「アプリケーションサービス」が依存…
-
09.19
【DDD】「ファクトリ」オブジェクトとは?
ファクトリとは? 作る知識に特化したオブジェクト 一般的な開発では、オブジェクトの生成は複雑な手順を必要とします。そうした手順を独立したオブジェクトとして切り出します。 DDDにおけるファクトリでは、「ユビキタス言語を用いて集…
-
09.19
【DDD】クラス間の依存度を下げるには?(DI)
あるクラス内で別クラスをインスタンス変数で設定していた場合、コンストラクタでインスタンス化すると依存性が上がってしまいます。なので、DI(依存性の注入)をすることで依存度を下げることが可能です。 DIとは? あるクラス(アプリケーション…