[バウンデッドコンテキスト名]
最終更新: [ 更新日を記載 ]
概要
このバウンデッドコンテキストの目的と責務:
対象ビジネス領域: [ 具体的な業務領域(例:ユーザー管理、注文処理、在庫管理) ]
主要責務: [ このコンテキストが担う責任(例:会員の登録・認証・管理) ]
境界: [ 他のコンテキストとの境界(例:支払いコンテキストとの連携点) ]
主要なビジネスルール: [ 中核となるビジネスルール(例:一意性制約、業務フロー) ]
エンティティ
[エンティティ名]
プロパティ:
ID: [ ID型 ]([ 説明 ])
[プロパティ名1]: [ 型 ]([ 用途・制約 ])
[プロパティ名2]: [ 型 ]([ 用途・制約 ])
[プロパティ名3]: [ 型 ]([ 用途・制約 ])
作成日時: DateTime([ エンティティ作成日時 ])
更新日時: DateTime([ 最終更新日時 ])
メソッド:
[メソッド名1]([引数]): [ 戻り値型 ]
目的: [ メソッドの目的 ]
事前条件: [ 必要な前提条件 ]
事後条件: [ 実行後の状態 ]
例外: [ 発生する例外とその条件 ]
[メソッド名2]([引数]): [ 戻り値型 ]
目的: [ メソッドの目的 ]
ビジネスルール: [ 適用されるビジネスルール ]
副作用: [ ドメインイベント発行など ]
ビジネス不変条件:
[不変条件1 ](例:IDは一意である必要がある)
[不変条件2 ](例:ステータスは定義された値のみ有効)
[不変条件3 ](例:作成日時は更新日時以前である必要がある)
値オブジェクト
[値オブジェクト名1]
プロパティ:
[プロパティ名]: [ 型 ]([ 制約・説明 ])
バリデーション:
[バリデーション名1]: [ ルール詳細(例:RFC 5322準拠のメール形式) ]
[バリデーション名2]: [ ルール詳細(例:最大文字数制限) ]
[バリデーション名3]: [ ルール詳細(例:必須文字種の組み合わせ) ]
不変条件:
[不変条件1 ](例:nullや空文字は許可されない)
[不変条件2 ](例:形式チェックに通った値のみ有効)
[値オブジェクト名2]
プロパティ:
[プロパティ名1]: [ 型 ]([ 制約・説明 ])
[プロパティ名2]: [ 型 ]([ 制約・説明 ])
[プロパティ名3]: [ 型 ]([ 制約・説明 ])
バリデーション:
[複合バリデーション1]: [ 複数フィールドの組み合わせルール ]
[複合バリデーション2]: [ 相互依存関係のルール ]
集約
[集約名1]
集約ルート: [エンティティ名]
含まれるオブジェクト:
[エンティティ名](集約ルート)
[値オブジェクト名1]
[値オブジェクト名2]
[子エンティティ名](存在する場合)
集約不変条件:
[集約レベル不変条件1](例:集約内の一意性保証)
[集約レベル不変条件2](例:状態遷移の整合性)
[集約レベル不変条件3](例:ビジネスルールの強制)
集約操作:
[操作名1]([引数]): [戻り値型]
引数: [引数の詳細説明]
戻り値: [戻り値の詳細説明]
ビジネスルール: [適用されるルール]
副作用: [ドメインイベント発行など]
例外: [発生する例外条件]
[集約名2]
集約ルート: [エンティティ名]
含まれるオブジェクト:
[エンティティ名](集約ルート)
[値オブジェクト名]
ライフサイクル:
作成: [作成条件とプロセス]
更新: [更新可能な状態と条件]
削除: [削除条件と制約]
ドメインサービス
[サービス名1]
責務: [サービスの主要な責務(例:複数集約にまたがるビジネスロジック)]
メソッド:
[メソッド名]([引数]): [戻り値型]
目的: [メソッドの目的]
引数: [引数の詳細]
戻り値: [戻り値の詳細]
処理概要: [処理の流れ]
業務ルール: [適用するビジネスルール]
依存関係: [使用する他のドメインオブジェクト]
[サービス名2]
責務: [サービスの主要な責務(例:外部システム連携のビジネスロジック)]
協調オブジェクト:
[集約名1]
[集約名2]
[他のドメインサービス名]
リポジトリ
[リポジトリ名1]
対象集約: [集約名]
基本操作:
保存: save([集約名]) : void
ID取得: findById([ID型]) : [集約名] | null
削除: delete([集約名]) : void
検索操作:
[検索メソッド名1]([条件パラメータ]): [戻り値型]
検索条件: [検索条件の詳細]
戻り値: [単一オブジェクト/リスト/ページネーション]
パフォーマンス考慮: [インデックス要件など]
[検索メソッド名2]([条件パラメータ]): [戻り値型]
制約:
一意性制約: [一意性を保証する項目]
参照整合性: [他のエンティティとの関係]
ビジネス制約: [ビジネスルールに関する制約]
アプリケーションサービス
[アプリケーションサービス名]
責務:
[責務1(例:ユースケースの調整とトランザクション管理)]
[責務2(例:ドメインサービスとリポジトリの協調)]
[責務3(例:ドメインイベントの発行管理)]
依存関係:
[ドメインサービス名1]
[ドメインサービス名2]
[リポジトリ名1]
[リポジトリ名2]
[外部サービス名]
メソッド:
[メソッド名]([引数]): [戻り値型]
ユースケース: [対応するユースケース]
トランザクション: [トランザクション境界]
処理フロー: [主要な処理ステップ]
例外処理: [エラーハンドリング方針]
ドメインイベント: [発行するイベント]
ドメインイベント
[イベント名1]
発生タイミング: [イベントが発生する具体的なタイミング]
イベントデータ:
[データ名1]: [型]([データの説明])
[データ名2]: [型]([データの説明])
発生日時: DateTime(イベント発生日時)
集約ID: [ID型](関連する集約の識別子)
処理対象:
[処理システム/コンテキスト名1]: [処理内容]
[処理システム/コンテキスト名2]: [処理内容]
[イベント名2]
発生条件: [より具体的な発生条件]
統合パターン: [他のバウンデッドコンテキストとの統合方法]
関連情報
関連ユースケース:
../usecase/[関連ユースケース名1]
../usecase/[関連ユースケース名2]
関連データベース設計:
../database/[関連テーブル名1]
../database/[関連テーブル名2]
関連ドメインモデル:
ドメインモデル の [関連エンティティ名]セクション
関連情報
関連ユースケース:
../usecase/[関連ユースケース名1]
../usecase/[関連ユースケース名2]
関連データベース設計:
../database/[関連テーブル名1]
../database/[関連テーブル名2]
関連ドメインモデル:
ドメインモデル の [関連エンティティ名]セクション