BT

Eric Evans氏: ドメイン駆動設計はソフトウェア開発に有益か?

| 作者: Jan Stenberg フォローする 29 人のフォロワー , 翻訳者 吉原 庄三郎 フォローする 0 人のフォロワー 投稿日 2016年7月28日. 推定読書時間: 3 分 |

原文(投稿日:2016/06/16)へのリンク

この数年、ドメイン駆動設計(DDD)への関心が高まっている。Eric Evans氏はロンドンで行われた最近のDDD eXchangeカンファレンスにおけるキーノートで言及している。彼は開発者がもっと設計に注意を払う時期にいると考えている。理由のひとつは、モデルが高い意味を持つ分散システムを扱う仕事をしているからである。

DDDが未だに関心を持たれている理由の1つは、我々がDDDの根っこにある仮説にチャレンジすることと、良い結果が得られているからだとEvans氏は確信している。チャレンジのための方法は、次のような問いかけをすることである。

  • DDDは、定義可能な方法で、より早く、より良くソフトウェアを提供することに役立つ。
  • DDDは、適合することに役立つ。なぜなら、我々はこの10年に急進的に変化を続けるIT業界において、同じ原則を適用できただろうか?
  • DDDの原則は、革新するのに役立つ。しかし、我々はソフトウェア設計をより良くしているだろうか?これらの原則は物事を行う新しい方法を見つけさせてくれるというのに。

ある意味、DDDの原則はモデルに関する我々の考察に依存している。しかし、Evans氏の経験によれば、人々は大抵UML図でドメインモデルを表現している。データスキーマは重要な様相ではあるが、モデルを言及するものではない。なぜって、動的な様相も重要だからである。網羅性やリアリティはゴールではない。特定の方法において便利であるように、モデルは目的を絞るべきであろう。彼はメルカトル図法を引き合いに出す。それはナビゲーションに特化して作られているが、他の目的には使いやすいものではないのである。

しばしば、Evans氏は、人々が素晴らしいモデルを作ろうと頑張ったり、ワンステップで達成しようとして行き詰まっているのを見かける。そうではなく、彼は、たとえ素晴らしくないとしてもモデルを提供してしまうべきであり、使い始めるべきと確信している。ひいては学ぶことができ、最終的に満足できるモデルを手にするまで、どんどん良いモデルを作り上げることもできる。

Evans氏は、モデルがどのように見えるかを狭めるべきでないと強調する。モデルに関する彼の視点は、多くの注目すべきモデルのパラダイムを含む。

  • 物事に注目するオブジェクト指向は動作を伴う。Evans氏がDDDについて書いた本における主たるテクニックである。
  • イベントソーシングにおいて、イベントの並びが中心になる。そして物事は二の次である。これは多くの利点と幾つかの難点もある。Evans氏は、イベント指向モデリングは多数のビジネスプロセスにとてもよく適合するように思えると記している。
  • リレーショナルは、多くの物事が比較されたり、互いに関連される問題に適合するセット指向モデルである。Evans氏は、OOデータを永続化するのが不味いやり方であるだけでなく、意味があるなら使うべきと記している。

Evans氏が確信するDDDが革新をもたらす例の1つは、イベントソーシングである。データ構造の変更から、何かが発生していることまで、思考に変化をもたらすドメインモデリングの今までにないスタイルである。特定のドメインにおいて、発生した事象に関する個々のイベントは重要である。

Evans氏が言及する他の例はイベントストーミングである。ここ何年かでは幾つもの影響を与えている。ドメインにおけるイベントの発生を契機として開始して、モデルにおける基本要素としてイベントは取り扱われる。イベントストーミングとイベントソーシングという、イベントで作用する2つの技術が共に使われるときに良い効果を作り出すことになるだろうと確信している。

来年のDDD Exchange は2017年4月後半に予定されており、登録もできる。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT