本日の作業
本日は鎌倉もくもく会179回目。
データベース環境の構築
✅ prisma・tRPCの導入
🛑 Supabaseのセットアップ
🚴 i18nを導入
分報に関する設計・実装
🚴 Model・Repository実装
tRPCとRemix
Remixの採用が今回が初めてなのでやっていくうちに気づいたけど、そもそもRemixしかアプリケーションがない現状ではtRPCは不要な気がする。
Remixのloader/actionsはそもそもがTypeSafeでこれらはBackendの処理でclient側のfetcherなども内包している。一つ違うのはtRPCやzodiosの様にendpointを定義が必要ない反面、これらはそれ自体がドキュメントにもなりうるのでそれがないとコードの保守性を考えると複雑になると分かりにくくなるのでは?という懸念がある。
指針としてはとりあえずtRPCなしで実装してみて、複雑性が増したら導入を検討する方向にシフトします。
RemixでtRPCの導入
というわけで、tRPCを導入しようと調べていた内容もあるので一応残しておく。
Express上でtRPCと思っていたけど、Remixの各種アプリにtrpc.server.tsとして設置する方がSSRにも寄与できるので良さそう。
関係するpackageのみpackagesに置いて各Remix上で依存関係作ればよさそう。
Turborepo + Remix上にPrismaの導入
上のドキュメントにはprisma用のlocalで使うPostgreSQLについて記載がないので要注意。
docker-compose.ymlをpackages/db直下に置いてdocker-compose up -d
docker-compose.ymlのPostgreSQLのUSER, PASSWORD, DBを.envに記入する
DATABASE_URL="postgresql://your_username:your_password@localhost:5432/your_database?schema=public"
primsaのschema.prismaを適宜変更するか(しなくても初回は)migrateする。
npx prisma migrate dev --name init
Remix + i18nの導入
そのほか、メモ
Supabaseの設定は今でなくてもいいので後回しにします。その代わりi18nは仕事でも必要なのでこっちを先に準備しました。
turbo/genについて2つ問題があった。
ganerator nameがmonorepo内で一意でないとエラーになる件はバグらしい。
plop引数の型を指定するために@turbo/genパッケージをimportする様にするとnode-ipのSSRF問題がある。
取り急ぎ@turbo/genは使わないようにし型についてanyで通すことにした。
もくもく会、はじめましての方向けに次のことをどうにかしたい
目印がないと店とかで開催すると誰かわからず不安
こういうカードスタンドを置いておけばいい
カードデザインしよっと
はじめましての方だけの参加だとどんな人が来るのか(そもそも来るのか)も不安
connpassにDiscordで事前登録をお願いする旨記載する
気になったスライド