## プロジェクト概要
10年以上運用されたPHPサイトの老朽化に伴い、新アーキテクチャへリプレイスを行い保守性とテスト容易性を向上させました。
## 役割・体制
### 自身のポジションと役割
- フロントエンド・バックエンドエンジニアとして、TypeScriptおよびRailsを用いたコードの移植と設計を担当しました。
- レガシーコードの解析とデッドコード除去を推進し、リプレイス作業の工数削減と品質向上に貢献しました。
### チーム規模と構成
- 約5名規模のエンジニアチーム』で構成され、メンバー間でフロントエンドとバックエンド双方を担当する形態でした。
## 背景・課題
- 10年以上運用されていたPHPベースのサイトはメンテナンスが困難で、多くのデッドコードやバグを抱えた状態でした。
- 保守担当者が複数代替わりしており、システムの全体像が把握されていない状況であるため、現状の正確な動作把握が困難でした。
- テストコードが存在しなかったため、リプレイス時の動作保証が難しく、リスク管理が重要な課題でした。
## 実際の取り組み
### 開発環境
- 開発手法はアジャイルの特徴を取り入れつつ淡々とリプレイスを進める形態』で実施しました。
- フロントエンドはTypeScriptを活用し、バックエンドはRailsで既存機能の移植と改善を行いました。
### 設計・改善内容
- デッドコードや不用な機能を事前に洗い出して削除し、リプレイス時の工数と将来的なメンテナンス負荷を軽減しました。
- 移植対象の機能を一つずつ詳細に解析しながらコードの再設計を行い、既存のバグや不整合の解消を図りました。
- テスト容易性を意識して新たなアーキテクチャ設計を行うことで、後続の品質確保を支援しました。
### その他アピールポイント
- レガシーシステムの負債を減らすため、無駄な移植を避ける戦略的な判断を行い、プロジェクト全体の効率化に寄与しました。
- AIコーディングツールをフル活用し、作業の効率化を実施、合わせてAIツール利用の知見も得ることができました。
## 成果・価値
- 移植対象から不要なコードを除外したことで、無駄な作業時間を削減し、リプレイス作業全体の効率化に成功しました。
- 不用な機能が新システムに移植されるリスクを低減し、技術的負債の削減に貢献しました。
- システムの保守性が向上し、将来的な改修や機能追加の際のコスト削減に繋がる基盤を構築しました。
- AIツールのハーネスも同時に整備することで、運用フェーズでの作業効率化にも貢献しました。