【问题标题】:Can I put all Application Services to the front end in DDD?我可以将所有应用程序服务放在 DDD 中的前端吗?
【发布时间】:2019-03-05 06:00:00
【问题描述】:

正如我从有关领域驱动设计的一些文章中看到的,领域服务是为了确保领域的逻辑完整性,并且可能会为外部事物调用其他领域服务。

那么,我可以假设,在一个前后端分离的Web应用程序中,即使客户端不可信,只要域服务可以确保不会破坏任何业务规则,我可以将所有前端的应用服务?

如果答案是肯定的,那么将所有ApplicationService放在前端是否有助于减少服务器的负载并简化层次结构(因为前端本身需要一个服务层),因为没有Application服务器端的服务层?会不会有安全问题?

【问题讨论】:

    标签: domain-driven-design web-application-design


    【解决方案1】:

    您可以并且应该使应用层尽可能薄,并防止域模型泄漏到应用层。但是我不认为你可以从后端完全移除应用层,因为你至少需要有一些持久化逻辑。

    【讨论】:

    • 持久化逻辑应该在应用层吗?我是 ddd 的新手,对实现细节非常困惑。
    • 是的,所有基础架构问题(如持久性)都应该在域层之外,即应用层。
    • 根据这些文章 thereformedprogrammer.net/… thereformedprogrammer.net/… ,不需要存储库层,因为持久性逻辑可以由领域模型自己处理。
    • @Alsein 文章有异常观点。但大多数 DDD 参考书,如《领域驱动设计的模式、原则和实践》,强烈建议不要这样做,因为它违反了 DDD 的原则。域模型只是处理域逻辑,是 UL 的实现。里面不应该有任何技术问题。如果删除存储库层,您将在域层中插入持久性逻辑,这会降低后端的可维护性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    相关资源
    最近更新 更多