えんじにぃーあぶろぐ

あまり長い文章は好きではないので、長い時間をかけないで読める、簡単な内容を目指すエンジニアのブログです。

DDDのドメインって?

さて、

 

 

 

 

最近、別の本を読み始めました。

タイトルにもある通り、DDD(ドメイン駆動設計)についての資料で、

エリック本の要約版です。

 

www.infoq.com

 

 

とりあえず要約版で一触りした後に、きちんと本を買おうかなと。

 

で、慣れない人が思うことだと思いますが、

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ドメインってなに?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ですね。

 

 

普通に「ドメインとは」でググって出てくるものとは別物ですね。

※あっちはNWなどを識別するためのもの

 

 

 

 

 

 

ここで言われているドメインとは

 

「ソフトウェアで実現して解決しようとしている困り事の塊」

 

といったところでしょうか?(間違っていたらすいません)

 

 

 

とにかく抽象的なものだと思っておいた方がいいですね。

 

ドメイン駆動設計はその抽象的な困りごとを

具象化していってソフトウェアを作る作業のことです。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

個人的なイメージですが、化石堀りに似ているのかなと。

 

f:id:ygt1qa3:20190307205252j:plain

 

 

化石って掘る前は、どんな生物の化石が埋まっているかわからないじゃないですか。

(そもそも掘ろうとしている場所に化石があるかどうかもわからないですが。)

 

それを少しずつ作業をしていって、化石を採掘していきます。

最初に出てきた化石からは、おそらく何通りかの生物の候補が出てくるはずです。

 

しかしある程度の数の化石を発掘すると、

どんな生物の化石なのかがだんだんと明らかになっていきます。

f:id:ygt1qa3:20190307210140j:plain

 

 

 

 

 

ドメイン駆動設計も最初はドメインの中にどんなモデルがあるか、判別しにくいです。

 

しかしヒアリングや調査を、実務やドメイン専門家から続けていくうちに、

だんだんとドメインの全容が明らかになり、モデルを抽出できるようになります。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ただ、

 

 

 

 

 

 

 

 

 

化石の発掘と違うところは

 

ソフトウェアが生き物というところですかね。