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
いちエンジニアVueからReactへの乗り換えを提案し成し遂げた話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Takahiro Matsuda
October 18, 2023
Programming
1.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
いちエンジニアVueからReactへの乗り換えを提案し成し遂げた話
Takahiro Matsuda
October 18, 2023
Other Decks in Programming
See All in Programming
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
190
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
330
A2UI という光を覗いてみる
satohjohn
1
130
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
110
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
0
230
The NotImplementedError Problem in Ruby
koic
1
740
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
250
New "Type" system on PicoRuby
pocke
1
860
AutonomyとControlのあいだ:Graflowで記述するAIエージェント協調
myui
0
120
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
120
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
3.8k
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
2
670
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
sira's awesome portfolio website redesign presentation
elsirapls
0
280
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Optimizing for Happiness
mojombo
378
71k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
230
How to Think Like a Performance Engineer
csswizardry
28
2.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
360
4 Signs Your Business is Dying
shpigford
187
22k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
390
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
540
Transcript
© 2023 Techtouch. いちエンジニアがVueからReactへの 乗り換えを提案し成し遂げた話 2023/10/18
2 © 2023 Techtouch. 自己紹介 Taka @takakobejp • 前職:Sonyグループ ◦
React Nativeを使ったアプリケーション開発 ◦ スクラムマスター • 現職:テックタッチ ◦ フロントエンドエンジニア ◦ 今年度からフロントエンドチームのテックリード ◦ 4年前にVueからReactへの乗り換えをリード • ReactとTypescriptが大好き
3 © 2023 Techtouch. 今回お話すること • 当時いちエンジニアだった自分がどうやってVueからReactへの置き換えを成し遂げたか • 成し遂げることができた要因は何だったのか ※技術的な話ではなくプロセスの話がメインです
テックタッチ(プロダクト)のご紹介
5 © 2023 Techtouch. テックタッチとは 操作 ガイド 作成 システム画面上でかんたんにできる 操
作 ガ イ ド の 作 成 も 表 示 も 問い合わせが多く 分かりにくいシステム 誰もが使える システムへ! 利用者の体感を最重視したリアルタイムの操作ガイドで、 システムの使い方が分からないを払拭。 操作ガイドはプログラミング不要で、システムの画面上 でかんたんに作成可能。 入力チェックや条件分岐にも対応。 システム利用者 システム管理者 システム改修不要
どうVueからReactへの乗り換えを実現したか
7 © 2023 Techtouch. どう実現したか 課題感をもとに改善案をイメージ 7 => いろいろ考えた末、今後のことを考えるとReactでゼロベースから作り直すのが良さそう デグレ頻度が高いな
テストコードが 不十分だな 利用しているライブラ リの拡張性が低いな コードが型安全に なってないな 課 題 感 など など など • デグレを減らすためにはテストが必要だ • デグレの原因は設計にありそうだ • テストを充実させるためにテスタビリティが高い設計にしなければ • 設計を変えるとなるとほぼ書き直さないといけないな • Reactだとより型安全に作れそうだし、拡張性が高いライブラリがあるのでそれが使えそう • Reactだと細かいカスタマイズができるそうだな、などなど 改 善 案
8 © 2023 Techtouch. どう実現したか 最低限動くものを作ってみた 8 みんなの反応 • ←実際にReactで作ったもの
• ソリューションにより確信が持てるよ うになった • 考慮不足な箇所も明確に • 一部の人にも見せた
9 © 2023 Techtouch. どう実現したか いけそうな感じがしたので積極的に布教活動をした 9 みんなの反応 • 資料を作成しプレゼン
• Slackや対面で継続的に情報共有 • VueとReactの違い • React版で改善される点、など
10 © 2023 Techtouch. どう実現したか React化検討のSlackチャンネルも作り、気合を入れた提案資料も作った 10 みんなの反応 • ユーザーにとって何が嬉しいか
• 開発者にとって何が嬉しいか • より詳細な設計 • 開発方針、など
11 © 2023 Techtouch. どう実現したか CTOと合意し移行を実施 11 • 既存プロダクトと並行して開発 •
みんなの協力を得ながら約1年かけて完成 2018 2019 2020 2021 2022 Vue版開発チーム React版開発チーム 正規リリース 追加機能や機能変更を適宜反映
12 © 2023 Techtouch. どう実現したか 時系列まとめ 12 2019年5月 6月 7月
8月 9月 10月 11月 12月 1月 2月 2021年3月 React版を作る React化の資料 第1弾を作成する 布教活動する CTOと合意 React化の資料 第2弾を作成する 本格始動 React版 リリース
成功要因の分析
14 © 2023 Techtouch. 成功要因の分析 1. 効果や工数を見積もる前に行動した • 最初にそこまで考えきれない(というより見積もるための知識も時間もない) •
直感を信じて行動することも大事 2. 誰に言われたわけでもなく自ら行動した • コンセンサスも取らずに行動した • ただやってみたい、試してみたいという思いで始めた • 自ら行動することで最後まで高いモチベーションで取り組むことができた 3. 実際に動くものを作った • 実際に動くものを作ることで自分の中にあったソリューションのイメージがより鮮明になった • 動くものがある方が説得力も増す • ある程度形にするまでであればそこまで工数はかからない ◦ 実際作るのにかかったのは30時間ほど(数人で1年かけるのに比べたら誤差) ◦ 細かい部分の作り込みや自動テストの作成、レビュー、QAなどのが方が時間がかかる事が多い
15 © 2023 Techtouch. 成功要因の分析 4. 布教活動を継続的に行なった • プレゼンしたり、Slackや対面での会話で話題に出したり •
バグが起きたり開発時に課題を感じたりする度にみんなの脳裏によぎるようになる • みんなのモチベーション向上に繋がる ◦ チーム開発なのでみんなのモチベーションを上げることが大事 ◦ 一人だけやる気になってもダメ ◦ みんなが良いと思って作ることが大切 • 建設的な意見をもらうことができる • 大きな決断はなかなかすぐにはできない ◦ 実際に開発を本格的に始めたのは活動を開始してから半年後
16 © 2023 Techtouch. 成功要因の分析 5. いちエンジニアが行動に移した • いちエンジニアとCTOでは視点も視野も違う •
アーキテクチャの部分はどちらも見ているが手薄になりがちだった ◦ テックリードがいれば話は違っていたかもしれないが当時はいなかった • 実際に形にできるのはエンジニアなのでエンジニアが 率先して行動するのが望ましい
さいごに
• いちエンジニアでも大きな技術的負債の解消は実現できる • 負債が解消できるかどうかはエンジニアの行動次第!
すべてのユーザーが システムを使いこなせる世界に システム導入だけで終わらせない、利活用のためのDXプラットフォーム