1128
土曜日。趣味プロジェクトを触っていたのだけど、途中でルーティングの抽象化について考えたいという気持ちが起こり、夜はそちらを考えていた。以前考えていたルーティング機構は、まあルーティングを簡単に書けるDSL的なもので、特に抽象化を想定していたわけではないのだけど、ルーティングをViewから切り離せればUseCase側に書けるじゃん、という着想があり、じゃあやってみるかとなった次第。しかし型合わせゲームが厳しくてなかなか大変。associated typeがあるプロトコルは自動でexistential typeを生成してくれないのだけど、これが結構厳しい制約で、というかプロトコルを型として書いているところは基本的に暗黙的なexistential typeを指定していたことになっていたのであって、それができない(associated typeを持つ)場合は全然そんな風には書けないのだった。このあたりの制約を理解するのにだいぶ時間がかかってしまった。とりあえず今は適当に型を消去して実行時に呼び出しを切り替える方法でなんとかしているが、これもなぜ動いているのかはよくわかっていない。この動的ディスパッチ、ほんとに大丈夫なのか?
あとは餃子を作って食べたりした。餃子はだいぶ上達してきた感じがある。かなり無難に作れる。