LoginSignup
1
3

More than 5 years have passed since last update.

ちょっとずつ読むドメイン駆動設計 第ニ部 モデル駆動設計の構成要素 第四章 ドメインを隔離する1

Posted at

ドメインを隔離する

思考を最適に働かせるには、モデル要素を見た時に1つの体系として理解できる必要がある。より多くのオブジェクトが入り混じった中から、モデル要素を拾い上げるように強制されることはあってはならない。・・・ドメインオブジェクトはシステムの他の機能から切り離す必要がある。(第二部 第四章より)

「より多くのオブジェクト」とか「システムの他の機能」とは、ソフトウェアシステムに関するオブジェクト。データベースアクセスやビューに関するオブジェクト。

複雑なのは、技術的なコードよりもユーザーの活動やビジネス、つまり、ドメインモデル。(「まえがき3 複雑なのはドメインそのもの」参照)なので、ドメインと技術的な要素を切り離すことが大事になってきます。

ドメイン関連のコードがそうした膨大な他のコードの中に拡散してしまうと、コードを見て意味を理解するのがきわめて困難になる

ドメインを他のコードと切り離し、プログラマはもちろん、ドメインエキスパートもソースから理解できるようにするのもドメイン駆動設計の目指すところです。(「第一章 知識をかみ砕く5 ドメインエキスパートもコードが読める」参照)

レイヤ化アーキテクチャ

よく用いられるものではあるが、ドメインモデリングの原則を適用する上では決定的に重要(第二部 第四章より)

レイヤ化アーキテクチャ自体はDDDで新た定義されたものではないですね。
PoEAA本には既にレイヤ化として紹介されてますし、「三層レイヤ」・「多層アーキテクチャ」という形で以前から使用されてきたもの。
ですが、これがドメインと技術的なコードを切り離すのに役に立つということですね。

レイヤ化アーキテクチャの詳細はまた明日読みます。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3