具有不同角色的领域驱动设计
Domain-Driven Design with different roles
我是 DDD 新手。我想构建一个实现 DDD 的应用程序,但我对角色有疑问。
该应用程序有许多角色,例如customer
、admin
等。admin
可以创建、编辑和删除post
。 customer
只能评论post
.
根据该描述,我认为 post
在这两种不同的上下文中应该有不同的方法。我应该为这 2 个角色创建 2 个目录并在每个目录中复制 post
吗?
非常感谢!
我不确定您是否需要区分不同角色的 post。在我的脑海中,它似乎具有潜在的实用性:
将角色作为参数包含在对 post 的操作中,以便 post 可以拒绝客户对 edit/delete post.
通过用户路由操作,验证其角色允许操作。
这些可以详细说明并可以合并。
有不同的域,有不同的限界上下文。
影响业务状态变化的核心领域只关心如何实现这些变化。它不太关心安全或访问控制。
您的 application/integration 层是网守,决定谁可以调用域中的内容。为此,您甚至可以使用另一个 Identity and Access Management (IAM) 有界上下文来管理授权。
举个例子,我喜欢用物理计算器来表示我的领域。我绝对可以访问计算器上的所有功能。计算器之外的东西需要确定我可以按哪些按钮。我希望这是有道理的。
我是 DDD 新手。我想构建一个实现 DDD 的应用程序,但我对角色有疑问。
该应用程序有许多角色,例如customer
、admin
等。admin
可以创建、编辑和删除post
。 customer
只能评论post
.
根据该描述,我认为 post
在这两种不同的上下文中应该有不同的方法。我应该为这 2 个角色创建 2 个目录并在每个目录中复制 post
吗?
非常感谢!
我不确定您是否需要区分不同角色的 post。在我的脑海中,它似乎具有潜在的实用性:
将角色作为参数包含在对 post 的操作中,以便 post 可以拒绝客户对 edit/delete post.
通过用户路由操作,验证其角色允许操作。
这些可以详细说明并可以合并。
有不同的域,有不同的限界上下文。
影响业务状态变化的核心领域只关心如何实现这些变化。它不太关心安全或访问控制。
您的 application/integration 层是网守,决定谁可以调用域中的内容。为此,您甚至可以使用另一个 Identity and Access Management (IAM) 有界上下文来管理授权。
举个例子,我喜欢用物理计算器来表示我的领域。我绝对可以访问计算器上的所有功能。计算器之外的东西需要确定我可以按哪些按钮。我希望这是有道理的。