2022-10-12 に書いた朝活の 2 日目。狙い通り Slay the Spire の時間を抑えられている。
Pixel 7 が届いた。ガラスフィルムを書いそびれたので待機。
『競技プログラミングの鉄則』 5 章の途中まで読んだ。
Slay the Spire アセンション 20 アイアンクラッドでの堕落の心臓撃破 8 回目。
アタック: 日時計・そろばん・ポンメルストライク・ドロップキック・二刀流による無限ループ。 ブロック: (特になし) 闇の抱擁とセカンドウィンドで焼いてループの完成を急ぐ。
最初はドロップキックで考えていたので弱体用にいろいろ持っていたのだけど、ループの完成を阻害するだけだった。
ここ数回はカードピックを控えてカード削除にも費用を割いて意識的にデッキを圧縮している。わりと効いているように感じる。変にピックするより UG 率が改善されて強くなるように思う。
twiq 実装メモ (24)
query 側の実装。
- command / query を分離する
- どこまで共有し、どこから分離するのか?
- 集約は command 側の model なので集約は使わない (分離する)
- 集約と event_stream_type が対応しているので集約の境界的なものはおおむね知っている
- event は共有する
- 少なくとも RawEvent は共有する
- DomainEvent は共有したい (RawEvent からの取り出しに困るため)
- しかし DomainEvent を共有する場合は
domain::aggregate::x::event
を見ることになる - これは集約を使わない件と矛盾していそう……
domain::aggregate::x
の下に置く理由は集約による分類を示すためと Event 生成の可視性を狭めるため……- DomainEvent は
domain::value::*
やdomain::aggregate::x::value
にも依存している - ひとまず domain crate 単位で共有する (が、集約は使わないようにする)
QueryUserUpdateWorker
- UserUpdated を監視して query db の User を更新する
- query db の User は users(user_id (PK), twitter_user_id (UK), twitter_user_name (UK)) で良い
- InMemoryUserStore として保持する
- User はすべて pub で value 用の型も使わない
今日のコミット。