DDD)とはソフトウェアの設計手法であり、「複雑なドメインの設計は、モデルベースで行うべき」であり、また「大半のソフトウェアプロジェクトでは、システムを実装するための特定の技術ではなく、ドメインそのものとドメインのロジックに焦点を置くべき」であるとする[1]。同名の著作で用いた[2]。いった高位の概念と実践について多数述べられている。language(共通言語)を形成するべきである、という考えである。同書は多層アーキテクチャを持つオブジェクト指向システムにおいて、一般的なレイヤ構造におけるドメイン層を記述することに重点を置いている。ドメイン駆動開発では、ドメインモデルを表現する要素として、下記のものを挙げている。ドメインモデル内のオブジェクトであり、その属性によってではなく、連続性と識別性によって定義される。事物の特性を記述するオブジェクトである。パターンを用いて共有できる。操作がオブジェクトに属さない場合に、問題の自然な解決策として、操作をサービスとして実現することができる。サービスの概念は、GRASPにおいて"純粋人工物"と呼ばれるものである。リポジトリ:ドメインオブジェクトを取得するメソッドは、記憶域の実装を簡単に切り替えられるようにするため、専門のリポジトリオブジェクトに処理を委譲するべきである。ドメインオブジェクトを生成するメソッドは、実装を簡単に切り替えられるようにするため、専門のファクトリーオブジェクトに処理を委譲するべきである。外部リンク他の概念との関係[編集]オブジェクト指向分析設計ドメイン駆動設計の考え方は、理論上、オブジェクト指向の手法に制約されるものではない。実際、ドメイン駆動設計では、オブジェクト指向の技法が実現する強みを活かそうとしている。考え方は、ドメイン駆動設計と両立するが、二つの概念の意図するところは多少異なっている。ドメインモデルをよりよく定義する方法よりも、技術の異なるプラットフォームに対してモデルをコードに変換する方法の方に関心がある。Frameworkに固有のものである。POJOとPOCOという用語が現れたことは、二つのプラットフォームのいずれかにおいて、特定のテクノロジの要求に応じてではなく、純粋に対応するドメインの概念のビジネス上の振る舞いを実現するためにドメインオブジェクトが定義されるべきである、という考え方が広まりつつあることを示している。Objectsパターンこのパターンは、次の二つの仮定に基づいている[3]。良質なドメインモデルがあれば、ユーザインターフェイスは、単純にドメインモデルを反映したものになる。ドメインモデルを直接反映したユーザインターフェイスが必要であれば、より良いドメインモデルの設計を余儀なくされる。multimodelingのような手法の実践を助ける。(AOP)AOPを用いると、技術的な関心(セキュリティ、トランザクション管理、ロギング)をドメインモデルから簡単にくくりだすことができ、純粋にビジネスロジックに焦点をおいたドメインモデルの設計と実装を容易にする。ドメイン駆動設計をサポートするソフトウェアツール[編集]ドメイン駆動開発の実践は、特定のソフトウェアツールやフレームワークに依存したものではない。書籍で推奨しているパターンや、ドメイン駆動開発の方法をサポートしている。以下のようなものがある。向けの制御の反転/依存性の注入コンテナであり、サービスとリポジトリ、ファクトリーを利用者に提供する。ドメイン駆動設計の、中でもAOPの実践をサポートした、アプリケーションフレームワーク。データベースアプリケーションのフレームワーク/開発環境であり、オブジェクト関係マッピングとドメイン駆動開発をサポートしている。実現する際に有用なライブラリ。CapableObjects社によるUML図からのデータベース、コード、状態マシンの生成を行うフレームワーク。アプリケーションフレームワークで、ドメイン駆動開発を中心においている。良質なドメインモデルの形成を促し、またリポジトリ、エンティティ、値オブジェクトをサポートする。フレームワークを提供している。オープンソースのドメイン駆動開発の原則を用いてエンタプライズアプリケーションを開発するためのエンタプライズアプリケーションフレームワークで、.NET上に実現されている。オープンソースのモデル駆動型のWebアプリケーションフレームワークで、高い生産性とメンテナンス性を目標にしている。フォーム、関係、ワークフロー管理、ダッシュボード、パンくずリスト、検索、シングルサインオン、権限、レポートなどを提供する。パターンを実現しており、依存性の注入をサポートしている。ドメイン駆動設計におけるリポジトリ、ファクトリー、サービスの概念を、再利用可能な形で実装している。行うフレームワークである。フレームワークである。フレームワークとは異なり、「実際のシステムの振る舞いを直接操作するためにモデルを使用する」。アプリケーションを生成する。実行可能なアプリケーションを作成するために、ドメインクラスを記述するだけでよい。して見えるようにする。Sculptor:ドメイン駆動開発の用語を用いるコード生成フレームワーク。強力なものの一つである。一般的なフレームワークのための型をあらかじめ用意している。ドメイン駆動のフレームワークで、アプリケーションのUI層と、ドメイン層双方の実装に非依存である。プログラマーは、特殊なクラスを用いてアプリケーションのワイヤモデルを記述する。サポートした簡単に使用できるフレームワークで、これからモデル駆動開発を開始しようというチームに向いている。ドメイン駆動開発のWebアプリケーション作成フレームワークで、N層レイアのアプリケーション開発が可能となっている。Frameworkの技術の上に構築されている。(日時は個人設定で未設定ならばUTC)。表示-継承ライセンスの下で利用可能です。追加の条件が適用される場合があります。詳細は利用規約を参照してください。Cookieに関する声明モバイルビュ。