2009-06-30 11 views
72

Me han encargado en el trabajo que escriba un plan de ingeniería detallado para una aplicación de logística que estamos codificando para proponerle a un cliente. Me han dicho que es una aplicación basada en datos. ¿Qué significa para una aplicación ser "impulsada por datos"? ¿Cual es lo opuesto? Parece que no puedo obtener una respuesta clara para esto, aunque mientras busco en la web puedo ver a muchas personas publicando sus propios ejemplos. Cualquier ayuda sería muy apreciada.¿Qué es la programación basada en datos?

+2

Prácticamente todas mundo real pr la programación está basada en datos. –

+12

El clásico * El arte de la programación Unix * tiene una buena discusión sobre este tema: http://homepage.cs.uri.edu/~thenry/resources/unix_art/ch09s01.html. Cita clave: "En la programación basada en datos, los datos no son simplemente el estado de algún objeto, sino que ** definen el flujo de control del programa **.Donde la principal preocupación en OO es la encapsulación, la principal preocupación en la programación basada en datos es ** escribir el código mínimo posible **. " – FMc

+2

La respuesta de FMc es para mí la explicación más convincente, y debería ser una respuesta, pero elaborada –

Respuesta

74

basadas en datos es un modelo de programación, donde los datos en sí controla el flujo del programa y no el lógica de programa. Es un modelo donde se controla el flujo al ofrecer diferentes conjuntos de datos para el programa donde la lógica del programa es una forma genérica de flujo o de cambios de estado.

Por ejemplo, si tiene programa que tiene cuatro estados: ARRIBA - ABAJO - PARADA - START

Puede controlar este programa ofreciendo de entrada (datos) que representa los estados:

  • set1: ABAJO - PARADA - START - STOP - UP - STOP
  • set2: ARRIBA - ABAJO - ARRIBA - ABAJO

el código del programa sigue siendo el mismo, pero conjunto de datos (que no es de una entrada dinámica tipo, pero estático para la computadora) controla el flujo.

+1

La parte de programación es escribir/definir el " forma genérica de flujo o de cambios de estado ", ¿estoy en lo cierto? Pero puedo escribir esa" máquina "en cualquier idioma, y ​​no hay nada inusual en eso, así que realmente no entiendo nada de tu respuesta. Tal vez la programación basada en datos se produce cuando el lenguaje en sí o una biblioteca alienta o hace que sea muy fácil escribir tales máquinas. O tal vez la definición es que el lenguaje/biblioteca permite definir las máquinas de manera declarativa, es decir, no de procedimiento. –

+1

En https://en.wikipedia.org/wiki/Data-driven_programming, usan AWK como ejemplo. En AWK se proporcionan dos cosas, una expresión que define qué hacer con los datos y los datos en sí. ¿Cuál es la expresión que define qué pasar se considera que es: 1) la programación, o 2) datos. Si se consideran datos, entonces la programación es la propia máquina de AWK, que por supuesto en el ejemplo de AWK es estática. Pero en otros contextos, por ejemplo, si escribir la máquina en sí de alguna manera tradicional de procedimiento, eso solo es la parte de programación. –

40

"Me han dicho que se trata de una aplicación basada en datos": debe preguntarle a quien le haya dicho eso.

No desea leer alguna respuesta plausible aquí y luego descubrir que no es para nada lo que la persona a cargo de su proyecto significó. La frase es demasiado vaga para tener un significado inequívoco que definitivamente se aplicará a su proyecto.

+7

Entiendo lo que quiere decir Richie, y ese es un buen punto. Sin embargo, me preguntaba si la "programación basada en datos" era algún tipo de término concretamente reconocido por la industria del desarrollo de software. No responderé de aquí. simplemente al valor nominal aquí sin consultar con mi jefe. -Gracias :) – jtbradle

+5

Claro, estuvo en lo correcto al preguntar aquí. Pero creo que la respuesta es que no hay una definición universalmente aceptada. – RichieHindle

1

¿No hay nadie en el trabajo que pueda ayudarlo con esta pregunta? Es muy difícil visualizar lo que está trabajando sin un mayor ejemplo. Pero por lo que veo, va a ser un programa en el que principalmente ingresen información. Eso podrá recuperar y editar la información que el cliente necesita para administrar.

Best of luck !!

0

Creo que los consejos dados no son malos, pero siempre he pensado que Data Driven Design gira en torno al uso de estructuras de datos existentes o dadas como base para los objetos de tu dominio.

Por ejemplo, el programa de gestión clásico vendedor podría tener la siguiente estructura de tipo de tablas:

  • Vendedor
  • Región
  • clientes
  • productos

lo tanto, su aplicación se centraría en la gestión de estas estructuras de datos, en lugar de tomar una API recta que haga ES cosas como - "hacer la venta", etc ...

sólo mi opinión que las otras respuestas sugieren; programación)

4

En este artículo se explica con mayor claridad lo que tengo entendido el término en el sentido de:

¿Cuál es basada en tablas y programación basada en datos? http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=31

datos de programación/Tabla-Driven es la técnica de factorizar repetitivo programación construye en datos y un patrón transformación. Estos nuevos datos a menudo se denominan puristas como meta-data cuando se utilizan de esta manera.

39

Aunque hay más que unas pocas ideas sobre qué es la programación basada en datos, permítame dar un ejemplo usando una estructura de datos y una función.

datos de ejemplo para no accionadas:

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 

datos de ejemplo: impulsado

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

En el primer ejemplo, la decisión de mostrar un resultado o el otro está en la lógica del código. En el último ejemplo, la salida está determinada por los datos que se pasan a la función y por eso decimos que la salida es 'impulsada' por los datos.

6

de datos impulsada aplicación es:

(1) un conjunto de reglas que aceptan diferentes conjuntos de datos para tomar una decisión predeterminada para cada dato específicos establecidos y lanzando resultado como consecuencia

(2) unos procesos predeterminados que se activan en función del resultado.

ejemplo perfecto es ifttt.com

La aplicación no tiene nada pero las reglas. Lo que lo hace útil es la información que fluirá a través de él.

5

de datos de desarrollo impulsado es algo que uno puede hacer cambios en el lógica del programa mediante la edición no el código, pero la estructura de datos.

Usted puede encontrar más información acerca de la programación basada en datos de http://www.faqs.org/docs/artu/ch09s01.html

programación de procedimiento

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

de datos orientado a programación

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