個人開発者向けのサービスの開発記録 #9 20240124

tyshgc
·

本日の作業

  • エディタ部分でNovelを試してみた。

  • VSCode Extentionsはpublic repositoryでないとならないのでどうするか。

  • Remixの学習

    • 今回Remixを初めて採用するので色々学習

      • loader関数

        • routes ≒ page

        • loaderでServer Side Fetchして Responseまたはjson関数を返し、useLoaderData hooksで受け取る

      • action関数

        • コンポーネントからfetchする際に使う

        • loaderの様にaction関数でServer Side FetchしてResponseまたはjsonを返し、useFetcher hooks のsubmitなどのイベントをDOMイベントなどに渡す。

          • Initial fetchする際はuseEffectにしているのを見かけたが、それはちと気持ち悪さを感じる。

        • swrぽい

      • 状態管理

        • なくても良さそうな気もする反面、この辺は実装しながら必要なのを入れる感じで。

        • ただし、薄い状態管理ができるものが良さそう

      • ソースのディレクトリ構成はこの記事を参考にすると良さそう

        • routes配下にDomain Component(FSDでいうentities)を置いていくのはどうなのかかなり疑問。

        • 関心ごとの近いファイルを同じディレクトリに集約する方がいいというのは最近失敗したこともあってそう思うが、routesの責務的には画面ルートと画面に直接関係のあるセクションやブロックである方が意味が通ることを考えるとFSDでいうところのpages, widgetsがそれ相応ではないかと。

        • ちなみにFSDのfeaturesとentitiesは役割を細分化しすぎな気がするのでwidgetはentititesで構成するみたいなのが良いと思う。そうすればRemixのactionをうまく活かせそうな気がする(実装してみないことにはなんともわからないけど)。

Feature-Sliced Design

勉強会メモ

  • Remix vs Next.js App Router的な会だった。

  • 目立って気になったというか参考になった点

    • RemixのWeb標準順守とLoader APIの話

      • fetchと状態管理周りで考えることが減るぽい。

      • 課題としてはLoaderの中にカプセル化したビジネスロジック・アプリケーション層との連携をどうするかは今後実装しつつ知見貯めていきたい。

    • Next.js App Routerでも最近History API周り改善されたが、改善されるまでとcache-controlが相当辛かったとのこと。実際に以前Next.js採用した際もApp Routerが来たタイミングだったがこの辺 + 学習コスト + 想定外の問題に対応することを考えて0→1でスピード求められてたから採用を見送った。

そのほか、メモ

  • Remixは大体わかった。はず。

  • 明日はインフラ環境を整える必要があるので先にそれをやってデプロイできるところまで持っていく。

← #8 #10 →

@tyshgc
デザインファーム及びスタートアップ(上場)などを経てフリーランスとして、様々なスタートアップや大手企業の新規事業の立ち上げ期における事業設計・アプリケーションの設計・開発、サービスのUX分析とデザインとエンジニアリングの両軸でお手伝いさせていただいています。 現在、個人開発者向けの支援サービスを個人開発中。 X Account: @tyshgc