Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
フロントエンド メタフレームワーク 選定の際に考えたこと
Search
YuppeEng
November 06, 2024
Technology
0
790
フロントエンド メタフレームワーク 選定の際に考えたこと
11/6(水)【Qiita Bash】推しフロントエンド技術について語ろう!で登壇した内容です。
https://increments.connpass.com/event/328720/
YuppeEng
November 06, 2024
Tweet
Share
More Decks by YuppeEng
See All by YuppeEng
小規模組織において、これから一緒にSREを考える仲間を増やすために実践したこと
yuppeeng
0
580
Other Decks in Technology
See All in Technology
モブプログラミング再入門 ー 基本から見直す、AI時代のチーム開発の選択肢 ー / A Re-introduction of Mob Programming
takaking22
5
1.3k
クラウド × シリコンの Mashup - AWS チップ開発で広がる AI 基盤の選択肢
htokoyo
2
180
Kubernetesにおける推論基盤
ry
1
310
プロジェクトマネジメントをチームに宿す -ゼロからはじめるチームプロジェクトマネジメントは活動1年未満のチームの教科書です- / 20260304 Shigeki Morizane
shift_evolve
PRO
1
250
20260311 技術SWG活動報告(デジタルアイデンティティ人材育成推進WG Ph2 活動報告会)
oidfj
0
290
Google系サービスで文字起こしから勝手にカレンダーを埋めるエージェントを作った話
risatube
0
140
[JAWSDAYS2026]Who is responsible for IAM
mizukibbb
0
440
「Blue Team Labs Online」入門 - みんなで挑むログ解析バトル
v_avenger
0
150
「ストレッチゾーンに挑戦し続ける」ことって難しくないですか? メンバーの持続的成長を支えるEMの環境設計
sansantech
PRO
3
650
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
4
1.2k
[JAWSDAYS2026][D8]その起票、愛が足りてますか?AWSサポートを味方につける、技術的「ラブレター」の書き方
hirosys_
3
120
8万デプロイ
iwamot
PRO
2
230
Featured
See All Featured
Bash Introduction
62gerente
615
210k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
760
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
61
52k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
How to Think Like a Performance Engineer
csswizardry
28
2.5k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
For a Future-Friendly Web
brad_frost
183
10k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Skip the Path - Find Your Career Trail
mkilby
1
76
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.4k
What does AI have to do with Human Rights?
axbom
PRO
1
2k
Transcript
フロントエンド メタフレームワーク 選定の際に考えたこと 2024/11/6 【Qiita Bash】推しフロントエンド技術に ついて語ろう! yuppe(yuppe0328)
自己紹介 中村 友多朗(@yuppe0328) 仕事: アジャイル開発(@KDDIアジャイル開発センター) 趣味: 音楽(ギターなど), アニメ鑑賞, 旅行 興味:
フロントエンドアーキ,コンテナ,ネットワーク, アジャイル開発 Qiita: https://qiita.com/yuppe0328
Q.フロントエンドメタフレームワーク の選定どうしてる? ・フレームワークの人気? ・アプリケーションの要件? ・シンプルに使いたいやつ?
求めていたものは何? ①チームの技術スタック/状況 ・社内小規模プロジェクトのアプリを React使ってSPAで構築した経験あり ・バックエンドFW中心に触ってきた メンバーが多く、いきなりのマインド チェンジは難しい ・各種レンダリングパターンの理解 ・比較的複雑なキャッシュ最適化 ・なるべく複雑性を排除した形で、
UIライブラリにReactを採用 ・クライアントサイドはコンポーネント ベースで開発 ・バックエンドはこれまで通りリクエ ストベースの動的アプリに寄せたい
求めていたものは何? ②アプリケーションの要件 ・業務用アプリケーションではないた め、できるだけ初期リクエスト時のク ライアント側のストレスを減らしたい ・ターゲットの性質上、十分な顧客の端末 スペック/ネットワーク環境が保証できない 可能性がある → レンダリング負荷をできるだけサー
バーサイドに寄せたい ・SPAではなくSSRを利用できる メタフレームワークの採用 ・Next.js? ・Pages Router ・App Router(2023.5〜 stable) →Pages Routerは積極的に 採用しづらい
ぶっちゃけ… App Routerキツそう…? ・まともにSSRするのにuse client境界 を狭めるためのある程度しっかりし たコンポーネント設計が必要 ・外から見てて事前に知ってなきゃ事故る 事象が多いように見える ・キャッシュの仕様
・静的/動的レンダリングを意識しなが らコード書くのも慣れないと大変そう ・爆弾を踏まないに越したことはない (回避すればいいというのはあるが) ・頑張ってキャッチアップした末に得 られるもの(顧客/開発者体験的価値) がそのキャッチアップコストを超える 自信がない ・上手な設計をしなくても/できなくて も同じ価値を実現する方法があるの ならそちらでも良いのでは…
Remixを採用してみました
Remixを採用したわけ ②Next.jsだとまともにSSRするのに use client境界を狭めるための節度 あるコンポーネント設計が必要な気 がした ①バックエンドFW採用時からなるべ く大きなマインドチェンジをせずに使 用できたらいいな ②サーバー/クライアントバンドルを
あまり意識せずともRemix側でよしな にバンドルしてくれ、簡単にSSR可能 ①Remixのシンプルさの所以である フルスタックデータフローがこれまで 自分たちが扱ってきたFWの使い勝 手と非常に近い
①フルスタックデータフローに馴染みやすい
②容易にSSRを実現 build/server ・Remix側でloader/actionとそのimportモ ジュールは自動でサーバーバンドルへ ※./serverフォルダもしくは.server.tsとするこ とで強制も可(clientも同様) build/server & client ・初回リクエスト時はjsx()でHTML化したペー
ジ要素とクライアントサイド依存 (useEffect,State等)のjsファイルおよび manifest(routeごとのassetを記述)ファイルを 返却 ・以降、SPAとして機能
まとめ ①バックエンドFW経験があって、まだReactの世界に慣れきってないメン バーが多い中、要件に照らし合わせて最適だと思う選択肢(Remix)を採用 したら結構上手くいった ②柔軟なキャッシュ戦略を必要とするアプリケーションの作成には Next.jsがマッチするが、そういった要件もなく手軽にSSRを実現したいな ら、Remixを採用すると幸せになれるかも…?