实施领域驱动设计成本
Implementing Domain Driven Design Cost
我在我的项目中使用 DDD,我喜欢它强大的 Idea 并且独立于我的后端数据库设计。
而且我也在前端使用 MVP 模型。
但是最近,我遇到了将模型转换为模型(一次>>1000个对象)的性能问题,例如:
- 从 EF 存储库模型到域模型
- 从域模型到 ViewModel
同样的行程我应该去持久化数据库上的单个对象。
这是实施此模型的缺点,还是有任何方法可以降低我应该遵循的成本。
从 "mapping" 您的域聚合到您的 Entity Framework 数据模型,反之亦然。
对性能的影响应该很小。
但是为什么要一次映射 1000 个对象?我不了解您的要求或您的领域,但听起来您的设计可能存在问题。为什么你甚至需要内存中的这么多聚合?
我建议您配置数据库。我怀疑您正在急切地将不必要的数据从数据库加载到内存中。如果您还没有这样的工具,我建议您使用 ExpressProfiler。
使用 CQRS 可能是个好案例。
当您分离读取模型时,您可以忽略当前映射层并直接从您的数据源中合并它。
我在我的项目中使用 DDD,我喜欢它强大的 Idea 并且独立于我的后端数据库设计。 而且我也在前端使用 MVP 模型。 但是最近,我遇到了将模型转换为模型(一次>>1000个对象)的性能问题,例如:
- 从 EF 存储库模型到域模型
- 从域模型到 ViewModel
同样的行程我应该去持久化数据库上的单个对象。 这是实施此模型的缺点,还是有任何方法可以降低我应该遵循的成本。
从 "mapping" 您的域聚合到您的 Entity Framework 数据模型,反之亦然。
对性能的影响应该很小。但是为什么要一次映射 1000 个对象?我不了解您的要求或您的领域,但听起来您的设计可能存在问题。为什么你甚至需要内存中的这么多聚合?
我建议您配置数据库。我怀疑您正在急切地将不必要的数据从数据库加载到内存中。如果您还没有这样的工具,我建议您使用 ExpressProfiler。
使用 CQRS 可能是个好案例。
当您分离读取模型时,您可以忽略当前映射层并直接从您的数据源中合并它。