Closed5

「フロントエンドの技術選定 ~2023を振り返る~ Lunch LT」に参加してみた🌟

ピン留めされたアイテム
まさぴょん🐱まさぴょん🐱

「フロントエンドの技術選定 ~2023を振り返る~ Lunch LT」に参加しました🌟

感想

  1. みんな App Router 採用すると、機能不足などで困る。。。
    • これからの機能追加、サポートに期待。。。
  2. Next.jsと比較した上で、Remixを推している会社が思ったより多い (4社中2社)
    • Web標準API の重視が魅力的
    • State管理の課題を解決するフローなどが魅力的

https://findy.connpass.com/event/306714/

まさぴょん🐱まさぴょん🐱

LT①「僕はWeb標準との触れ合い方をRemixに教わった」

なぜ、Remixを採用したのか?

  • チームとしては、Next.jsに慣れているが、Remixを採用した。
  • Remixは、Web標準をベースに使うようなフレームワーク
  • RemixやNext.js, React が終わっても、Web標準は終わらない!

Remix の特徴

  • Loader -> Action -> Component のフローが循環する。
    • 非同期通信に関して、考える必要がほぼなくなる。
  • ファイルシステム・Routing
  • 事業にエキサイトしたいタイプにおすすめのフレームワーク

Remixでは、状態管理があまり必要なくなる

  • Loader -> Action -> Component のフローで、解決する。
  • LoaderからのFetchデータがそのままComponentに降ってくる。

Remixの裏事情

  • React Router の Teamによる開発
    • React Router の 時のような破壊的変更を、Remix にも加えないか心配。。。
  • Shopify に買収されている
    • Shopifyによる圧力・監視効果(?)によるのか、破壊的変更などは、特にない。

LT関連資料

https://speakerdeck.com/nkzn/first-year-with-remix

https://remix.run/docs/en/1.19.3/pages/philosophy

https://shopify.engineering/migrating-our-largest-mobile-app-to-react-native

まさぴょん🐱まさぴょん🐱

LT②「React ViteからNext.jsへ切り替えたプロセスとApp Router化のボトルネック」

LTテーマは、2つ

  1. React Vite から Next.js に移行したプロセス
  2. App Router化のボトルネック

React Vite時代に、速度的な課題があった

  1. FCP
  2. LCP

React Vite から Next.js に乗り換えた件

React Vite 時代の FCP課題

Next.js の採用による解決

  1. Next.jsでは、pageごとにビルドされるので、チャンク戦略の

React Vite から Next.js に移行する際の作業について

  • 並行運用で、STGにDeployして、開発を進めました。
  • Test環境(STG)をそれぞれ、作成しました。
  1. 開発を止めない
  2. オンボーディングの時間を取れる
  3. じっくりQAできる
  4. 移行を中断できる(もしもの場合)

App Router化のボトルネック

App Router化のボトルネックは、Routing

  • App Router では、サポートされていない機能が一番の要因
    • ブラウザバックなどのHistory系の機能など
    • pushStateサポートなども来ており、今後の Next.jsに期待。

LT関連資料

https://speakerdeck.com/sumiren/react-vitekaranext-dot-jsheqie-riti-etahurosesutoapp-routerhua-nohotorunetuku

https://dev.henry.jp/entry/replace-vite-with-nextjs

まさぴょん🐱まさぴょん🐱

LT③「一休レストランで Next.js App Router から Remix に乗り換えた話」

  • App Router を捨てて、Remixに乗り換えた話
  • Nuxt v2 から Next.js App Router でリニューアルしたばかりのシステムを 2ヶ月ぐらいでRemixに乗り換え。

Nuxt v2 から Next.js App Router でリニューアルの意志決定

  • React Server Component

Next.js App Routerで実装した際の問題点

  1. History API の state を操作できない。
    • 最近の機能追加で、解決済み。
  2. Cache-Control ヘッダー を自由に設定できない。
  3. 継続的なUpdateに懸念を覚えた。

Remix の選定理由

  1. History API の state を操作できる。
  2. Cache-Control ヘッダー を自由に設定できる。
  3. 継続的なUpdateに安心感がある。
  4. Web標準API の重視が魅力的だった。

予期していなかった、乗り換え効果

  1. メモリの使用量が、1/4に
  2. コンテナ起動時間が、1/2に

LT関連資料

https://cspeakerdeck.com/takonda/migration-from-next-app-router-to-remix

https://user-first.ikyu.co.jp/entry/2023/12/15/093427

https://user-first.ikyu.co.jp/entry/2023/12/25/132215

まさぴょん🐱まさぴょん🐱

LT④「Next.js App Router を例に考える、技術との距離感と技術選定」

開発スタート時の意志決定

  1. Next.js を使う!
  2. App Router を使う!
  3. App Router への深入りはしない!
    • App Routerは、一歩引いて、使う。
    • Server Component は、ごく一部だけ。
    • キャッシュ系や、高度なルーティングなどをNext.jsの独自機能で使わない。

意志決定時に重視したこと

  1. 追加学習コストを下げる
  2. Bet Technology but 撤退可能な状態でいる
    • 撤退可能な状態( 依存度を下げる ) を作る。
    • あとで、剥がせるようにする。

プロダクトは、どうなった?

  1. 問題なく、リリースできた。
  2. リリース直前に、App Router から Pages Router に移行
    • App Router だと必要な機能が実装できなかったため。
      • navigationのキャンセルができなかった。
    • 深入りしていなかったので、移行自体はすぐに完了。
    • 撤退しやすいようにしておいて、よかっった。
    • App Router に戻れないか、チャンスを伺い中。

LT関連資料

https://speakerdeck.com/izumin5210/findy-2024-01-24

https://speakerdeck.com/izumin5210/findy-2023-10-04

このスクラップは2024/01/24にクローズされました