きり丸の技術日記

技術検証したり、資格等をここに残していきます。

【イベント】エリック・エヴァンスのドメイン駆動設計輪読会「第2章コミュニケーションと言語の使い方」に参加しました

参加レポ兼含めて輪読会に参加したので書いておきます。

詳細纏めてると時間かかりすぎるので、感想しか書きません。

輪読会URL


ddd-community-jp.connpass.com

ハッシュタグ

#dddcj

実施されたDiscordのリンク


discord.gg/fBTE9wf

チャンネル:evans本輪読会
日付:2020/09/05 19:50-22:10

参加者のhackmd
hackmd.io

興味のある章から参加してもOKスタイル。

感想

社内輪読会の時の話


DDD本は会社で輪読会をやったことがあるので、内容はある程度理解しているつもりでした。
ただ、その時のドキュメント読み返してみると、話した内容は完全に忘れてましたね…。

「社内システムってユビキタス言語?
システムの略称ではなく、システムの持つ役割で"顧客履歴システム"って言ったほうがいい?」
とか社内輪読会の時は議論した記憶があります。

社内輪読会ではシステムの略称の方が、ステークホルダーに伝わるのでユビキタス言語として適しているという話になりました。
ただし、コード上では役割に注目した命名にした方が表現上いい、とか議論しました。

まー、今回の輪読会で何も話してないので、特に今回の輪読会では意味はないですが。


会社の人と輪読会した時の第2章まとめ。 github.com

今回の輪読会の話


本の2週目を読んだ感想としては、正直かなり読み飛ばしていました。
読んでも「せやなー」って感じで2章が読み終わりました。

ただ、輪読会のhackmdを見たり、輪読会で突っ込んでいるのを聞いてたりすると、あまりわかってなかったです。
自分なりの解釈と、他の人の解釈が違うのは当たり前なので、それが輪読会の醍醐味ではあるんですが。

「用語と概念間の関係性」と記載されている本の読み方が、「用語」と「概念間の関係性」と読む方が自然とか、気にも留めてなかったところを出していただくのはありがたいですね。

あとは、「この単語の意味どういうこと?」って話になったときは、Evans本の用語集に載っていることが多かったです。
なので、DDD本を頭から読むのではなく、用語集から読んだ方がこの本は理解しやすいと思いました。

あと、下記のDDD referenceを参照にすると単語の意味が正確にわかるというのが、非常によい収穫ですね。
流石に参加していないとこのURLの存在知りませんでした。
※ ぶっちゃけ、DDD referenceの存在を残すために、この記事書いているようなものです。

次回以降は、用語集とDDD referenceを読んでから参加したいです。


DDD reference(昔はDLできなくなってたが、今はできるようになった) domainlanguage.com

放課後トーク


ミノ駆動さんが放課後トークで非常に熱く語っていたので、それも残しておきます。


DDDは「コアドメインの価値の最大化」と「コアドメインの開発生産性を高める」の二つを解決するための手段である。

この二つを高めるために、EvansさんはDDD本にてValueObjectやユビキタス言語やアーキテクチャ等を紹介している。

ドメインを永続化する、やIFのIN/OUTはコアドメインの分析時にはどうでもよい。
できる限り、技術的な制約を除外したうえで分析できるように、分離させる手段が必要になってくる。

ValueObject等はEvansさんの手段集でしかない。

あくまで、Evans本に書かれているのはEvansさんがDDDをするために使用するテクニックである。
なので、Evans本のアーキテクチャが使えないからDDDではない。ということはない。

最終的にはコストを意識しておく必要がある。
保守性、変更容易性にリーチした手段がDDD。