什么是数据驱动编程?
我一直负责编写一个物stream应用程序的详细工程计划,我们正在编写这个计划,以便向客户提出build议。 我被告知这是一个数据驱动的应用程序。 对于一个应用程序来说,“数据驱动”是什么意思? 什么是相反的? 我似乎无法得到任何明确的答案,虽然在networkingsearch,我可以看到许多人张贴自己的例子。 任何帮助将不胜感激。
数据驱动编程是一种编程模型,数据本身控制程序的stream程,而不是程序逻辑。 这是一个模型,通过向程序提供不同的数据集来控制stream程,其中程序逻辑是一些通用forms的stream程或状态变化。
例如,如果您的程序有四个状态:UP – DOWN – STOP – START
您可以通过提供代表状态的input(数据)来控制该程序:
- set1:DOWN – STOP – START – STOP – UP – STOP
- set2:UP – DOWN – UP – DOWN
程序代码保持不变,但是数据集(不是dynamicinputtypes,但静态地给予计算机)控制stream程。
“我被告知这是一个数据驱动的应用程序” – 你需要问谁告诉你的。
你不想在这里看到一些合理的答案,然后发现你的项目的负责人根本不是什么意思。 这句话太含糊不清了,无疑具有明确的含义,肯定会适用于您的项目。
尽pipe关于什么是数据驱动编程有很多想法,但请允许我举一个使用数据结构和函数的例子。
非数据驱动的例子:
data_lloyd = {'name': 'Lloyd', 'lives': 'Alcoy } data_jason = {'name': 'Jason', 'lives': 'London' } go = function(x) if x.name == 'Lloyd' then print("Alcoy, Spain") else print("London, UK") end
数据驱动的例子:
data_lloyd = {'name': 'Lloyd', 'lives': function(){ print("Alcoy, Spain") } data_jason = {'name': 'Jason', 'lives': function(){ print("London, UK") } go = function(x) x.lives() end
在第一个例子中,显示一个结果或另一个结果的决定在代码逻辑中。 在最后一个例子中,输出是由传递给函数的数据决定的,因此我们说输出是由数据驱动的。
数据驱动应用程序是:
(1)接受不同数据集的一组规则,对每个特定数据集做出预定的决定,并将结果作为结果
(2)基于结果触发的一些预定过程。
完美的例子是ifttt.com
应用程序只有规则。 使它有用的是将通过它的数据。
这篇文章最清楚地解释了我所理解的术语:
什么是表驱动和数据驱动的编程? http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=31
数据/表驱动编程是将重复编程结构分解为数据和转换模式的技术。 纯粹主义者通常将这种新数据称为元数据 。
数据驱动的开发是通过编辑代码而不是编辑数据结构来改变程序逻辑的。
您可以在http://www.faqs.org/docs/artu/ch09s01.html上find关于数据驱动编程的更多信息;
程序编程
var data = { {do:'add',arg:{1,2}}, {do:'subtract',arg:{3,2}}, {do:'multiply',arg:{5,7}}, }; foreach(var item in data){ switch(item.do){ case 'add': console.log(item.arg[0] + item.arg[1]); break; case 'subtract': console.log(item.arg[0] - item.arg[1]); break; case 'multiply': console.log(item.arg[0] * item.arg[1]); break; } }
数据驱动的编程
var data = { {do:'+',arg:{1,2}}, {do:'-',arg:{3,2}}, {do:'*',arg:{5,7}}, }; foreach(var item in data){ console.log(eval (item.arg[0] + item.do + item.arg[1]); }
有没有人可以帮助你解决这个问题? 没有一个更好的例子,很难直观地看到你在做什么。 但从我所收集的信息来看,这将是一个主要将信息input的程序。 这将能够检索和编辑客户需要pipe理的信息。
祝你好运!
我认为给出的build议并不差,但我始终认为数据驱动devise围绕使用现有或给定的数据结构作为域对象的基础。
例如,传统的销售人员pipe理程序可能具有以下types的表结构:
- 售货员
- 地区
- 顾客
- 制品
所以,你的应用程序将围绕pipe理这些数据结构,而不是采取一些直接的API,如“出售”等。
只是我的意见作为其他答案的build议;)