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
小さいチームでもコードのアップデートと新規開発を止めない!
Search
Maki Goto
October 17, 2023
Programming
620
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
小さいチームでもコードのアップデートと新規開発を止めない!
2023年10月17日「経験談から学ぶ Webフロントエンドリプレイスの進め方LT」登壇資料
Maki Goto
October 17, 2023
Other Decks in Programming
See All in Programming
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
370
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
280
ActionController meets Protocol Buffers
sorah
0
560
最近”作らせてる” ローカルAIアプリの話
akit37
0
480
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
800
Railsバージョンを4倍にした話
optim
0
450
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
110
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
33k
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
430
Side Projects
sachag
456
43k
Designing Experiences People Love
moore
143
24k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
870
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Facilitating Awesome Meetings
lara
57
7.2k
How GitHub (no longer) Works
holman
316
150k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Technical Leadership for Architectural Decision Making
baasie
3
600
The untapped power of vector embeddings
frankvandijk
2
1.9k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Transcript
小さいチームでも コードのアップデートと 新規開発を止めない! 2023年10月17日 「経験談から学ぶ Webフロントエンドリプレイスの進め方LT」 株式会社hokan 後藤麻希
・後藤麻希(Maki Goto) ・保険代理店向けSaaSの開発担当 ・2022年3月に株式会社hokanにSWEとして入社(hokan歴約1.5年) ・♡:ピクミンシリーズ(特に2)と坦々麺 誰?
保険業界に特化したSaaS「hokan」をやってます 株式会社hokanについて
伝えたいこと リプレイスには 「短期集中型」と 「長期じわじわ型」の 2種類がある
伝えたいこと リプレイス時にどちらのタイプか 考えるところから始めよう
✅ 技術負債の解決をしたいが、 タイミングが取れず踏み出せない人 ✅ 小規模な開発チーム このLTが役に立ちそうな人 ※すみません!フレームワーク移行はしていないので、話に出てこないです!😔😭
本日の流れ 1. hokan CRM の直近1年のフロントエンドの歴史 2. リプレイス秘話(短期集中編) a. CRA→Vite移行プロジェクト b.
サービスワーカーの移行 3. リプレイス秘話(長期じわじわ編) a. moment→date-fns への移行 b. material-ui → mui への移行(バージョン上げ) 4. 終わりに
開発チームについて(メンバー) SWEは6人在籍 うち4名がCRM(hokan)担当
2022/04 モノレポへ移行 2022/05 CIを整えた 2022/06 webpackのバージョン上げるためreact-rewired -> cracoに移行 2022/08 web(react)とmobile(react native)でeslintとprettier のルール統一 全ファイルTS化 2022/09 開発環境のVite移行
done 2022/11 登録ずみのServiceWorkerを削除し、Firebaseで管理する変更をリリース 2023/01 本番環境のVite移行 done 終わり! ServiceWorker完全削除 2023/02 moment → date-fns移行開始 material-ui → mui 移行開始 hokanのフロントエンドの歴史(直近1年) (⚫)CRA→Vite移行プロジェクト (⚫)ServiceWorker移行プロジェクト
2022/04 モノレポへ移行 2022/05 CIを整えた 2022/06 webpackのバージョン上げるためreact-rewired -> cracoに移行 2022/08 web(react)とmobile(react native)でeslintとprettier のルール統一 全ファイルTS化 2022/09 開発環境のVite移行
done 2022/11 登録ずみのServiceWorkerを削除し、Firebaseで管理する変更をリリース 2023/01 本番環境のVite移行 done 終わり! ServiceWorker完全削除 2023/02 moment → date-fns移行開始 material-ui → mui 移行開始 hokanのフロントエンドの歴史(直近1年) (⚫)CRA→Vite移行プロジェクト (⚫)ServiceWorker移行プロジェクト
hokanのフロントエンドの歴史(直近1年) 短期集中型 CRA→Vite移行プロジェクト ServiceWorker移行プロジェクト
2022/04 モノレポへ移行 2022/05 CIを整えた 2022/06 webpackのバージョン上げるためreact-rewired -> cracoに移行 2022/08 web(react)とmobile(react native)でeslintとprettier のルール統一 全ファイルTS化 2022/09 開発環境のVite移行
done 2022/11 登録ずみのServiceWorkerを削除し、Firebaseで管理する変更をリリース 2023/01 本番環境のVite移行 done 終わり! ServiceWorker完全削除 2023/02 moment → date-fns移行開始 material-ui → mui 移行開始 hokanのフロントエンドの歴史(直近1年)
hokanのフロントエンドの歴史(直近1年) 長期じわじわ型 moment → date-fns material-ui → mui
CRA→Vite移行プロジェクト 短期集中型 CRA→Vite移行プロジェクト
・開発体験を上げたい! モチベーション
• 全ファイルts化 • 環境変数のprefix書き換え • viteだと動かないライブラリにpatchを当てた(react-dropzone、redux-form) • webpack v4→v5(キャッシュが効くので結構早くなる) ◦
それまでwebpackを使うためにreact-rewiredを使用していたが、 v5に上げることに伴ってcracoにした 置き換えるためにやったこと(技術的視点)
• ts-migrate にて一括置き換え • 型怒られは後から直す 置き換えるためにやったこと(全ファイルts化)
• そのままでは動かせなくなるライブラリがあった 置き換えるためにやったこと(patch当て)
• 担当者1人をアサインして集中してもらう • レビュー&各ページの挙動確認はチーム全員で分担して行う 置き換えるためにやったこと(進め方)
ServiceWorker移行プロジェクト 短期集中型 ServiceWorker移行プロジェクト
• ServiceWorkerだとハンドリングがうまくいかないケースがあった • バージョン更新を確実に管理したい モチベーション
• さよならServiceWorker👋 • Firestoreにてバージョンを手動で設定する 置き換えるためにやったこと(技術的視点)
• コード本体に埋められているバージョンと、Firestoreからリクエストして得た最新バー ジョンの数字を比較し、差がある場合は更新ダイアログを表示 置き換えるためにやったこと(Firestoreによる手動管理) =
• Vite移行プロジェクトとほぼ同じ • 担当者を1人アサインして集中 • レビュー&各ページの挙動確認はチーム全員で分担して行う 置き換えるためにやったこと(進め方)
• 担当者がアサインされることによって、メンバーがそれぞれの開発・リプレイスに集中で きる • リリースタイミングなどビジネスサイドとのすり合わせも窓口がわかりやすい 短期集中型リプレイスのメリット
• 担当者が限られるので知見が広がらない • 対策 ◦ 全員で動作確認&レビューする ◦ 共有会を開く・ドキュメントを書く 短期集中型リプレイスのデメリット
長期じわじわ型リプレイスの話 短期集中型 長期じわじわ型
長期じわじわ型リプレイスの話 moment.js ↓ date-fns
• moment.jsは長らくメンテされていないので新しいものにしたかった モチベーション
置き換えるためにやったこと ・計画と進捗の可視化 ・チーム戦でゆるくやる
・notionのプロジェクト管理機能を活用 ・moment.jsをimportしているページをとにかく列挙し、タスクとして起票 計画と進捗の可視化
・担当者は割り振らず、手が空いた人が勝手にとっていくスタイル チーム戦でゆるくやる ↓ここでやる
長期じわじわ型リプレイスの話 material-ui ↓ mui
• 古い! モチベーション
置き換えるためにやったこと ・開発ついで対応作戦 ・声かけ運動
・一気に機械的に置き換えは難しかった ・それぞれの機能開発の中で通りかかったファイルを適宜リファクタ ・リファクタ忘れてる時はPRにて声かけ ゆるく声かけ運動
• 1つ1つのタスクを細かく独立させることにより、開発と並行して行える • 全員で取り掛かるので知見が共有しやすい 長期じわじわ型リプレイスのメリット
• 長期化するので何を持って終わりとするか見えにくい • 対策 ◦ 最初にゴールラインを決めておく ◦ 機能開発優先なので、できなかった場合は割り切る 長期じわじわ型リプレイスのデメリット
伝えたいこと リプレイスには 「短期集中型」と 「長期じわじわ型」の 2種類がある
伝えたいこと 短期集中型のリプレイス →担当者をアサインして集中 長期じわじわ型リプレイス →やることを洗い出して手が空いた人がやる
伝えたいこと リプレイス時にどちらのタイプか 考えるところがはじめの一歩
伝えたいこと ❤
hokanは一緒に働くエンジニアを探しています!! カジュアル面談も大歓迎です! https://recruit-engineer.hkn.jp/
• テックブースト ◦ 技術研鑽・開発効率向上を補助する12万円/年 • リモートワーク可 ◦ チームにより出社は週1〜2の場合もあり • フルフレックス
◦ コアタイム無し • 書籍購入費用補助 エンジニアに特別な福利厚生
カジュアル面談をしませんか?