調べ物をしている。ほとんど仕事をしている。日程の都合で仕方なくそうしている。休日に仕事みたいなことをするのは良くない。
映画『アルカディア』を観た。『キャビン・イン・ザ・ウッズ』 (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 。でもダブリングをそぼくに書ける気がしてきた。
今日のコミット。