什么是数据驱动编程?

时间:2009-06-30 19:39:22

标签: data-driven

我的工作任务是为物流应用程序编写详细的工程计划,我们正在为客户提供建议。我被告知这是一个数据驱动的应用程序。应用程序“数据驱动”意味着什么?相反的是什么?我似乎无法得到任何非常明确的答案,尽管在网络搜索时我可以看到很多人发布他们自己的例子。任何帮助将不胜感激。

8 个答案:

答案 0 :(得分:85)

数据驱动程序编程是一种编程模型,其中数据本身控制程序的流程而不是程序逻辑。它是一个模型,通过向程序提供不同的数据集来控制流程,程序逻辑是流程或状态变化的一般形式。

例如,如果您的程序有四种状态:UP - DOWN - STOP - START

您可以通过提供代表状态的输入(数据)来控制此程序:

  • set1:DOWN - STOP - START - STOP - UP - STOP
  • set2:UP - DOWN - UP - DOWN

程序代码保持不变,但数据集(不是动态输入类型,但静态地给予计算机)控制流程。

答案 1 :(得分:49)

虽然关于什么是数据驱动编程有很多想法,但请允许我举一个使用数据结构和函数的例子。

非数据驱动示例:

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

在第一个示例中,显示一个结果或另一个结果的决定是在代码逻辑中。 在最后一个例子中,输出是由传递给函数的数据决定的,因此我们说输出是由数据“驱动”的。

答案 2 :(得分:45)

“我被告知这是一个数据驱动的应用程序” - 你需要问问谁告诉你。

你不想在这里阅读一些看似合理的答案,然后发现根本不是你项目负责人的意思。这句话过于模糊,没有明确的含义,肯定会适用于你的项目。

答案 3 :(得分:11)

  

数据驱动开发是人们可以对其进行更改的东西   程序的逻辑不是编辑代码而是编辑数据结构。

您可以在http://www.faqs.org/docs/artu/ch09s01.html

上找到有关数据驱动编程的更多信息

程序编程

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]);
}

答案 4 :(得分:7)

数据驱动的应用程序是:

(1)一组接受不同数据集的规则,以便为每个特定数据集做出预定决定并将结果抛出结果

(2)基于结果触发的一些预定过程。

完美的例子是ifttt.com

该应用程序只有规则。 它有用的是流经它的数据。

答案 5 :(得分:4)

本文最清楚地解释了我理解的术语:

什么是表驱动和数据驱动编程? http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=31

  

数据/表驱动编程就是这样   分解重复的技术   编程构造成数据和a   转型模式。这个新数据   纯粹主义者经常称之为   meta-data以这种方式使用时。

答案 6 :(得分:1)

工作中没有人可以帮助您解决这个问题?没有更好的例子,很难想象你正在做什么。但是从我收集的内容来看,它将成为一个主要将信息输入的程序。这将能够检索和编辑客户需要管理的信息。

祝你好运!!

答案 7 :(得分:0)

我认为给出的建议并不差,但我一直认为数据驱动设计围绕着使用现有或给定的数据结构作为域对象的基础。

例如,经典的销售人员管理程序可能具有以下表格类型结构:

  • 销售员
  • 地区
  • 客户
  • 产品

因此,您的应用程序将以管理这些数据结构为中心,而不是采用直接的API来执行诸如“制作销售”等等......

我的意见正如其他答案所暗示的那样;)