# プロジェクトの概要
- 某大手企業の予算、実績、稟議発注管理システムの構築
- チーム規模 16名
- チーム構成
- PM 1名
- PL 1名
- バックエンドエンジニア 6名
- フロントエンドエンジニア 7名
- インフラエンジニア 1名
- 使用技術,開発環境
- Java,Spring boot, TypeScript, Nuxt.js, SQLServer, vagrant, AWS(EC2,RDS,CodeCommit他)
## 取り組んだ課題
- 稟議フローのシステム化
- 稟議における計画~発注書作成のペーパーレス化
- エンハンス対応
## 担当
フロントエンドのリーダーとして下記を担当
- 顧客要望に対する工数見積もりの算出
- 画面設計
- 開発
- メンバーへのタスク振り、進捗管理
- リリース対応
- 新規参画者の受け入れ及び環境構築のフォロー
- 画面機能に応じたAPI設計
- アトミックデザインを用いたUIコンポーネント設計
## 取り組み
### プロジェクトのTypeScript化推進
#### 概要
・既存コードの改修
・コーディング規約の整理
・ESLint、Prettier、huskyによるルールの強制
#### 背景
参画した際のプロジェクトはTypeScriptを使用しているものの、携わってきたメンバーが多い上にルールが緩く半分程はJavaScriptで書かれている状態だった。
型安全な開発が出来ていないことで下記の課題が生じていた。
・コードリーディングに時間がかかり保守性の低下
・バグ発生による修正、テスト工数増
・仕様変更に対する修正工数が大きい
#### 具体的な取り組み
まずはany型の排除を行うことで既存コードの保守性の向上に取り組む
コーディング規約を作成し、メンバーに周知するがメンバーの入れ替わりも多く、浸透させるのに苦労した。
そこでESLint、Prettierのルールを見直し、エディター上で明確に規約違反を確認出来るようにし、違反があった際にはhuskyでコミット出来ないよう強制することでTypeScript化の推進を行った。
#### 成果
TypeScript化することにより、前途の課題の解決に加え、ドキュメンテーションの役割も果たし仕様の確認工数の削減にも繋がった。