微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

域驱动设计 – 可能的声明域模型(DDD)?

我正在寻找洞察力/论文/文章等,是否可以使用完全声明的域模型(根据DDD).

例如:

>验证可以是声明性的(很多ORM都这样做)
>业务流逻辑可以是声明性的:有一个DSL用于定义工作流/有限状态机/进程管理器/ DDD Saga(无论你想称之为什么)关于Crud操作,通过ddd-repositories最有可能
>决策逻辑可以是声明性的.即:大多数情况下,这归结为简单的条件
>派生/计算字段可以以声明方式完成,但有点棘手,尤其是当这个级联时.即:你必须在计算字段等上保留依赖图.仍然可以完成.

任何实际尝试过的人的链接,或者一些令人信服的争论 – 为什么不能这样做呢?

p.s.:请不要回答“是的,它可以完成,因为FSM是Turing-complete,有足够的内存bla bla”

解决方法

“如果你拿锤子,一切都是钉子”

不要问是否可能 – 问:
我想以声明方式做这件事的原因是什么?

声明性地进行数据验证是一件好事.你有一个DTO,你添加一些属性,一切都清晰可读.

业务流程以声明方式完成…相当于Windows Workflow Foundation的一大失败.是否有人正在使用它?
以声明方式创建以行为为中心的组件有什么好处?势在必行的方式似乎很适合这一点.
决策逻辑……也许吧.但又 – 为什么?

“派生/计算字段可以以声明方式完成,但有点棘手”
当有一种方法可以用简单的方法达到相同的结果时,你为什么要做棘手的事情呢?

好吗?
您是否需要通过编辑某个配置文件来更改运行时应用程序的行为?好的,去吧.

您是否有一个将被许多客户端使用的通用域,您需要进行一些重新配置以适应它们?好的,但是您需要清楚地区分域中不可更改的核心和不同的东西.不要试图让所有东西都可以配置 – 你最终会得到Inner Platform syndrome.

您是否相信自己可以使用声明性语言来更改其域名而无需程序员?不,你会失败的.我知道一种应该是这样的语言.普通会计师用来探索数据的简单的声明性语言.它叫做sql:D

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