エンジニアの富岡です。2ヶ月ほど前まで、Wantedly 利用企業向けのプラン契約や料金請求周りのシステムの改修と機能追加を行うプロジェクトをやっていました。1年半ほどの長期プロジェクト、かつステークホルダーの多いプロジェクトだったので、プロジェクトマネジメントの観点でも書くべき話題はあるのですが、今回はより技術的な部分に焦点を当てて、プロジェクト開始時点でレガシー化していたシステムの状態を改善するために行った取り組みを紹介したいと思います。 背景 モデリングの見直し データの移行 1. 既存データをバッチ移行する 2. 新旧テーブルへの同時書き込みを有効化する 3. 一定期間、新旧テーブルの整合性をチェックする 4. 読み込みを新テーブル側に徐々に切り替える 5.旧テーブルへの書き込みを停止する コードの構造的な整理 – Fat モデルの分解 ドキュメントやコードコメントを増やす Saa