-1

私はプロジェクト構造を改善しようとする従来のプロジェクトに取り組んでいます。私の質問は、私はどのようにコード構造を整理すべきかです。DDD - 適切なコード構造体

#1ビジネスドメイン/層

app/ 
----accout/ 
--------application/ 
--------domain/ 
--------infrastructure/ 
----client/ 
--------application/ 
--------domain/ 
--------infrastructure/ 
----transfer/ 
--------application/ 
--------domain/ 
--------infrastructure/ 

または#2層/ビジネスドメイン

アプローチが合うでしょう
app/ 
----application/ 
--------account/ 
--------client/ 
--------transfer/ 
----domain/ 
--------account/ 
--------client/ 
--------transfer/ 
----infrastructure/ 
--------account/ 
--------client/ 
--------transfer/ 

:私は2つのオプションを参照してくださいレガシープロジェクトの方がいいですか?あなたの経験からはどちらが好ましいですか?

私の考えでは、#1は、さらなるリファクタリング中にシステムのデカップリングを有効にします。一方、#1はレガシープロジェクトでは実現しやすいようです。したがって、あなたがモジュールを作成することができ、この場合には、それがどのように見えるでしょうddd in php予約する

+0

ディレクトリ構造について記述すると、DDDはどのように表示されますか? – kayess

+1

それでは、あなたのDDDプロジェクトでは、どのようにコード構造を整理していますか?私はあなたが1つのパッケージにすべてのビルディングブロックを維持したくないと思います。 – slawekpl

+2

現在、どのように尋ねられたかは、かなりの意見に基づいており、すべてのプロジェクト構造が異なるため、将来の訪問者を助けるものではありません。基本的な違いは、各プロジェクトはコード内のソリューション空間である異なるビジネスユースケースによって駆動されるため、サブドメインと境界のあるコンテキストの力によって駆動されるユビキタス言語に従ってそれらを整理しようとします。私は良いアドバイスや "ベストプラクティス"を提供することはできません。なぜなら、これらは存在しないからです。開発サイクルを手助けできるほど迅速かつ効果的に行うために、あなたとチームに準拠しています。 – kayess

答えて

1

:あなたは(あなたのプロジェクトが本当に巨大であるとき場合)機能でmicroservicesを作成することを検討している場合、

└──src 
    ├── Application 
    ├── Domain 
    │ └── Model 
    │  ├ Account 
    │  ├ Client 
    │  └ Transfer 
    └── Infrastructure 

しかし、あなたはあなたのオプション#1に従うことができます。別々のプロジェクトに分割する方が簡単になるからです。