当我阅读了有关 DDD、模式和许多其他应用程序架构主题的内容时,我的脑海中有一个问题一直困扰着我数月之久。我将根据 MVC Web 应用程序来构建它,但我敢肯定,问题是更广泛的。就是这样:遵守领域实体是否会在应用程序中造成僵化和低效?
DDD 方法对于管理应用程序的业务逻辑以及作为与利益相关者合作的一种方式非常有意义。但对我来说,它在多层应用程序的上下文中分崩离析。也就是说,很少有场景需要一个实体的所有数据,或者甚至两个存储库都拥有这一切。就其本身而言,这还不错,但这意味着我进行了多个查询,返回了一堆我不需要得到的一些属性。一旦完成,无关信息要么被传递到视图,要么存在丢弃、合并和映射数据到 DTO 或视图模型的开销。我需要生成大量报告,并且问题似乎在那里被放大了。每个都需要对信息进行独特的切片或聚合,SQL 可以做得很好,但存储库不能,因为它们 预计将返回完整的实体。老实说,这似乎很浪费,原则上我不想破坏数据库并产生不需要的网络流量。从这样的问题 存储库层是否应该返回数据传输对象 (DTO)?似乎我不是唯一一个为这个问题而苦苦挣扎的人。那么它似乎强加的限制的答案是什么?
感谢一个新的和困惑的 DDD-er。