bouzuya.hatenablog.com

ぼうずやのにっき

イベントを中心とした集約のフィールドが少ない件

胸が痛い。ひゆとかじゃなく。右腕を動かしても痛い。一周して痛いのか痛くないのか分からないって言いたくなるけど、分かるし、痛い。

水分を多くとってみたけど、きいている感じはない。腎臓への負担がかかってるだけか。あと頭も痛い。なわとびしたらぐわんぐわんする。

実は首が疲れているとか、神経がなんか変なことになっていて、痛いような気になっているだけとかにならねえかな。明日起きたら全部治っているみたいな。


会社の同僚が「イベントを中心とした集約に対して状態を持っていないのでドメインモデル貧血症ではないか」と言っていた。

正直ぼくにはどうなったらドメインモデル貧血症なのかあまり分からない。データと操作を組にしていないとドメインモデル貧血症なら『関数型ドメインモデリング』読書会でやっていたことはほとんどドメインモデル貧血症のような気がする。

ドメインモデル貧血症の部分に噛みつかないとして、イベントを中心とした集約とステートを中心とした集約で見た目が変わっている、という感想は面白い点だと思う。

イベントを中心とした集約はイベントの発行 (コマンドの受け入れ) 可否を判定できれば良い。不変条件の判定に不要な状態をフィールドとして抱える必要がない。イベントに引数で得た値を詰め込んで返すだけということもある。

「集約にどんな属性があるのか分かりにくい」という話もあった。その点はコマンド側モデルではなくクエリ側モデルを見れば、だいたい見える。コマンド側モデルはあくまでもコマンドの受け入れ (イベントの発行) を検査するモデルで、クエリ側はユーザーが参照したい属性の集合のようなモデルになっているからだ。

クエリ側モデルも一種類とは限らないからなんとも言えないところではあるけど……。

出てきている感想は Event Sourcing だけでなく CQRS によるコマンド・クエリのモデルの分離も合わさった感想のようにも思う。

コマンド側・クエリ側のモデルに共通する「イベント」にもっと注意を払うべきなんだろうけど、そこをうまく意識できるような設計ができていないのかもしれない。


今日のコミット。