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
6年前のコードベースを TS + React + Recoil でリニューアルしてみて / r...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Naoto Ikuno
March 17, 2021
Programming
0
2.1k
6年前のコードベースを TS + React + Recoil でリニューアルしてみて / renewal codebase with TypeScript, React and Recoil
UIT meetup vol.12『リニューアル戦略発表会(一部から全部まで)』 にて使用したスライドです。
Naoto Ikuno
March 17, 2021
Tweet
Share
More Decks by Naoto Ikuno
See All by Naoto Ikuno
Readable test code
pandanoir
0
96
Other Decks in Programming
See All in Programming
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
今から始めるClaude Code超入門
448jp
8
8.8k
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
CSC307 Lecture 05
javiergs
PRO
0
500
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
200
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
300
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
130
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
700
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
110
Featured
See All Featured
A designer walks into a library…
pauljervisheath
210
24k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
120
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
110
How to build a perfect <img>
jonoalderson
1
4.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
210
We Are The Robots
honzajavorek
0
160
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
ラッコキーワード サービス紹介資料
rakko
1
2.3M
Leo the Paperboy
mayatellez
4
1.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
50k
Transcript
6年前のコードベースを TS + React + Recoil でリニューアルしてみて 幾野 直人
LINE フロントエンド開発センター Dev1室 新卒1年目 自己紹介 幾野 直人 Twitter: @le_panda_noir 趣味:
鬼滅の刃、合気道、ルービック キューブ
1. LINE Schedule とは?リニューアルの理由 2. リニューアル後の構成・いいところ 3. 成功したところ 4. してみた感想
5. まとめ アウトライン
1. LINE Schedule とは?リニューアルの理由 2. リニューアル後の構成・いいところ 3. 成功したところ 4. してみた感想
5. まとめ アウトライン
LINE 内の日程調整サービス 候補日に投票して決定 LINE Schedule とは?
LINE Schedule とは?
LINE Schedule について このくらいの規模感 • メインの機能 ◦ イベントを作成 ◦ 参加できる日程を回答
• 中規模 SPA
イベント作成の流れ 1. イベントの情報を入力
2. イベントに招待する メンバーを選択 イベント作成の流れ
3. メッセージを送信 イベント作成の流れ
イベント作成の流れ
日程回答ページ 都合が良いか悪いか 各日程について選ぶ
• LIFF という Webプラットフォームへの移行 • 6年前のものがベース、かなりレガシーだった なぜリニューアルすることにしたのか? LINE Front-end Framework
LINE Scheduleを
以前の LINE Schedule の構成 Vue 0.10.0 zepto(jQuery) Grunt ES2015 以前
以前の問題点 • モジュール化されていない →どこがどこに影響しているのかわかりづらい • 静的型がない →とてもつらい • 補完、ナビゲーションが効かない •
ライブラリが古くて情報が少ない →コードが読みづらい、修正に自信を持てない
リニューアルの目標 LINE Schedule は継続的な開発の予定はない 次メンテナンスを初見の人が担当する可能性大 そもそも 逆に言えば 初見の人でもすぐ開発できるコードベースにする
リニューアルにあたって 目標: 初見の人でもすぐ開発できるようにする • TypeScript の導入 • ドキュメントなど情報の整備 • ビルド・デプロイの自動化
1. LINE Schedule とは?リニューアルの理由 2. リニューアル後の構成・いいところ 3. 成功したところ 4. してみた感想
5. まとめ アウトライン
スタイル ライブラリ テスト リンター・バンドラ 各種構成 + enzyme Sass + sasslai(社内ライブラリ)
その他 Storybook, XLT, license-webpack-plugin, CircleCI
1. LINE Schedule とは?リニューアルの理由 2. リニューアル後の構成・いいところ 3. 成功したところ 4. してみた感想
5. まとめ アウトライン
• 情報をしっかり整備 • CircleCI を活用 ◦ リント・テストを自動実行 ◦ デプロイフローを自動化 リニューアルに際して
目標: 初見の人でもすぐ開発できるようにする
リニューアルに際して • 情報をしっかり整備 • CircleCI を活用 ◦ リント・テストを自動実行 ◦ デプロイフローを自動化
目標: 初見の人でもすぐ開発できるようにする
• 以前のコードベースはドキュメント不足 ◦ 画面図が実際のものと異なる ◦ 仕様変更がドキュメントに反映されていない ◦ ローカルデバッグの方法がよくわからない リニューアル時の壁
• 以前のコードベースはドキュメント不足 ◦ 画面図が実際のものと異なる ◦ 仕様変更がドキュメントに反映されていない ◦ ローカルデバッグの方法がよくわからない ➡ 情報の整備が必須
リニューアル時の壁
• README・wiki • 単体テスト・静的型付け ◦ コードリーディングのヒント • Storybook ◦ コンポーネントのドキュメント
情報を整備
テストは関数の入出力パターンを表現 単体テスト・ 静的型付け テストパターンから動作がわかる
静的型は一種のドキュメント 入出力の型を見るだけで関数の動作がある程度わかる 型から動作がわかる 単体テスト・ 静的型付け
Storybook の使用例
Storybook の使用例 各 props を変えると 上のコンポーネントが変化
Storybook の使用例 createdOn が変化
リニューアルに際して • 情報をしっかり整備 • CircleCI を活用 ◦ リント・テストを自動実行 ◦ デプロイフローを自動化
CI で Lint、テストを自動チェック
CircleCI で自動デプロイ
1. LINE Schedule とは?リニューアルの理由 2. リニューアル後の構成・いいところ 3. 成功したところ 4. してみた感想
5. まとめ アウトライン
• Storybook ◦ リリース後、まとまった時間を取って修正 ◦ 継続的に運用していくのは困難 • Recoil ◦ API管理とページ間での情報の受け渡しで使用
◦ グローバルステートで自由度が高い ◦ 管理方法をしっかりしないとディレクトリ構成が複雑化 してみた感想
1. LINE Schedule とは?リニューアルの理由 2. リニューアル後の構成・いいところ 3. 成功したところ 4. してみた感想
5. まとめ アウトライン
裁量があって環境構築から自由にできて良い構成を取れ、 当初のゴールをしっかり達成できた まとめ