【どめいんもでる】

ドメインモデル とは?

最終更新:
💡 業務の概念とルールを、関係者が確かめられる形にする

対象とする業務の概念・関係・ルールを、システムの目的に合わせて整理したモデル。実装ではデータとふるまいを持つオブジェクトなどで表現し、ドメイン駆動設計(DDD)でも重視される。

📌 このページのポイント
業務の概念・関係・ルール 販売業務を単純化した例 注文 データ:注文の状態 ふるまい: キャンセル可否の判定 明細 データ:商品・数量 ふるまい: 小計の計算 注文は明細を含む 仮のルール:発送後はキャンセル不可
データと業務上のふるまい、概念どうしの関係を整理する例です。キャンセル条件は説明用の仮定で、実際のモデルは業務の目的や範囲に合わせて作ります。
ひよこ ひよこ
ドメインってWebサイトの名前のこと?
ペンギン先生 ペンギン先生
ここでは、システムが扱う業務や問題の領域だよ。販売なら注文や商品、支払いなどが登場するね。その中のどの概念やルールをシステムで扱うかを整理するんだ。
ひよこ ひよこ
データベースの設計図とは違う?
ペンギン先生 ペンギン先生
データベースのモデルは保存するデータやその関係が中心だね。ドメインモデルは「注文をキャンセルできる条件」のような業務のふるまいも扱う。保存の構造と関係はあるけれど、必ず一対一で対応するわけではないよ。
ひよこ ひよこ
データとルールを一緒にするって?
ペンギン先生 ペンギン先生
たとえば「発送後はキャンセルできない」という仮の業務なら、注文の状態と、キャンセル時に状態を確かめるふるまいを表現するよ。これは説明用のルールで、全ての販売業務に共通する規則ではないんだ。
ひよこ ひよこ
業務を全部そのままコードにするの?
ペンギン先生 ペンギン先生
目的に必要な部分を選んで単純化するよ。最初は図や会話で整理し、実装ではデータとふるまいを持つオブジェクトなどに表す。DDDではモデルと言葉を業務担当者と開発者ですり合わせ、学んだことに応じて見直すんだ。
ひよこ ひよこ
会社全体で一つのモデルに統一する?
ペンギン先生 ペンギン先生
同じ「顧客」でも販売とサポートでは必要な情報や意味が違うことがあるよ。DDDでは境界づけられたコンテキストごとに、モデルと言葉が通じる範囲を明確にする。会社全体を無理に一つの意味へ合わせることが目的ではないね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ドメインモデル」って出てきたら「業務の概念・関係・ルールを整理したモデル」と思えればだいたいOK!
📖 おまけ:英語の意味
「Domain Model」 = 領域モデル
💬 「domain(業務領域)」を「model(模型・型)」として表現するという意味の言葉だよ。

参考資料

← 用語集にもどる