2009-06-30 10 views
72

मुझे एक लॉजिस्टिक एप्लिकेशन के लिए एक विस्तृत इंजीनियरिंग योजना लिखने के लिए काम पर रखा गया है जिसे हम किसी ग्राहक को प्रस्तावित करने के लिए कोडिंग कर रहे हैं। मुझे बताया गया है कि यह एक डेटा संचालित आवेदन है। किसी एप्लिकेशन के लिए "डेटा-संचालित" होने का क्या अर्थ है? विपरीत क्या है? मुझे इसके लिए कोई वास्तव में स्पष्ट उत्तर नहीं मिल रहा है, हालांकि वेब खोज करते समय मैं कई लोगों को अपने उदाहरण पोस्ट कर देख सकता हूं। किसी भी तरह की सहायता का स्वागत किया जाएगा।डेटा-संचालित प्रोग्रामिंग क्या है?

+2

सुंदर ज्यादा सब असली दुनिया जनसंपर्क ogramming डेटा संचालित है। –

+12

क्लासिक * यूनिक्स प्रोग्रामिंग की कला * इस विषय की अच्छी चर्चा है: http://homepage.cs.uri.edu/~thenry/resources/unix_art/ch09s01.html। मुख्य उद्धरण: "डेटा संचालित प्रोग्रामिंग में, डेटा केवल कुछ वस्तु की स्थिति नहीं है, बल्कि वास्तव में ** प्रोग्राम के नियंत्रण प्रवाह को परिभाषित करता है **।जहां ओओ में प्राथमिक चिंता encapsulation है, डेटा संचालित प्रोग्रामिंग में प्राथमिक चिंता ** ** जितना संभव हो सके छोटे फिक्स्ड कोड के रूप में लिख रहा है **। " – FMc

+2

एफएमसी का जवाब मेरे लिए सबसे अधिक समझदार स्पष्टीकरण है, और इसका जवाब होना चाहिए, लेकिन विस्तारित होना चाहिए –

उत्तर

74

डेटा संचालित progamming एक प्रोग्रामिंग मॉडल जहां डाटा ही कार्यक्रम और नहीं के प्रवाह को नियंत्रित करता है कार्यक्रम तर्क। यह एक ऐसा मॉडल है जहां आप कार्यक्रम में विभिन्न डेटा सेट की पेशकश करके प्रवाह को नियंत्रित करते हैं जहां प्रोग्राम तर्क प्रवाह या राज्य परिवर्तनों का कुछ सामान्य रूप है।

उदाहरण के लिए अगर आपके पास कार्यक्रम चार राज्यों है कि: उत्तर प्रदेश - नीचे - स्टॉप - स्टार्ट

आप इनपुट (डेटा) की पेशकश के द्वारा इस कार्यक्रम को नियंत्रित कर सकते है कि राज्यों का प्रतिनिधित्व करता है:

  • SET1: नीचे - रोकें - START - रोकें - उत्तर प्रदेश - बंद करो
  • SET2: उत्तर प्रदेश - नीचे - उत्तर प्रदेश - नीचे

प्रोग्राम कोड ही रहता है, लेकिन डेटा सेट (जो एक गतिशील इनपुट का नहीं है टाइप करें लेकिन कंप्यूटर को स्थिर रूप से दिया गया) प्रवाह को नियंत्रित करता है।

+1

प्रोग्रामिंग हिस्सा "लिख रहा है/प्रवाह या राज्य परिवर्तनों का सामान्य रूप ", क्या मैं सही हूँ? लेकिन मैं किसी भी भाषा में ऐसी" मशीन "लिख सकता हूं, और इसके बारे में कुछ भी असामान्य नहीं है, इसलिए मुझे वास्तव में कुछ भी नहीं मिला आपके उत्तर का शायद डेटा संचालित प्रोग्रामिंग तब होती है जब भाषा स्वयं या पुस्तकालय, ऐसी मशीनों को लिखना बहुत आसान बनाती है या बनाता है। या शायद परिभाषा यह है कि भाषा/लाइब्रेरी एक मशीन को एक घोषणात्मक तरीके से परिभाषित करती है, यानी प्रक्रियात्मक नहीं। –

+1

https://en.wikipedia.org/wiki/Data-driven_programming पर, वे उदाहरण के रूप में एडब्ल्यूके का उपयोग करते हैं। एडब्ल्यूके में दो चीजें प्रदान की जाती हैं, एक अभिव्यक्ति परिभाषित करती है कि डेटा के साथ क्या किया जाना चाहिए, और डेटा स्वयं ही। अभिव्यक्ति क्या है जिसे परिभाषित किया जाना चाहिए: 1) प्रोग्रामिंग, या 2) डेटा। यदि इसे डेटा माना जाता है, तो प्रोग्रामिंग एडब्ल्यूके की मशीन है, जो निश्चित रूप से एडब्ल्यूके के उदाहरण में स्थिर है। लेकिन अन्य संदर्भों में, उदाहरण के लिए यदि मशीन को कुछ पारंपरिक प्रक्रियात्मक तरीके से लिखना है, तो वह अकेला प्रोग्रामिंग हिस्सा है। –

