DDDを学習していますが、回答よりも多くの質問があります。
膨大な数のファイルを含むディレクトリのモデルを考えてみましょう。
ここに私がそれを見る方法があります:
ディレクトリは集約ルートです。
このエンティティには、追加または名前変更されたときにファイル名の一意性をチェックする検証ロジックが必要です。また、ファイルエンティティには「SetName」ロジックが含まれており、ドメインイベントを介してディレクトリに名前の変更を通知します。
しかし、ディレクトリはどのように機能するのでしょうか。
すべてのファイルをメモリにロードできるとは限りません。この場合、ファイルリポジトリには、名前の一意性をチェックするためのアドホックロジックが必要ですか?それは実行可能な決定だと思います。
ただし、現在コミットされていないトランザクションで一部のファイルがすでに追加または名前変更されている場合はどうなりますか?(それを禁止するものはありません。トランザクション境界は、ビジネスロジックに関連して外部で設定されます)。おそらくリポジトリは、メモリ内の状態と永続化された状態の両方を考慮する必要があります(これらの状態をマージすることは簡単な作業ではありません)。
したがって、すべての子を持つルートの集合体がメモリに収まる場合、すべてが正常です。そして、すべてのエンティティを具体化できないとすぐに問題が発生します。
そのような場合の取り組みを教えてください。全く問題ないのかもしれませんが、それは私の誤解です。