本プロジェクトでは、成瀬允宣氏著の「ドメイン駆動設計入門」のLaravel 10を用いた実装例を示します。
当該書籍では、ドメイン駆動設計(Domain Driven Deplopment, DDD)を用いたWEBアプリケーションの開発例が示されており、素晴らしい著作であることは言うまでもありません。 しかしながら実装はC#で示されているため 、例えばPHPフレームワークの代表例であるLaravelなどでDDDによる実装を行いたい場合には、具体的な実装例が分かりづらくなってしまいます。
そこで本プロジェクトでは、「ドメイン駆動設計入門」のLaravelによる実装例を示すことで、Laravel開発者のDDD実装の手助けとなることを目指します。あくまでLaravelの実装例を示すことを目的としていますので、ドメイン駆動設計とは何かについては書籍をお読みください。
これが皆様の開発の手助けとなれば幸いです。ご意見等ございましたら、コメント欄やIssueでお伝えいただければと思います。
- Chapter 0: 開発環境のセットアップ
- Chapter 1: ドメイン駆動設計とは -> 書籍をお読みください。
- Chapter 2: システム固有の値を表現する「値オブジェクト」
- Chapter 3: ライフサイクルのあるオブジェクト「エンティティ」
- Chapter 4: 不自然さを解決する「ドメインサービス」
- Chapter 5: データにまつわる処理を分離する「リポジトリ」(TDD)
- Chapter 6: ユースケースを実現する「アプリケーションサービス」(TDD)
- Chapter 7: 柔軟性をもたらす依存関係のコントロール (TDD)
- Chapter 8: ソフトウェアシステムを組み立てる (TDD)
- Chapter 9: 複雑な生成処理を行う「ファクトリ」(TDD)
- Chapter 10: データの整合性を保つ (TDD)
- Chapter 11: アプリケーションを1から組み立てる (TDD)
- Chapter 12: ドメインのルールを守る「集約」(TDD)
- Chapter 13: 複雑な条件を表現する「仕様」(TDD)
- Chapter 14: アーキテクチャ (TDD)
- Chapter 15: ドメイン駆動設計のとびらを開こう (TDD)
本プロジェクトでは、Docker上で作業を行います(Dockerの知識は必要ありません)。 Docker上で作業する際、Visual Studio CodeのDev Containers 拡張機能を使用すると開発が便利になりますので、 Visual Studio Codeと拡張機能のインストールを推奨します。
また、PHPとPHPのパッケージマネージャーであるComposerをローカルマシンにインストールしておく必要があります。