数据驱动与事件驱动的模型/架构?

时间:2017-02-11 10:34:11

标签: event-driven data-driven paradigms

我过去听过不同人的Data DrivenEvent Driven模型。我做谷歌但这些条款对我来说仍然含糊不清 他们看起来和我相似

数据驱动编程是一种编程模型,其中数据本身控制程序流程(而非程序逻辑),在事件驱动编程的情况下, 事件不是数据本身控制程序的流程。

每个我的理解事件也是数据。例如,在基于员工的Web应用程序中 - 如果用户单击“创建员工”按钮,则此处的事件是创建员工(也是仅一种数据),而数据是员工相关信息。

现在在服务器上,它将是决定程序流程的事件,然后数据(员工相关信息)也将控制执行流程,如果永久员工不同的方法将被执行,如果临时将是不同

因此,并非每件事都是数据驱动架构吗?如果没有什么区别呢?任何基于Web的示例都有帮助

2 个答案:

答案 0 :(得分:3)

  

数据本身控制程序的流程(而不是程序逻辑)

我想你并不完全明白在这种情况下什么是“流”。流程本身就是逻辑。例如,如果你正在执行某个方法,它执行A,然后是B,那么C到它的参数,逻辑将是“应用A,B,C”,如果将操作A,B,C提取为单独的,则流程将是相同的方法。所以,流和逻辑是同义词。

数据驱动编程表示存在一些通用代码。它不包含任何业务逻辑,也不控制流程。它只是一个读取和处理数据和输出结果的工具。控制流和逻辑的是数据本身。因此,如果您想要更改业务逻辑(从字面上改变程序的结果),您需要更改数据,而不是代码 而且,您的代码是一种根据输入数据执行命令的管道。你可以在javascript中考虑eval函数的代码。

事件驱动编程逻辑由事件控制。这意味着数据只是数据,所有业务规则都放在代码中。事件将携带一些数据,逻辑可以根据事件的数据进行更改,但这里的区别在于这些更改逻辑规则的位置 - 数据或代码;在EDP的情况下,逻辑在代码中。

另外,看看this问题,一些答案可以说明这个问题。

答案 1 :(得分:0)

上面的解释很贴切。为了补充上述答案,在数据驱动架构中,业务可以直接在数据表中输入逻辑,从而非常容易控制下游组件中的逻辑。喂食通常使用用户友好的工具完成。通常维护一个产品主文件,它由数据变量组成,并根据业务需求进行更新。与事件驱动相比,企业做到这一点非常容易,并且可以节省大量成本,后者业务需求的每一个微小变化都会导致开发-测试-部署软件的巨大成本。