具有不同角色的领域驱动设计

Domain-Driven Design with different roles

我是 DDD 新手。我想构建一个实现 DDD 的应用程序,但我对角色有疑问。

该应用程序有许多角色,例如customeradmin 等。admin 可以创建、编辑和删除postcustomer只能评论post.

根据该描述,我认为 post 在这两种不同的上下文中应该有不同的方法。我应该为这 2 个角色创建 2 个目录并在每个目录中复制 post 吗?

非常感谢!

我不确定您是否需要区分不同角色的 post。在我的脑海中,它似乎具有潜在的实用性:

  • 将角色作为参数包含在对 post 的操作中,以便 post 可以拒绝客户对 edit/delete post.

  • 通过用户路由操作,验证其角色允许操作。

这些可以详细说明并可以合并。

有不同的域,有不同的限界上下文。

影响业务状态变化的核心领域只关心如何实现这些变化。它不太关心安全或访问控制。

您的 application/integration 层是网守,决定谁可以调用域中的内容。为此,您甚至可以使用另一个 Identity and Access Management (IAM) 有界上下文来管理授权。

举个例子,我喜欢用物理计算器来表示我的领域。我绝对可以访问计算器上的所有功能。计算器之外的东西需要确定我可以按哪些按钮。我希望这是有道理的。