## プロジェクト概要
大手テレビ局の通信基盤リニューアル開発
## 担当
- webサービスの決済処理のバックエンドの実装(PHP)、
- 結合試験準備、実施
- 総合試験準備、実施
- 本番リリース
- 運用保守
## 使用技術
- PHP8
- MySQL8.0
- Laravel10
- Javascript
- Docker
- AWS
## 課題
数年に一度基盤システムのリニューアルを行なっているため決済機能の共通化、新決済の導入、サービスの仕様変更に伴う改修を行うために参画した。
複数の決済機能が用意されているが、各機能実行用のファイル内で同様の処理を行なっていたり、不要な処理や現在運用されていないのに存在している処理などが残っていた。
3万件ほどある決済機能のバッチ処理の処理速度が遅いのに加えて複数機能のバッチが同時刻に並行稼働しているため処理のバッティングが起きていた。
エラーハンドリングが不明確だったため、エラーが発生した際の原因特定が難しくなっていた。
### 取り組み
複数の決済処理に対応して共通処理を行うAPIを作成し各決済ごとに重複して実行されていた部分を共通化した。
不要な処理や運用のされていない処理などは他の機能との影響範囲を調査、運用担当者に確認した上で削除を行った。
決済バッチの処理速度改善としてSQLのクエリチューニングを行うとともに、複数バッチで同じテーブルを参照する際にバッティングが起きないように処理の改善を行った。
エラーコードを細かく定義し、それに基づいたエラーハンドリングを実施しました。エラー発生時には適切なログを出力する仕組みも導入しました。
### 成果
決済の共通化を行ったことで、保守性が上がり修正が容易になり、コーディングの一貫性を保つことができました。
クエリチューニングとプログラム改善を行うことでバッチ処理の速度向上と処理の安定性を向上させることができました。
エラーハンドリングを徹底した結果、問題の迅速な特定と解決が可能となり、運用効率やシステムの信頼性が向上しました。また、エラーコードの整理により、改修や機能追加の際のメンテナンス性も向上しています。