ホーム/ 支援実績
飲食 / アプリ

オフショア製の飲食店アプリを⁠、Laravel + React + Inertia で内製品質に作り直し

外食チェーン

オフショアで開発・運用されていた飲食店向けアプリと管理画面を⁠、Laravel + ReactJS + InertiaJS + TypeScript + Docker でリプレイスしました⁠。コードベースの読みやすさと運用の安定性を取り戻しています⁠。

Before / After

プロジェクトでの変化

  • 障害対応時間
    短縮
  • 機能追加リードタイム
    短縮
  • コードベース
    TypeScript化で型整備
Challenge

課題

直すたびに⁠、別のどこかが壊れる⁠。仕様書もほとんど残っていませんでした⁠。オフショア側とは時差と言語の壁があり⁠、ちょっとした修正でも数日から数週間かかります⁠。コードには型がなく依存関係もどこにも書かれていないため⁠、社内のエンジニアが手を入れることもできません⁠。リリースのたびに障害が出て⁠、その対応で次のリリースが遅れる⁠。この繰り返しになっていました⁠。修正できる人がいないという状態を断ち切るには⁠、コードベースと運用の流れを両方作り直すしかありませんでした⁠。

Approach

アプローチ

  1. 01 現行アプリのユースケースを画面単位でリバースエンジニアリングしました
  2. 02 Laravel + Inertia + React で「サーバ起点・SPA体験⁠」の構成を採用しました
  3. 03 TypeScript化でAPI入出力を型で固定し⁠、退行を防いでいます
  4. 04 Dockerでローカル〜本番までの再現性を担保しました
  5. 05 社内エンジニアが手を入れられるよう⁠、コードレビュー基準とドキュメンテーション方針を策定しました
  6. 06 リリースフローを GitHub Actions ベースで自動化し⁠、手作業による事故を構造的に排除しています
Key Success Factors

成功要因

リバースエンジニアリング
仕様書が乏しい現行アプリを画面単位で読み解き⁠、機能の根拠を社内で説明できる状態に戻しました⁠。
Inertiaによる結合
InertiaJSでLaravel側ロジックとReact側UIを密結合させ⁠、SPA体験とサーバ起点の分かりやすさを両立しました⁠。
TypeScript型での退行防止
API入出力をTypeScriptで型固定し⁠、修正のたびに別箇所が壊れる状況を構造的に解消しました⁠。
再現可能な開発環境
Dockerでローカル〜本番の差異を抑え⁠、調査と修正の往復コストを下げました⁠。
Solution

ソリューション

InertiaJS を間に置き⁠、Laravel のロジックと React のUIをつなぎながらSPAの体験を作りました⁠。型は TypeScript で共有します⁠。ここが効いて⁠、後から機能を足すときの手戻りが目に見えて減りました⁠。作り直した後は社内のエンジニアが直接コードを触れるようになり⁠、障害対応も機能追加も短くなっています⁠。どこに何があるか分かる⁠。その状態に戻せたことが⁠、いちばんの成果です⁠。

同様の課題のご相談

業種や規模を問わず⁠、まずはお話を伺います⁠。

お問い合わせフォーム