エリック・エヴァンスのドメイン駆動設計 その1 〜まえがき〜

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

ちょうど今のプロジェクトの設計中に縁あってエリック・エヴァンスのドメイン駆動設計に出会って読み始めた。
ドメイン駆動設計とは、私の捉えた定義は次のとおり。
「事業領域を軸に考えて設計を進めるもの」
本に書かれているのは「ドメインモデリングと設計を体系的(フレームワークを元)に行うもの」と定義されている。

一応Wikiのリンクも。
ドメイン駆動設計

1章ごとに感想をブログに書いていこうと思う。
今日はまえがきから。

非常に腹落ちしたのはドメイン設計を重視したプロジェクトが成功したという著者の体験談。

チームがドメインを理解する

チームがドメインについて新たな洞察を得るにつれ、モデルは深みを増していった。
(対照的な3つのプロジェクトより)

まさにそのとおり。
今まさにそれを体験しているからすごく納得できた。
今のチームは全員ドメインを理解していて、さらにそのモデルを理解している。それがすごい強みになっている。
その強みをフルで活用してプロダクト開発を実施できている。

設計を成功させるのはドメインの理解である

次の文脈も非常に腹落ちた。

複雑なのはドメインそのもの、すなわち、ユーザ活動やビジネスなのである。ドメインの持つこの複雑さが設計で扱われないのであれば、基盤となる技術が適切に考えられていたとしても意味がない。設計を成功させるためには、ソフトウェアにおけるこの中心的な側面を、体系的に扱わなければならない。
(複雑さという課題)

私はインターネット業界、特にインターネット広告業界に在籍している。ここでドメイン駆動設計を適用するならば、インターネット広告業界のビジネスを知り、それを体系的にして共通言語を作りチームに落とし込まなければならない。

開発とドメインエキスパートは密接に関わっている

ドメイン駆動設計は、膨大な知識をかみ砕き、ドメインについての深い洞察と、集中すべき主要な概念を反映したモデルを構築する。これは、ドメインを理解している人と、ソフトウェアの構築方法を知っている人で行う共同作業だ。
(複雑さという課題)

インターネット広告業界で言うなればドメインエキスパートは業務推進(以下、業推)の方だろうか。あと業推と連携している営業、経理、あと経営者。この人達(ドメインエキスパート)の協力がなければ絶対に知識はかみ砕けないし洞察は得られない。

続きはまた明日以降。

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)