BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Eric Evans氏はドメイン駆動設計(DDD) は未完成だと述べた

Eric Evans氏はドメイン駆動設計(DDD) は未完成だと述べた

原文(投稿日:2018/09/15)へのリンク

Explore DDD 2018の基調講演「skeptical, optimistic, and pragmatic」のなかで、Eric Evans氏は「DDDは未完成だ」と述べた。ドメイン駆動設計(Domain-Driven Design)の著者である氏は本を上梓してからの15年を振り返って、このアイディアが長年にわたって好評を博してきたことに驚きを表した。DDDはこの間においても立ち止まっておらず、多くの人々の絶え間ない変革の賜物であることを氏は強調した。また、氏はDDDを進化させ続けるために依然としてやることがあるとも重ねた。

Evans氏はDDDの定義について問われることが多く、どこまでDDDを堅く定義すべきか思案するに至った。一極端には、「仔細のない聞こえのよいアドバイス」があるが、実際には「安っぽい感動を得る」だけだ。もう一極端には、つまらない「クックブック」があるが、高次の概念を扱うこととは無縁になりうる代わりに、厳格に従わなければならない。氏はDDDにとってのスイートスポットがあると考えている。ガイダンスが非常に厳格であると、ほんの些細な変化ですら「あなたはDDDをやっていない」と言われてしまう。これでは、真に変革に至ることはできない。 DDDが現実の問題のものであるためには、変革と進化を念頭に置く必要がある。

氏は、DDDの核となる原則を聴衆に思い出させた。コアドメインにフォーカスすること、ドメイン実務者とソフトウェア実務者の創造的なコラボレーションでモデルを探索すること、明快な境界付けられたコンテキストの中でユビキタス言語を使うこと。そして懐疑的な視点から、「もし私たちが間違っているとしたら?」と氏は問い直した。もしDDDが期待される結果をもたらしていないようなら、専門家として、我々は原則を再検討する必要があるだろう。

幾らかのチームがDDDに失望する結果となっていることを認め、Evans氏はその原因を分類しようとした。一部の例では支援を受けられる文化ではなく、他の例では受け入れられる文化であったとしてもチームに十分なスキルが欠けていた。時として、それはただ単に不運であるとか、不可解で不明な原因に行き着くといった、誤った根本原因を追求しかけない価値のないものであった。氏はまた、典型的なDDDには弱いテクニックがある、あるいはDDDの原則に欠陥がある可能性を提起した。テクニックが弱い場合は、DDDの基本原則に変更を加えることなく対処できる。たとえば、イベントストーミング(Event Storming)はコラボレーションを始めるために役立つ強力なテクニックだ。しかし、原則に本当に欠陥がある場合、DDDを完全に破棄することなく、僅かな変更で柔軟に対応できるだろうか?これは検討が必要な未解決の問題として残された。

Evans氏は過去15年間にDDDの進化に至る多くの歩みを見てきた。イベントソーシング(Event Sourcing)やCQRSなどの技術的なパターンにより、ソフトウェアの構築方法が変わり、システムは単一のデータベースを必要としないという考えをもたらした。書籍、ブログ、その他の執筆物は、新しい視点と役立つ解説を提供し、氏のアイデアを基に拡張してきた。大きな変化は、地方のミートアップであったり、Explore DDDDDD Europeなどの国際カンファレンスといったDDDを取り巻くコミュニティの成長が挙げられる。

過去数年間におけるマイクロサービスの成長の一助として、DDDの新たな功績は認められるべきものであろう。Evans氏はこれを肯定的に捉えていたが、少しばかりの注意も強調した。マイクロサービスの流行がなければ、今のようなDDDのカンファレンスも開催されていなかったかもしれない。しかし、「各マイクロサービスは境界づけられたコンテキストに相当する」のような規範的な規則は、一極端である「クックブック」に向かっていくものだ。それは、DDDのスイートスポットから離れてしまう。

氏が紹介した新たなメタファは、巨大なソフトウェアシステムをコミュニティガーデン(地域の庭)と比較することである。庭園のスペースを共有する人々の明白な境界づけられたコンテキストを観察すると、「豊かな成熟」をみているようなレガシーシステムとの有益な類似性に気づいた。庭園は生産量が最高になる晩夏に最も価値が高くなる。しかしながら、それはずっと早い春の頃から、簡単に変えられるうちに庭園を改良してきたからこそ可能なことだ。同様に、ソフトウェアの最も柔軟な段階は、最も生産性の高い段階よりずっと前である。

Evans氏の最後の要点は、DDDを推進する秘訣は共同研究だということである。カンファレンスは、単に(一方的な)宣布や講義といった形式ではなく、専門家を集め、アイデアを議論し互いに学ぶ機会として最も効果的な場であると氏は考えている。氏はDDDの専門家に向けて、実験を行い、そしてDDDコミュニティにその実験と成果を共有することを推奨した。ライブラリや(プログラミング)言語の作者など、他のドメインから専門家や意見を取り入れることも同等に重要である。氏は「DDDはこの15年間で数度の変革を迎えてきた。私はまた新たな大変革の時にきたと思っている。」と述べて結論とした。
 

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT