本日の作業
🚴 分報に関する設計・実装
🚴 UseCase Hooksと結合実装
Domain EventとPrismaの実装
Supabaseの設定と開通
Supabase Auth
Supabase Database
🛑 🚴 イベントストーミングとサービスブループリンの融合についてzennにまとめる(休日にやる)
その他、メモ
Feature Sliced DesignでUseCaseをどこに置くか、またdomain層がpackages/domainに集約されているのでそれとどう連携するかを考え中。
当初はfeaturesにUseCase Hooksを置いて適宜UseCase HooksからRepositoryを通して必要な集約を生成したり永続化し、それをentititesにpropsとして渡し、entities内のCompound PatternのルートコンポーネントからContextを通して伝播させようかと思っていた。
しかしRemixの文脈だとloaderとactionでSSRの初期状態やmutationを行う思想にFSDをどう対応させれば良いかわからず。
RemixのroutesがFSDで言うpagesでRemixのloaderなどはroutesにしか生やせない(actionはForm要素があればどうにかなりそうだけど、actionのコードはroutesにないとダメぽい)。
つまり、その下にwidgets/features/entittiesが含まれるFSDの思想ではloaderやactionをfeaturesやentititesに持たせることが事実上できない。
SSRで初期値をpagesからfeaturesまたはentittiesと連携しているcontextを用意しproviderから伝播させる方法が最もコード管理上も設計上もわかりやすくなりそうだけど、FSDの思想にはあってないのでは?と。
それを踏まえ、FSDのDiscordに投げかけてみたけど1日経過したがお返事なし。