BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース DDDにおける重要なパターン

DDDにおける重要なパターン

原文(投稿日:2017/02/28)へのリンク

パターンの重要性に関する議論の中で、ドメイン駆動開発以外の部分でも知っておくべき重要なパターンが多く存在する、とアムステルダムで開催された最近のDDD Europe Conferenceにおける自身の発表の中でCyrille Martraire氏は述べた。

最初のwikiの開発者として良く知られているWard Cunningham氏であるが、彼は最初にパターンについて記述した人物の一人でもある。最初の一連のパターンは情報の完全性に関するものであり、Martraire氏はこれら初期のパターンは分析パターンであり、より事業ドメインを理解するにはどういう観点が必要かということについて記載されたものであったと述べた。一例として例外値があり、これは不正値や0のような、特殊な場合を扱う全ての必要性を排除することにより、事業ドメインの記述方法としてコードを書くことを可能にするものである。彼が挙げた特に興味深いもう1つのパターンは診断用照会であり、これはオブジェクトがどうやって現在の状態に至ったかを説明できるようにすべきであることを示唆しており、ロギングやデバッグの必要性を置き換える診断能力である。この機構により、100ユーロの値を持った金銭オブジェクトが、ある量のUSドルにある量のポンドを加算したことによって生まれたものであるということを表現できるようになった。

もう1つのパターンの源はGang of Fourによるデザインパターンの書籍であり、この流れは90年代中盤に発生している。Martraire氏は、これらのパターンからドメインの概念や概念間の関係をモデリングするために特別に有効なものを4つ発見した。

  • Compositeパターンはツリー構造の中にオブジェクトを構成し、クライアントが個々のオブジェクトとオブジェクトの複合を統一的に扱うことができるようにするためのものである。
  • Interpreterパターンは言語内の文を評価するためのものである。
  • Flyweightパターンは、多数の細粒度のオブジェクトを利用することを可能とするためにオブジェクトの共有を行う。
  • Strategyパターンは、オブジェクトの使用方法からアルゴリズムを分離するためのものである。

キャリアの初期に、Martraire氏はMartin Fowler氏の書籍であるアナリシスパターンを発見した。この書籍で彼は個人向け銀行業務、医療、会計に由来する一連の新しいパターンを学んだ。彼は、多くのパターンを学び原則を理解することにより、新しいドメインにそれらを適用することができると考えている。しかし、これらをより深く理解するためには、単に現在の状況を学ぶだけでなく、パターンやアイデアの進化過程を追うことが重要であることを彼は強調した。

もしこれらのにパターンにまだ興味を持っていない場合、Martraire氏は設計について真剣に考えているかどうかを問いかけている。おそらく今現在の技術にあまりに焦点を当てすぎているのではないだろうか。一例にevent sourcingを挙げ、彼は既定の流儀として用いることをしばしば見かけるが、単純なCRUDモデルで十分な場合にも物事が不要に複雑になってしまうと述べた。ドメインモデル内部の作業により多くの時間を割き、もし問題を見つけた場合はより掘り下げてみるのである。もし新しいプロジェクトを好むのであれば、モデルを理解しないまま作業を終え、後に改めて見てみると、それら全ては単なるCRUDモデルであることを発見することもあるだろうとMartraire氏は考えている。スキルを磨き、より複雑なモデルに取り組むためには、ドメインモデルに関する深い知見が得られそうな成熟したレガシーシステムを確認するべきである。

Martraire氏は現在、DDDの概念・使用されるパターン、そしてコードに直接由来する他の設計概念のドキュメントを作成するために、どのようにアノテーションを使用するかということに関したliving documentationの書籍を執筆中である。

 
 

Rate this Article

Relevance
Style
 

この記事に星をつける

おすすめ度
スタイル

BT