個人事業主になったので真面目にアウトプットしてみるブログ

フリーで顧客の会社に潜り込んでAndroidアプリつくって、とりあえず食っていけるようにアウトプットを増やしていくブログです。

いまさらだけどDDDとその書籍とサンプルコードのご紹介

この記事はDDDについてメモです。よくまとまっている記事をめざしているものではありません。
またこの時点では曖昧な知識も多いですので、多少読みにくかったりツッコミどころが多い事もあります。
またブログはまだ苦手な領域ですので読みにくいと思いますがすみません。
ご了承いただければとおもいます。いただけない場合はブラウザバック




DDDとは?



 Domain Driven Designの略です。
 日本語でいうとドメイン駆動設計らしいです。
 意訳?だとドメインでまわしていくデザイン。
 読んでそのままですが、ドメイン中心に設計しソフトウェアを進化させていく開発スタイルみたいです。
 2002年くらいから活動されているみたい?ですね。



コミュニティ:

https://groups.yahoo.com/neo/groups/domaindrivendesign

コミュニティによるサイト:

https://dddcommunity.org/




ドメインとは?



 これを書こうとおもったのは、最初ドメイン駆動設計のドメインがまったく意味が分からなかったからです。
 ドメインという言葉はあまり直感的ではないです。関心事=ドメインという当てはめ方もイマイチしっくりきません。
 とりあえずDDDについて色々読んでいくうちに…正解はみつけられず。慣れるしかなかったです。




もうすこしつっこんだDDD



 僕が語れることはそんなに無いですが、拡大していくビジネス側の要求を考えた時、ソフトウェアをどのように作るべきかの一つのプラクティスであると考えられます。
 

 個人的感想ですが、DDD学習の中身はモデリング2割+コード8割が全体を俯瞰した知識体系で、サンプルコードも併せて読み込んでいくと設計思想や開発スタイルというよりは技術寄りで一種のフレームワーク的な印象をうけます。

 ドメイン駆動設計の思想としてはもちろんそうではないのですが。




エリックエバンスのドメイン駆動設計(DDD本)



 5,200円です高いです。全体構成については…
 前半コンテキストマッピングモデリングといったコードに落とすまでが書いてあり、それがだいたい2割くらいの知識量といった印象でした。
 後半8割はモデルをコードに落とす時のクラス設計の基底になるクラスの説明や、ドメインを分離する設計の話になります。
 書いてある内容はえらく抽象的というか曖昧なものが多いです。
 僕が日本語版を読んでいるからなのでしょうが、言葉の選定が気になる点がいくつもあります。
 後半については僕としては、コードベースでDDD本を片手に読み解くほうが楽だという印象でした。
 全体的にDDDはそれ専用の用語が多く、難解な印象を受ける本です。
 読まなければいけない文量がまたそれの理解を妨げます。


サンプルコードgithub.com

書籍www.amazon.co.jp




実践ドメイン駆動設計(IDDD本)



 5,200円です高いです。エリックエバンスのドメイン駆動設計よりも具体的にチームに取り入れた時に、どう考えてコードにしていくのかが書かれています。
 この本で知ることができる重要なポイントは、コードの設計(デザイン)は直感的にするのではなく慎重にドメインに存在する振る舞いについての洞察を深め、どうコードに落としていくかという部分ではないでしょうか?詳細については書きません。書籍を買うなり他の方のスライドや資料をみてみたほうがいいです。

サンプルコードgithub.com

書籍www.amazon.co.jp







いかがでしたか高そうめんどそう。 そんなイメージはそのままです。 そうやって二の足を踏む人が多いので、先行者になって目立ってみたい人は頑張って読んで僕に教えてくださいね!