Magnolia Tech

いつもコードのことばかり考えている人のために。

「ドメイン駆動設計」を読んだ〜第一部 ドメインモデルを機能させる〜

ドメイン」を辞書で調べると以下のような意味が書かれています。

(活動・関心・知識などの)分野, 領域, 範囲.

ドメイン駆動設計」の冒頭、「第一部 ドメインモデルを機能させる」を読んで以下のように理解しました。

  • ドメインは、関心の領域

  • モデルは、自分の関心領域を抽象化することにより、集中すべきところに集中するために作成する

  • ドメインモデルは、特定の図を示すものではなく、考え方を示すもの

  • ドメイン駆動設計では、モデルと実装の連続性を重要視している

  • 現代的なソフトウェアは複雑であり、その複雑さを適切にコントロールするためには、何らかの構造を作り出す必要が有る

  • 1つの考え方として、ドメイン駆動設計がある

抽象化により関心量を適切に配分し、全体としての複雑さをコントロールするっていうことなので、いかに「今、関心を持つべきではないこと」に関心を置かないか?そのためにはどうするか?というところも合意を図っておかないといけないな、と感じました。

人によって、いきなり実装詳細だけにに関心を持ちすぎたり、実装時の複雑さを無視した「絵に描いた餅」になってしまう危険性について常に留意する必要がありますね。

その辺のアンチパターンもまとまっていると良いなと思いました。

エリック・エヴァンスのドメイン駆動設計

エリック・エヴァンスのドメイン駆動設計

実践ドメイン駆動設計 (Object Oriented SELECTION)

実践ドメイン駆動設計 (Object Oriented SELECTION)