40

"मुझे बताया गया है कि यह एक डेटा संचालित एप्लिकेशन है" - आपको यह पूछने की ज़रूरत है कि जो भी आपको बताए।

आप यहां कुछ व्यावहारिक उत्तर नहीं पढ़ना चाहते हैं और फिर पता लगाएं कि यह आपकी परियोजना के प्रभारी व्यक्ति के बिल्कुल नहीं है। वाक्यांश एक अस्पष्ट अर्थ होने के लिए बहुत अस्पष्ट है जो निश्चित रूप से आपके प्रोजेक्ट पर लागू होगा।

+7

मैं समझता हूं कि रिची का क्या मतलब है, और यह एक अच्छा मुद्दा है। हालांकि, मैं सोच रहा था कि "डेटा संचालित प्रोग्रामिंग" सॉफ़्टवेयर विकास उद्योग द्वारा ठोस रूप से मान्यता प्राप्त कुछ प्रकार का शब्द था। मैं यहां से कोई जवाब नहीं लेगा बस मेरे मालिक के साथ वापस जांच किए बिना चेहरे की कीमत पर। -धन्यवाद :) – jtbradle

+5

निश्चित - आपको यहां पूछने का अधिकार था। लेकिन मुझे लगता है कि जवाब यह है कि कोई सार्वभौमिक रूप से स्वीकृत परिभाषा नहीं है। – RichieHindle

1

कोई काम नहीं है जो इस प्रश्न के साथ आपकी मदद कर सकता है? यह देखने के लिए बहुत मुश्किल है कि आप बिना किसी उदाहरण के काम कर रहे हैं। लेकिन जो कुछ मैं इकट्ठा करता हूं उससे यह एक कार्यक्रम बनने जा रहा है कि वे मुख्य रूप से जानकारी दर्ज करते हैं। वह उस जानकारी को पुनर्प्राप्त और संपादित करने में सक्षम होगा जिसे ग्राहक को प्रबंधित करने की आवश्यकता है।

शुभकामनाएँ !!

0

मुझे लगता है कि दी गई सलाह खराब नहीं है, लेकिन मैंने हमेशा सोचा है कि डेटा ड्राइव डिजाइन आपके डोमेन ऑब्जेक्ट्स की नींव के रूप में मौजूदा या दिए गए डेटा संरचनाओं का उपयोग करके घूमता है।

  • विक्रेता
  • क्षेत्र
  • ग्राहकों
  • उत्पाद

तो, आपके आवेदन:

उदाहरण के लिए, क्लासिक विक्रेता प्रबंधन कार्यक्रम तालिकाओं के निम्नलिखित प्रकार संरचना हो सकता है एक सीधी एपीआई लेने के बजाय इन डेटा संरचनाओं के प्रबंधन के आसपास केंद्रित होगा जैसे तों बातें - आदि "बिक्री कर" ...

बस मेरी राय अन्य उत्तर का सुझाव के रूप में;)

4

यह लेख सबसे स्पष्ट रूप से मैं क्या समझ मतलब करने के लिए शब्द बताते हैं:

क्या है तालिका संचालित और डेटा संचालित प्रोग्रामिंग? http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=31

डेटा/टेबल संचालित प्रोग्रामिंग दुहराव बाँटे की तकनीक प्रोग्रामिंग डेटा में निर्माण करती है और एक परिवर्तन पैटर्न है। इस नए डेटा को इस फैशन में उपयोग किए जाने पर अक्सर purists द्वारा meta-data के रूप में संदर्भित किया जाता है।

39

हालांकि डेटा संचालित प्रोग्रामिंग के बारे में कुछ विचारों के अलावा, मुझे डेटा संरचना और फ़ंक्शन का उपयोग करके उदाहरण देने की अनुमति दी गई है।

गैर डेटा संचालित उदाहरण:

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 

पहले उदाहरण में निर्णय एक परिणाम दिखाने के लिए या अन्य कोड तर्क में है। अंतिम उदाहरण में आउटपुट को उस डेटा द्वारा निर्धारित किया जाता है जो फ़ंक्शन को पास किया जाता है और इसी कारण से हम कहते हैं कि आउटपुट डेटा द्वारा 'संचालित' होता है।

6

डेटा संचालित अनुप्रयोग है:

(1) अलग डेटा को स्वीकार नियमों का एक सेट प्रत्येक विशिष्ट डेटा सेट और परिणाम के रूप में परिणाम फेंकने

(2) कुछ पूर्व निर्धारित प्रक्रियाओं के लिए एक पूर्व निर्धारित निर्णय करने के लिए सेट जो परिणाम के आधार पर ट्रिगर किए जाते हैं।

परफेक्ट उदाहरण ifttt.com

आवेदन लेकिन नियमों कुछ भी नहीं है। यह क्या उपयोगी बनाता है वह डेटा जो इसके माध्यम से बह जाएगा।

5

डेटा संचालित विकास ऐसा कुछ है जो में कोड को संपादित करके प्रोग्राम के तर्क को बदलकर प्रोग्राम कर सकता है।

आप 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]); 
} 
संबंधित मुद्दे