目次
1. 機能一覧
2. テーブル設計
3. 工夫した点
4. 振り返り
① 機能一覧
- カテゴリ機能(登録・編集・削除・詳細)
- メモ機能(登録・編集・削除)
② テーブル設計
③ 工夫した点
ドメイン駆動設計(DDD)の採用
今回のメモアプリ制作では、「単に動作するアプリ」を作るだけでなく、保守性の高いシステム設計の練習として、ドメイン駆動設計(DDD)を実装。
(1) 責務の分離
- Controller: リクエストやレスポンスの処理に限定し、アプリケーションロジックを直接含めない。
- UseCase(Interactor): ビジネスロジックを集中させ、データの永続化やルールの実行を統括。Controllerの責務がシンプルになり、保守性と可読性が向上。
- Value Object: ドメイン層でデータの不変性と型安全性を保証し、意図しない変更を防止。
実装例:メモの作成機能
UseCase(Interactor)層
Controller層今後の課題
1. ドメインモデルの設計における理解不足
初めてDDDを採用したため、とユースケース層とコントローラー層の責務の境界を明確にすることが難しく、一部で設計の一貫性に課題を感じました。プロジェクトの規模や要件に応じた適切な設計レベルを見極める必要性を感じました。
GitHub