2022-11-23 調べ物をしている
調べ物をしている。ほとんど仕事をしている。日程の都合で仕方なくそうしている。休日に仕事みたいなことをするのは良くない。
映画『アルカディア』を観た。『キャビン・イン・ザ・ウッズ』 (2021-01-17) の続きっぽい。繋がりは面白くはあるけど尺の割に……という気持ち。
twiq 実装メモ
HasEventStore trait を実装できない
HasEventStore は &EventStore を返さないといけない
FirestoreRpcEventStore::new は FirestoreTransaction を要求する
FirestoreTransaction は transaction のスコープで保持しないといけないので application のスコープで保持してはいけない
HasEventStore の返している参照は application のスコープで保持しているものなので
application のスコープで保持すべきものは Config
config を保持しておいて HasEventStore のメソッドが呼ばれるたびにつくる?
できない。 &EventStore を返さないといけないので実体を保持できない
&EventStore をやめて EventStore にする?
一貫性がなさそう (ただ Repository よりも低いレベルにあるので違っていても良いという見方もできそう)
全体的に参照ではなく Arc を持ったものの clone を返す……できれば Rust らしく (?) 参照を返したい
application のスコープで保持すべきものに合わせるなら HasConfig trait にする?
config を得て、 EventStore をそれぞれが選択する場合、永続化実装の切り替え箇所が散ってしまう (ただ現状は一箇所のみではある)
FirestoreTransaction に相当する trait を作成すべき
それを露出させる必要があるのだろうか……
Repository 内に隠蔽している意味がなくなる? (前述の通り Repository よりも低いレベルのものなのでそこは問題ない……か)
WorkerRepository に find_event_ids や find_event に相当する機能を追加する
場当たり的・間借り感はある
動きそう
『競技プログラミングの鉄則』 ダブリングの後半。つまらないミスで 2WA 。でもダブリングをそぼくに書ける気がしてきた。
今日のコミット。