## プロジェクトの目的
EOLを迎えたVue.js 2で構築されたWebアプリケーションをVue.js 3へ移行し、
今後も継続的に機能開発・保守できるフロントエンド基盤へ刷新することを目的としたプロジェクト。
## プロジェクトの規模感
- プロジェクト期間:約10か月
- チーム:約10名(時期により変動)
- フロントエンド:2〜3名程度
- 移行対象:1,000以上のソースファイル
## 担当した役割
- Vue.js 2からVue.js 3への移行に関する技術調査・移行方針策定
- Vue.js 3への移行実装
- メンバーへの技術展開・技術フォロー
- コードレビュー
- 移行手順・実装パターンのドキュメント化
- webpackからViteへのビルド基盤移行
- ESLintの導入・ルール設計
### チーム内での立ち位置
プロジェクト開始前からVue.js 3を自主的にキャッチアップしていたため、
チーム内のVue.js 3有識者として技術面をリードしました。
自身で実装するだけでなく、移行方法の調査・方針策定、コードレビュー、
メンバーへの技術フォロー、ナレッジのドキュメント化などを担当し、
チーム全体がVue.js 3への移行を進められる状態を作る役割を担いました。
また、アプリケーションコードの移行だけではなく、
ViteやESLintの導入など、今後の開発を支えるフロントエンド基盤の刷新も主導しました。
## チームが抱えていた課題
### Vue.js 3の知識不足
プロジェクト開始時点ではVue.js 3の実務経験・知識を持つメンバーがほとんどおらず、
個々のメンバーが都度調査しながら移行すると、品質や実装方法にばらつきが出る懸念がありました。
### 開発時のビルド速度
既存環境ではwebpackによるトランスパイルに時間がかかり、
日常的な開発効率を低下させていました。
### 既存コードの潜在的な品質問題
Vue.js 3への移行を進める中で、不具合につながる可能性のある既存コードが
多数存在していることが判明しました。
## 課題に対して自身が発揮したバリュー及び成果
### Vue.js 3移行方法の標準化
Vue.js 3への移行方法や注意点、実装パターンを調査し、
移行作業の手引きとなるドキュメントを作成しました。
メンバーが毎回有識者に確認しなくても一定の方針で作業を進められる状態を作り、
大規模な移行をチームで進めるためのナレッジを整備しました。
また、コードレビューを通じて実装品質を担保するとともに、
個別に得られた知見をチームへフィードバックしました。
### webpackからViteへの移行
webpackによるトランスパイル時間が開発効率のボトルネックとなっていたため、
Viteへの移行を提案・主導しました。
既存環境との互換性や移行に必要な技術調査から実際の移行まで担当し、
トランスパイル時間を従来の約1/6まで短縮しました。
### ESLintによる品質基盤の整備
既存コードに潜在的な不具合につながる実装が多数存在していたため、
Vue.js 3への移行を機にESLintを導入しました。
プロジェクトの特性を考慮しながらルール選定を主導し、
問題のあるコードを静的解析で検出・修正できる仕組みを構築しました。
## 成果
約10か月で、1,000以上のソースファイルを対象としたVue.js 3への大規模移行を完遂しました。
単なるフレームワークのバージョンアップに留まらず、
移行方法の標準化、メンバーへの技術展開、コードレビュー、
ビルド基盤・静的解析環境の刷新まで担当することで、
移行後もチームが継続的に開発しやすいフロントエンド基盤を構築しました。