web-dev-qa-db-fra.com

Qu'est-ce que la programmation basée sur les données?

J'ai été chargé au travail de rédiger un plan d'ingénierie détaillé pour une application logistique que nous codons pour proposer à un client. On m'a dit que c'est une application basée sur les données. Qu'est-ce que cela signifie pour une application d'être "pilotée par les données"? Quel est le contraire? Je n'arrive pas à obtenir une réponse vraiment claire à cela, bien que pendant la recherche sur le Web, je puisse voir beaucoup de gens poster leurs propres exemples. Toute aide serait grandement appréciée.

82
jtbradle

La programmation pilotée par les données est un modèle de programmation où les données elles-mêmes contrôlent le flux du programme et non la logique du programme. C'est un modèle où vous contrôlez le flux en offrant différents ensembles de données au programme où la logique du programme est une forme générique de flux ou de changements d'état.

Par exemple, si vous avez un programme qui a quatre états: UP - DOWN - STOP - START

Vous pouvez contrôler ce programme en offrant une entrée (données) qui représente les états:

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

Le code du programme reste le même mais l'ensemble de données (qui n'est pas d'un type d'entrée dynamique mais donné statiquement à l'ordinateur) contrôle le flux.

86
nojevive

Bien qu'il y ait plus que quelques idées sur ce qu'est la programmation basée sur les données, permettez-moi de donner un exemple en utilisant une structure de données et une fonction.

Exemple non piloté par les données:

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

Exemple basé sur les données:

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

Dans le premier exemple, la décision d'afficher un résultat ou l'autre est dans la logique du code. Dans le dernier exemple, la sortie est déterminée par les données transmises à la fonction et pour cette raison, nous disons que la sortie est "pilotée" par les données.

50
Lloyd Moore

"On m'a dit que c'est une application basée sur les données" - vous devez demander à celui qui vous l'a dit.

Vous ne voulez pas lire une réponse plausible ici et découvrir ensuite que ce n'est pas du tout ce que la personne en charge de votre projet voulait dire. La phrase est trop vague pour avoir une signification sans ambiguïté qui s'appliquera certainement à votre projet.

45
RichieHindle

Le développement piloté par les données est quelque chose que l'on peut apporter à la logique du programme en modifiant non pas le code mais la structure des données.

Vous pouvez trouver plus d'informations sur la programmation basée sur les données sur http://www.faqs.org/docs/artu/ch09s01.html

Programmation procédurale

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

Programmation pilotée par les données

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]);
}
13
Fuat Sayra ÖZDEN

L'application pilotée par les données est:

(1) un ensemble de règles acceptant différents ensembles de données pour prendre une décision prédéterminée pour chaque ensemble de données spécifique et lancer le résultat comme résultat

(2) quelques processus prédéterminés qui sont déclenchés en fonction du résultat.

Un exemple parfait est ifttt.com

L'application n'a que des règles. Ce qui le rend utile, ce sont les données qui le traversent.

7
Vivek

Cet article explique le plus clairement ce que je comprends que le terme signifie:

Qu'est-ce que la programmation pilotée par table et pilotée par les données? http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=31

La programmation pilotée par les données/tables est la technique de factorisation des constructions de programmation répétitives en données et en un modèle de transformation. Ces nouvelles données sont souvent désignées par les puristes comme métadonnées lorsqu'elles sont utilisées de cette façon.

4
Robert Harvey

Il n'y a personne au travail qui peut vous aider avec cette question? Il est très difficile de visualiser sans quoi vous travaillez sans un meilleur exemple. Mais d'après ce que je comprends, ce sera un programme dans lequel ils saisiront principalement des informations. Cela permettra de récupérer et de modifier les informations que le client doit gérer.

Bonne chance!!

1
Chris Bier

Je pense que les conseils donnés ne sont pas mauvais, mais j'ai toujours pensé que la conception pilotée par les données s'articule autour de l'utilisation de structures de données existantes ou données comme fondement de vos objets de domaine.

Par exemple, le programme de gestion de vendeur classique peut avoir la structure de types de tables suivante:

  • Vendeur
  • Région
  • Les clients
  • Des produits

Ainsi, votre application serait centrée sur la gestion de ces structures de données, au lieu de prendre une API simple qui fait des choses comme "faire de la vente" etc ...

Juste mon avis comme le suggèrent les autres réponses;)

0
cgp