如果我正在使用DDD开发应用程序,那么基础架构和行为组件在哪里呢?例如,用户管理、用户特定配置、权限、应用程序菜单等。
这些组件实际上与我的域完全满足的业务需求没有任何关系,但它们仍然是我的应用程序的必需元素。他们中的许多人也需要坚持不懈。
发布于 2011-09-10 07:17:11
在你的项目中有非域组件和域是很正常的-毕竟,并不是所有的东西都是面向业务域的。它们所属的位置实际上取决于您如何构建解决方案。在大多数情况下,我倾向于遵循Onion Architecture,所以我的所有逻辑都是由应用程序服务提供的,无论它是否是面向域的。
发布于 2011-09-12 15:21:01
如果你发现你的用例很少需要核心域的信息,你可以把它分成一个单独的数据库。通过应用程序服务层访问此信息,因为这一层旨在满足您的应用程序需求。如果这包括用户配置文件持久化等,那就好了。
但是您要记住,如果您遇到基础设施故障,并且希望对一些事务日志或数据库备份执行回滚,则可能希望回滚所有持久数据。因此,更容易让这些域共享一个数据库。利弊得失--总是妥协...
如果我知道此应用程序将与其环境进行少量交互,我会将其放入一个数据库中,并让应用程序服务层与客户端进行交互。
如果我知道将有几个应用程序/客户端,我可能会考虑拆分数据库,以便Webb应用程序用户的具体信息存储在单独的数据库中。很难说,因为我没有所有需求的概述。
/Magnus
https://stackoverflow.com/questions/7367317
复制相似问题