Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
レガシーなフロントエンドを_React___Next.js_にリプレースした結果.pdf
Search
Yuto Ono
February 28, 2024
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
レガシーなフロントエンドを_React___Next.js_にリプレースした結果.pdf
Yuto Ono
February 28, 2024
More Decks by Yuto Ono
See All by Yuto Ono
1_年間_EM_エンジニアリングマネージャー_を経験した人の話.pdf
yutoono
0
110
EMを目指す方法
yutoono
1
220
Svelte でルービックキューブを作ってみた
yutoono
1
260
レガシーなフロントエンドを リプレースするプラクティス。 エネチェンジが挑む 「React化」
yutoono
4
2.1k
WebAssembly で 世界最速の数独ソルバーを作った話
yutoono
0
1.2k
AWS Codebuild のすすめ
yutoono
0
1.6k
Featured
See All Featured
So, you think you're a good person
axbom
PRO
2
2.2k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
470
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Writing Fast Ruby
sferik
630
63k
Marketing to machines
jonoalderson
1
5.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Skip the Path - Find Your Career Trail
mkilby
1
250
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Making Projects Easy
brettharned
120
6.8k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.1k
For a Future-Friendly Web
brad_frost
184
10k
Transcript
レガシーなフロントエンドを React / Next.js に リプレースした結果 ENECHANGE株式会社 2024年2月28日
Copyright © ENECHANGE Ltd. All Rights Reserved. | 2 小野
優人 の自己紹介 • ENECHANGE株式会社 ◦ テックリード(フロントエンドが得意) ◦ 3月からEM(楽しみだけど少し不安) • 趣味 ◦ ピアノ ◦ ルービックキューブ
リプレース前の技術スタック
Copyright © ENECHANGE Ltd. All Rights Reserved. | 4 エネチェンジとは
• 電気とガスの料金シミュレーション・比較ができるサービス • オトクな電力会社を見つけたら、そのままお申し込みもできます
Copyright © ENECHANGE Ltd. All Rights Reserved. | 5 リプレース前の技術スタック
• Ruby on Rails • jQuery がメイン • Vue 2.x を一部導入 ◦ 同一ページの中にjQueryで制御している部分とVueコンポーネントで記述されている部分が混在 • HTMLに直接scriptタグで記述されていることもあり、カオスな状態
リプレースに向けた技術選定
Copyright © ENECHANGE Ltd. All Rights Reserved. | 7 React
vs Vue ( Next vs Nuxt ) Vue2 Vue3 React
Copyright © ENECHANGE Ltd. All Rights Reserved. | 8 ライブラリのダウンロード数では、
React , Next が圧倒的優勢 npm trends より
Copyright © ENECHANGE Ltd. All Rights Reserved. | 9 他社の技術選定の記事を参考にさせていただきました
食べログフロントエンドのリプレース戦略 https://note.com/tabelog_frontend/n/n18a799ec0784 Yahoo! JAPAN トップページを Atomic Design と React・Redux・TypeScript で作り変えたお話 https://techblog.yahoo.co.jp/entry/20191203785540/ レガシーなフロントエンドを捨ててReact.jsでリプレイスした話 (PR TIMES) https://developers.prtimes.jp/2021/11/10/replace-react/ 愛すべきAngularとのお別れ。2,3年後を見据えReactにリプレイスする話(ログラス) https://www.wantedly.com/companies/loglass/post_articles/331280 kintone フロントエンドリアーキテクチャプロジェクトで大切にしていること https://blog.cybozu.io/entry/2022/02/04/171154 キカガク Vue.js & Nuxt.js から React & Next.js へ移行した理由 https://fwywd.com/tech/nuxt-to-next モノタロウ Vue.js?React?フレームワーク選びの7つの選定基準 https://tech-blog.monotaro.com/entry/2021/11/02/090000
Copyright © ENECHANGE Ltd. All Rights Reserved. | 10 React
, Vue それぞれの特徴をまとめると 数多くの技術記事を読み込み、また、自分自身が両方触った経験も踏まえ、 それぞれの特徴をまとめてみた React + Next の特徴 • TypeScriptとの相性が良い • Vueに比べ、品質の担保や開発者体験に優れている Vue + Nuxt の特徴 • マークアップを直感的に書ける。ReactのJSX記法に比べてとっつきやすい • コンポーネント単位のCSSがデフォルトでサポートされている
Copyright © ENECHANGE Ltd. All Rights Reserved. | 11 以上を踏まえ、
React , Vue の選定基準 • 品質や開発者体験を優先するならReact、新人育成のしやすさを優先するならVue • 当時の社内ではジュニアレベルのエンジニアを育成するということはあまりなく、品質や開発者体験 を優先したいので、Reactを選択 • Reactで開発したいエンジニアが増えており、採用にも良い影響を期待できるのも一因 結論: React へのリプレースが決定しました!
Copyright © ENECHANGE Ltd. All Rights Reserved. | 12 どのようにリプレースしたか
時間の関係で詳しいことは省略します。詳細はこちらの記事をご参照ください。 https://whatweuse.dev/article/enechange_front-end • LPなどの静的なページは Next.js を使用 • 新規開発では Vite + React の構成
リプレース後、どうなった?
Copyright © ENECHANGE Ltd. All Rights Reserved. | 14 大満足
😊 • あきらかにメンバーの士気が向上した ◦ コードの見通しが良くなり、保守性が向上した ▪ メンバーからも「新しいコードは読みやすい」と言ってもらえるように ◦ React で開発できること自体がモチベーションUPに • LPのパフォーマンスが向上した(表示が速くなった) ◦ Next.js 、 S3 の組み合わせが効果を発揮した Before After パフォーマンススコア 41点 読み込み速度 3.64秒 パフォーマンススコア 69点 読み込み速度 2.0秒
Copyright © ENECHANGE Ltd. All Rights Reserved. | 15 失敗したこと そして今後の対策
• フロントエンド担当者とバックエンド担当者の認識ズレ ◦ 特に時間がないとき、 OpenAPI (Swagger) のファイルを雑に書いて済ませがち ▪ 説明をなるべく丁寧に書く ▪ 必要に応じてすりあわせのMTGを実施する • (失敗したことではないけど)リプレース前の部分を触るのがつらい ◦ 現在の進捗は約5% まだ95%はレガシーなコードで動いている ▪ ※この進捗率には明確な基準があるわけではなく、感覚値です ◦ 残りの箇所もReact化を進めていきたい
まとめ
Copyright © ENECHANGE Ltd. All Rights Reserved. | 17 まとめ
• 技術選定の際は準備が大事 ◦ 関係者を納得させられる根拠を提示できるように • しっかり準備してリプレースに取り組めば、いいこといっぱい ◦ メンバーの士気が向上する ◦ 採用に良い影響がある ◦ 自分自身のスキルアップにつながる
さいごに
Copyright © ENECHANGE Ltd. All Rights Reserved. | 19 あなたも一緒にエネルギーの未来をつくりませんか?
ENECHANGEでは、「エネルギーの未来をつくる」という壮大なミッションに取り組んでいただけるエンジニアを募集し ています! https://engineer-recruit.enechange.co.jp/ または「エネチェンジ エンジニア」で検索