Posted at

「ドメイン駆動設計とは」を一言で表現して

@Yorinton さんのツイートがきっかけで、「ドメイン駆動設計」をみんなどう理解し、表現しているのか気になって調べてみた。


  1. ドメイン駆動設計とは、実装を業務の中核をなす概念モデルの発展に深く結びつけることで、複雑なニーズに対応するソフトウェアを開発するためのアプローチ。1 - What is Domain-Driven Design?


  2. ドメイン駆動設計とはソフトウェアの設計手法であり、「複雑なドメインの設計は、モデルベースで行うべき」であり、また「大半のソフトウェアプロジェクトでは、システムを実装するための特定の技術ではなく、ドメインそのものとドメインのロジックに焦点を置くべき」であるとする。 - ドメイン駆動設計 - Wikipedia


  3. 巨大なソフトウェアプロジェクトが直面する最も複雑な局面は、実装ではなく、ソフトウェアが提供する実世界のドメインです。ドメイン駆動設計(Domain Driven Design)は、非常に複雑なドメインを取り扱うためのヴィジョンとアプローチです。このヴィジョンとアプローチは、ドメイン自身をプロジェクトの主な焦点とし、ドメインの深い理解を反映したソフトウェアモデルを維持します。 - Domain Driven Design(ドメイン駆動設計) Quickly 日本語版


  4. 厳しい現実の中で、ソフトウェア設計を習得しようと奮闘してきた技術者の物語。不完全な状況の中で、抽象的な設計原則を、現実のソフトウェアに適用するための助言。 - ドメイン駆動設計 基本を理解する - 増田 亨


  5. ソフトウェア開発者、ドメインエキスパートと共に常に同じ言語で認識を合わせ、ドメインモデルについて常に探求を続ける。そして最終的にモデルと言語をソフトウェアにまで落としこむことを目指す。 - ドメイン駆動設計の定義についてEric Evansはなんと言っているのか[DDD] - little hands' lab


  6. 顧客と開発者が業務を戦略的に理解し、共通の言葉を使いながらシステムを発展させる手法 - ドメイン駆動設計のメリットと始め方 ~ 1章「DDDへの誘い」 (1/3):CodeZine(コードジン)


  7. 作成したいシステムに対して開発者とその業務に詳しい人が一緒にビジネスロジックのみに焦点を当て、誰が何をするかというドメインモデルを作成する設計手法 - DDDってなんだっけ?DDDの外部セミナーに参加してきました - CyberZ公式エンジニアブログ


  8. DDDとは、Eric Evans氏が2000年代初頭から提唱しているソフトウェア設計手法で、機能中心ではなくドメイン(ビジネス上の関心領域)に設計の重心を置いたオブジェクト指向設計手法の1つである。 - DDD超入門(前編) - Domain-Driven Designの概要 - エンタープライズギークス (Enterprise Geeks)


  9. DDDは、Domain-Driven Designの略で、ドメイン駆動設計と訳されます。エリック・エヴァンス氏が、著書『Domain-Driven Design』(以降DDD本)で提唱している開発方法論です。同書のサブタイトルには「Tackling Complexity in the Heart of Software」(ソフトウェアの核心にある複雑さに立ち向かう)とあります。複雑化するシステムにおいて、いかにユーザのニーズを把握、実現し、保守・拡張していけば良いかの戦略を示したものです。 - 実践DDD [Domain-Driven Design]:第1回:DDDを俯瞰する | 豆蔵ソフト工学ラボ






  1. Domain-driven design (DDD) is an approach to developing software for complex needs by deeply connecting the implementation to an evolving model of the core business concepts.」