ゆずめも

メモ的なブログです。主に勉強した事について書いてます。

ドメイン駆動設計入門を読みました

会社の本棚に「ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本」があったので借りてきて読んだ。

以前「現場で役立つシステム設計の原則」を読んでいたので共通する部分が復習にもなって結構サクサクと読めた。

前者はサンプルコードがc#で書かれているので個人的には後者のサンプルの方がJavaで書かれている分わかりやすかったが、そこまで気にするほどでもないのでDDDの入門として人に勧めたい。

ちょっと興味深かったのが10章の整合性の所で、DBのユニーク成約を使うと一意であるという制約がドメインの外(つまりコード外)で実現されてしまっていて、ドメインの処理として表現されていないし、永続化に使用するミドルウェアを変更した時にユニーク制約が使用できないものだと、実現できていないという話。

自分は何も考えずにDBのユニーク制約を使用していたので、この辺はサービスの特性とかを考えて実現しないといけないなと思った。*1

余談

タイトルと全く関係ない話なんだけど

自分は最近週に1度だけ出社するようにしていて、その時に会社の本棚からたまに本を借りて帰ってるんだけど、コロナでほとんど出社しなくなって会社の本棚というか書籍って今どういう形で利用されているんだろうか?

一度社員が見れる所に仮想的な本棚*2を作って、誰がいつ借りたかをslackとか何かしらの手段で管理するようにすればクリックポストとかで借りたい人に送り、読み終わったら会社に送り返してもらうとかするとそんなにコストかからず会社の本が見れるのではという事を考えたが、実際にやろうと思うとご時世的に会社に届く度に除菌したりする必要があるんだろうか?と思い始めたあたりで面倒くさくなって自分の中に閉まってしまった。

clickpost.jp

もしいいアイデアだったり、うちではこうしてるみたいなの教えてやらんこともないという方がいればtwitterなりで教えてください

*1:ただ大抵のサービスは永続化の方法変えるとかの話の前に○ぬとも思っている

*2:webサービスかspreadsheetか