2

我参与了一个为可以被描述为规则引擎的东西构建 webapp 的项目,我们正在使用 DDD 方法来捕获和建模域和功能。

但是与应用程序相关的数据呢,因为它是一个 Web 应用程序,所以会有很大一部分是围绕安全/用户管理,日志管理。等等,不属于域的杂项,但会有需要为它们管理的数据。从对 DDD 范式的初步阅读中,我们对域模型和通过存储库的持久性有了一个很好的了解。我所理解的应用程序服务层中包含应用程序特定的问题,例如安全性、txn mgmt 等。

在这个哪里/如何持久化应用程序特定的数据?这也应该被建模为不同的聚合并以类似的方式成为系统的一部分,还是应该以不同的方式构造(管理器类与 DAO 对话 - 类似事务脚本)?

4

1 回答 1

4

我认为安全、日志记录等不是领域专家所谈论的。这些东西不是域的一部分,不应该被设计为域实体/聚合。如果它没有被设计为实体,它不应该被持久化为实体。

我认为这些东西不应该污染领域模型。安全性或日志记录是基础设施层的一部分。此类事物的持久性应由基础设施层管理。考虑一下日志记录:您可以记录到文件或数据库。您应该能够在日志持久性类型之间轻松切换。与安全性相同 - 数据库或 ActiveDirectory?这些东西的变化独立于域模型持久性,所以你不应该混合它们

于 2012-06-12T12:12:14.950 回答