プロジェクトでの変化
-
障害対応時間短縮
-
機能追加リードタイム短縮
-
コードベースTypeScript化で型整備
課題
既存システムは仕様書も乏しく、修正のたびに別の場所が壊れる状態。オフショア側との時差・言語のギャップもあり、軽微な修正にも数日〜数週間かかっていた。
アプローチ
- 01 現行アプリのユースケースを画面単位でリバースエンジニアリング
- 02 Laravel + Inertia + React で「サーバ起点・SPA体験」の構成を採用
- 03 TypeScript化でAPI入出力を型で固定し、退行を防止
- 04 Dockerでローカル〜本番までの再現性を担保
成功要因
- リバースエンジニアリング
- 仕様書が乏しい現行アプリを画面単位で読み解き、機能の根拠を社内で説明できる状態に戻した。
- Inertiaによる結合
- InertiaJSでLaravel側ロジックとReact側UIを密結合させ、SPA体験とサーバ起点の分かりやすさを両立した。
- TypeScript型での退行防止
- API入出力をTypeScriptで型固定し、修正のたびに別箇所が壊れる状況を構造的に解消した。
- 再現可能な開発環境
- Dockerでローカル〜本番の差異を抑え、調査と修正の往復コストを下げた。
ソリューション
InertiaJS をハブにして、Laravel側のロジックとReact側のUIを密に結合させつつSPA的な体験を実現。TypeScriptで型を共有することで、リプレイス後の機能追加・改修コストを下げた。