在DDD应用程序中保留应用程序特定数据

时间:2012-06-12 11:42:37

标签: domain-driven-design

我参与了一个项目,用于构建可以被描述为规则引擎的Web应用程序,我们使用DDD方法来捕获和建模域和功能。

但是应用程序相关数据呢,因为它是一个Web应用程序,所以围绕security / user-mgmt,log mgmt会有很大一部分。等,不属于域的杂项,但会有需要为其管理的数据。从最初阅读DDD范例开始,我们对域模型以及通过存储库的持久性有了一个公平的认识。应用程序服务层中包含的安全性,txn mgmt等应用程序特定问题是我所理解的。

在这里/应用程序特定数据的持久性如何?它是否应该被建模为不同的聚合并以类似的方式成为系统的一部分,或者应该以不同的方式构建(管理器类与DAO交谈 - 如交易脚本)?

1 个答案:

答案 0 :(得分:4)

我认为安全,日志等不是域专家所说的。这些东西不是Domain的一部分,不应该被设计为域实体/聚合。如果它不是设计为实体,则不应将其作为实体持久化。

我认为这些东西不应该污染域模型。安全性或日志记录是基础结构层的一部分。这些事情的持久性应该由基础设施层来管理。考虑记录日志:您可以登录到文件或数据库。并且您应该能够在日志持久性类型之间轻松切换。与安全性相同 - 数据库还是ActiveDirectory? 这些内容的变化与域模型持久性无关,因此您不应将它们混合