## プロジェクト概要
自社開発のJavaベースWebアプリをElixirで再構築し、Eラーニングシステムの保守性向上と機能拡張を実現しました。
## 役割・体制
### 自身のポジションと役割
- フロントエンドおよびバックエンドエンジニアとして、ElixirとPhoenix Frameworkを用いたWebアプリの設計、コーディング、テストを担当しました。
- MySQLの論理設計においてER図作成を主導し、教材やユーザーの階層構造を含む複雑なデータモデルを設計しました。
- チーム内で実装したコードのプルリクエストレビューを行い、品質向上とコーディング規約の遵守を推進しました。
### チーム規模と構成
- プロジェクトマネージャー1名を中心に、エンジニア約7名で構成されたチームで開発を進めました。
## 背景・課題
- 既存のJava製Webアプリの保守が複雑化し、性能や拡張性の問題が顕在化していたため、最新技術を用いた再構築が求められました。
- Eラーニングシステムの特性上、教材やユーザーの部署など階層的なデータ構造を正確に管理する必要がありました。
- 設計ドキュメントが十分に整備されておらず、頻繁な仕様変更によりスケジュール管理が困難となっていました。
## 実際の取り組み
### 開発環境
- 開発環境はUbuntu上で構築し、ElixirとPhoenix Frameworkを中心に開発を行い、MySQLをデータストアとして利用しました。
- GitHubを利用したソースコード管理とプルリクエストフローによるコードレビューを実施しました。
- テスト駆動開発の手法を採用し、ビルドとテストの自動化を推進しました。
### 設計・改善内容
- ER図を作成し、教材やユーザーの部署など階層構造を持つデータモデルを論理的に設計することで、保守性と拡張性を向上させました。
- コーディング規約に詳細な関数コメントの記述を盛り込み、仕様変更が頻発する状況下でもコードの理解と共有を促進しました。
- コード内コメントの標準化により、新規メンバーやヘルプ要員への口頭説明工数を大幅に削減しました。
- アジャイル開発の特性を生かし、頻繁な仕様変更にも柔軟に対応する体制を整備しました。
### その他アピールポイント
- チーム全体でコーディング規約の共有と遵守を徹底し、品質向上と開発効率の両立を実現しました。
## 成果・価値
- コードの可読性と保守性が向上し、頻繁な仕様変更に対する対応力が強化されました。
- プロジェクト後半に参加したメンバーへの口頭説明工数を削減し、チーム全体の効率的なリリース準備に貢献しました。