web-dev-qa-db-de.com

Was ist datengetriebene Programmierung?

Bei der Arbeit wurde ich beauftragt, einen detaillierten Konstruktionsplan für eine Logistikanwendung zu erstellen, die wir codieren, um sie einem Kunden vorzuschlagen. Mir wurde gesagt, dass es sich um eine datengesteuerte Anwendung handelt. Was bedeutet es für eine Anwendung, "datengesteuert" zu sein? Was ist das gegenteil Ich kann keine wirklich klare Antwort darauf finden, obwohl ich während der Websuche viele Leute sehe, die ihre eigenen Beispiele posten. Jede Hilfe wäre sehr dankbar.

82
jtbradle

Datengesteuertes Programmieren ist ein Programmiermodell, bei dem die Daten selbst den Programmfluss und nicht die Programmlogik steuern. Es ist ein Modell, bei dem Sie den Ablauf steuern, indem Sie dem Programm verschiedene Datensätze anbieten, wobei die Programmlogik eine generische Form des Ablaufs oder von Zustandsänderungen ist.

Zum Beispiel, wenn Sie ein Programm mit vier Zuständen haben: AUF - AB - STOP - START

Sie können dieses Programm steuern, indem Sie Eingaben (Daten) anbieten, die die Zustände darstellen:

  • set1: AB - STOPP - START - STOPP - AUF - STOPP
  • set2: AUF - AB - AUF - AB

Der Programmcode bleibt gleich, aber der Datensatz (der keinen dynamischen Eingabetyp hat, sondern dem Computer statisch übergeben wird) steuert den Fluss.

86
nojevive

Obwohl es nicht nur einige Ideen dazu gibt, was datengetriebene Programmierung ist, möchte ich ein Beispiel mit einer Datenstruktur und einer Funktion geben.

Nicht datengetriebenes Beispiel:

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

Datengetriebenes Beispiel:

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

Im ersten Beispiel befindet sich die Entscheidung, das eine oder das andere Ergebnis anzuzeigen, in der Codelogik. Im letzten Beispiel wird die Ausgabe von den Daten bestimmt, die an die Funktion übergeben werden. Aus diesem Grund wird die Ausgabe von den Daten "gesteuert".

50
Lloyd Moore

"Mir wurde gesagt, dass es sich um eine datengesteuerte Anwendung handelt" - Sie müssen fragen, wer Ihnen das gesagt hat.

Sie möchten hier keine plausible Antwort lesen und dann herausfinden, dass es überhaupt nicht das ist, was die für Ihr Projekt verantwortliche Person gemeint hat. Der Satz ist zu vage, um eine eindeutige Bedeutung zu haben, die definitiv für Ihr Projekt gilt.

45
RichieHindle

Datengetriebene Entwicklung ist etwas, das man an der Logik des Programms ändern kann, indem man nicht den Code, sondern die Datenstruktur bearbeitet.

Weitere Informationen zur datengesteuerten Programmierung finden Sie unter http://www.faqs.org/docs/artu/ch09s01.html

Prozedurale Programmierung

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

Datengesteuerte Programmierung

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

Datengesteuerte Anwendung ist:

(1) eine Reihe von Regeln, die unterschiedliche Datensätze akzeptieren, um eine vorbestimmte Entscheidung für jeden spezifischen Datensatz zu treffen und als Ergebnis ein Ergebnis zu erzielen

(2) einige vorbestimmte Prozesse, die basierend auf dem Ergebnis ausgelöst werden.

Perfektes Beispiel ist ifttt.com

Die Anwendung hat nichts als Regeln. Was es nützlich macht, sind die Daten, die durch es fließen.

7
Vivek

Dieser Artikel erklärt am deutlichsten, was ich unter dem Begriff verstehe:

Was ist tabellengesteuerte und datengesteuerte Programmierung? http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=31

Daten-/tabellengesteuerte Programmierung ist die Technik, bei der sich wiederholende Programmierkonstrukte in Daten und ein Transformationsmuster zerlegt werden. Diese neuen Daten werden von Puristen häufig als Metadaten bezeichnet, wenn sie auf diese Weise verwendet werden.

4
Robert Harvey

Es ist niemand bei der Arbeit, der Ihnen bei dieser Frage helfen kann? Es ist sehr schwer zu visualisieren, ohne was Sie arbeiten, ohne ein größeres Beispiel. Aber was ich erfahre, ist ein Programm, in das sie hauptsächlich Informationen eingeben. Auf diese Weise können Informationen abgerufen und bearbeitet werden, die der Kunde verwalten muss.

Viel Glück!!

1
Chris Bier

Ich denke, die gegebenen Ratschläge sind nicht schlecht, aber ich habe immer daran gedacht, dass sich Data Driven Design darum dreht, vorhandene oder vorgegebene Datenstrukturen als Grundlage für Ihre Domain-Objekte zu verwenden.

Beispielsweise könnte das klassische Verkäufer-Verwaltungsprogramm die folgende Typstruktur von Tabellen haben:

  • Verkäufer
  • Region
  • Kunden
  • Produkte

Ihre Anwendung würde sich also auf die Verwaltung dieser Datenstrukturen konzentrieren, anstatt eine direkte API zu verwenden, die Dinge wie "Make Sale" usw. ausführt.

Nur meine Meinung wie die anderen Antworten vermuten lassen;)

0
cgp