What is data-driven programming?

假如想象 提交于 2019-11-27 06:28:35

Data driven progamming is a programming model where the data itself controls the flow of the program and not the program logic. It is a model where you control the flow by offering different data sets to the program where the program logic is some generic form of flow or of state-changes.

For example if you have program that has four states: UP - DOWN - STOP - START

You can control this program by offering input (data) that represents the states:

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

The program code stays the same but data set (which is not of a dynamic input type but statically given to the computer) controls the flow.

Lloyd Moore

Although there are more than a few ideas as to what data driven programming is, allow me to give an example using a data structure and a function.

Non data driven example:

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 driven example:

data_lloyd = {'name': 'Lloyd', 'lives': function(){ print("Alcoy, Spain") }
data_jason = {'name': 'Jason', 'lives': function(){ print("London, UK") }
go = function(x)
    x.lives()
end

In the first example the decision to show one result or the other is in the code logic. In the last example the output is determined by the data that is passed to the function and for that reason we say the output is 'driven' by the data.

"I have been told that it is a data-driven application" - you need to ask whoever told you that.

You don't want to read some plausible answer here and then find out that it's not at all what the person in charge of your project meant. The phrase is too vague to have an unambiguous meaning that will definitely apply to your project.

Data driven development is something that one can make changes to the logic of the program by editing not the code but the data structure.

You might find more information about data-driven programming on http://www.faqs.org/docs/artu/ch09s01.html

Procedural Programming

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

Data Driven Programming

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

Data driven application is:

(1) a set of rules accepting different data sets to make a predetermined decision for each specific data set and throwing outcome as result

(2) a few predetermined processes that are triggered based on the outcome.

Perfect example is ifttt.com

The application has nothing but rules. What makes it useful is the data that will flow through it.

This article explains most clearly what I understand the term to mean:

What is Table-Driven and Data-Driven Programming? http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=31

Data/Table-Driven programming is the technique of factoring repetitious programming constructs into data and a transformation pattern. This new data is often referred to by purists as meta-data when used in this fashion.

There is no one at work that can help you with this question? It is very hard to visualize what you are working without without a greater example. But from what I gather it is going to be a program that they primarily enter information into. That will be able to retrieve and edit information that the customer needs to manage.

Best of luck!!

cgp

I think the advice given isn't bad, but I've always thought of Data Driven Design revolves around using existing or given data structures as the foundation for your domain objects.

For instance, the classic salesperson management program might have the following type structure of tables:

  • Salesperson
  • Region
  • Customers
  • Products

So, your application would be centered around managing these data structures, instead of taking a straight API which does things like - "make sale" etc...

Just my opinion as the other answers suggest ;)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!