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
100
EMを目指す方法
yutoono
1
220
Svelte でルービックキューブを作ってみた
yutoono
1
250
レガシーなフロントエンドを リプレースするプラクティス。 エネチェンジが挑む 「React化」
yutoono
4
2.1k
WebAssembly で 世界最速の数独ソルバーを作った話
yutoono
0
1.2k
AWS Codebuild のすすめ
yutoono
0
1.6k
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
530
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
GraphQLとの向き合い方2022年版
quramy
50
15k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
460
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
710
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
500
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
330
Deep Space Network (abreviated)
tonyrice
0
310
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Google's AI Overviews - The New Search
badams
0
1.6k
Paper Plane
katiecoart
PRO
4
53k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
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/ または「エネチェンジ エンジニア」で検索