例如:
>验证可以是声明性的(很多ORM都这样做)
>业务流逻辑可以是声明性的:有一个DSL用于定义工作流/有限状态机/进程管理器/ DDD Saga(无论你想称之为什么)关于Crud操作,通过ddd-repositories最有可能
>决策逻辑可以是声明性的.即:大多数情况下,这归结为简单的条件
>派生/计算字段可以以声明方式完成,但有点棘手,尤其是当这个级联时.即:你必须在计算字段等上保留依赖图.仍然可以完成.
任何实际尝试过的人的链接,或者一些令人信服的争论 – 为什么不能这样做呢?
p.s.:请不要回答“是的,它可以完成,因为FSM是Turing-complete,有足够的内存bla bla”
“如果你拿锤子,一切都是钉子”不要问是否可能 – 问:
我想以声明方式做这件事的原因是什么?
声明性地进行数据验证是一件好事.你有一个DTO,你添加一些属性,一切都清晰可读.
业务流程以声明方式完成…相当于Windows Workflow Foundation的一大失败.是否有人正在使用它?
以声明方式创建以行为为中心的组件有什么好处?势在必行的方式似乎很适合这一点.
决策逻辑……也许吧.但又 – 为什么?
“派生/计算字段可以以声明方式完成,但有点棘手”
当有一种方法可以用简单的方法达到相同的结果时,你为什么要做棘手的事情呢?
好吗?
您是否需要通过编辑某个配置文件来更改运行时应用程序的行为?好的,去吧.
您是否有一个将被许多客户端使用的通用域,您需要进行一些重新配置以适应它们?好的,但是您需要清楚地区分域中不可更改的核心和不同的东西.不要试图让所有东西都可以配置 – 你最终会得到Inner Platform syndrome.
您是否相信自己可以使用声明性语言来更改其域名而无需程序员?不,你会失败的.我知道一种应该是这样的语言.普通会计师用来探索数据的简单的声明性语言.它叫做SQL:D