【发布时间】:2017-02-09 22:29:22
【问题描述】:
我对如何在实际项目中使用 DDD 方法有一些疑问。粗略地说,在我的应用程序中,我有两种类型的操作:简单的 CRUD 操作,非常简单,只需在 DB 中创建或更新记录,不需要很多业务逻辑和一些需要它的操作。 对于这两种类型的操作,我都使用服务来避免某种“不对称”,但对于 CRUD 操作,它看起来像是开销,因为我只是将 save() 方法包装在服务方法中并且它没有添加任何逻辑。
那么根据您的经验,在控制器中进行简单 (CRUD) 操作或将其放入服务中的最佳方法是什么,或者您可能有其他想法?
【问题讨论】:
-
您是否确定了有界上下文、聚合?你提到 DDD 是什么意思?
-
对于 CRUD 架构,您应该使事情尽可能简单,不要有很多不必要的层。对于其他更复杂的情况,您可以应用 DDD:识别有界上下文、聚合、实体、值对象。根据复杂性和业务需求(可扩展性、可维护性、用户数量等),您可以选择高级架构(即洋葱架构/端口和适配器)和低级架构(即 CQRS)
-
DDD 是一种处理复杂域的方法。在你的情况下,它听起来不像你需要它。查看 Vaughn Vernon 的记分卡:informit.com/articles/article.aspx?p=1944876&seqNum=2
-
我有复杂的逻辑,但不是在应用程序的所有部分
-
对于复杂的逻辑部分,我会检查 Vaughn Vernon 的记分卡。
标签: architecture domain-driven-design