सवाल क्या डीडीडी समय बर्बाद है? [बन्द है]


गुगलिंग "डीडीडी किस तरह के अनुप्रयोगों के लिए उपयुक्त है?" मुझे निम्नलिखित जवाब दिया:

संभवतः सभी सॉफ्टवेयर अनुप्रयोगों में से 9 5% "डीडीडी का उपयोग करने के लिए इतना अच्छा नहीं" श्रेणियों में आते हैं। (देख लेख)

तो क्या सब झगड़ा है?!

जिस आवेदन पर मैं काम कर रहा हूं वह है में मुख्य डेटा केंद्रित है लेकिन अभी भी कुछ व्यावसायिक तर्क और नियम लागू किए जाने हैं। क्या डीडीडी तकनीकों को लागू करने के लिए समय बर्बाद हो जाएगा? क्या मैं अधिक पारंपरिक डेटा एक्सेस लेयर, पीओसीओ का एक मॉडल और बिजनेस लॉजिक लेयर का उपयोग कर बेहतर हूं? या इसे अलग-अलग बताएं - डीडीडी के लिए एक अच्छा विकल्प क्या है?


44
2018-05-01 08:11


मूल


चैट के लिए यह एक अच्छा विषय हो सकता है। - Trilarion


जवाब:


कई डेवलपर्स जो सोचते हैं कि डीडीडी उनके प्रोजेक्ट के लिए उपयोगी है, वे जाल में पड़ते हैं, जो उन्हें लगता है कि उनके काम के बारे में क्या है, कोड लिखना है। यह मामला नहीं है। एक डेवलपर का काम कार्यक्षमता को साकार करने के बारे में है, इसलिए सॉफ़्टवेयर के माध्यम से समस्या हल हो सकती है। इसका निष्कर्ष इस निष्कर्ष में होता है कि कोड लिखना एक डेवलपर क्या कर रहा है, इसकी शुरुआत नहीं है, लेकिन अंत: कोड वास्तव में लिखा जाने से पहले पूरी प्रक्रिया का परिणाम है।

डीडीडी कोड लिखने के बारे में नहीं है, यह महान सॉफ्टवेयर प्राप्त करने के लिए एक टर्न-कुंजी 10-चरणीय प्रक्रिया नहीं है, यह पूरी प्रक्रिया के बारे में है कोड से पहले लिखा गया है, यह इस बारे में अंतर्दृष्टि प्राप्त करने के बारे में है कि समस्या क्या है, क्या / कौन भाग लेता है जिसमें सूचना धाराएं और ये तत्व कैसा दिखते हैं, वे एक दूसरे से कैसे संबंधित हैं आदि। वास्तव में, डीडीडी का सबसे महत्वपूर्ण हिस्सा है एक ऐसी भाषा बनाना जो डोमेन विशेषज्ञों और डेवलपर्स के बीच बातचीत को गलत व्याख्या के बिना संभव बनाता है। यह 'सर्वव्यापी भाषा' इवांस के बारे में बात करता है। यह प्रभाव पूरी प्रक्रिया बनाता है इससे पहले कोड को एक ऐसी प्रक्रिया लिखी जाती है जो अनुमान लगाने के लिए बहुत कम छोड़ देती है, चीजें स्पष्ट और सीधे आगे होती हैं। (वह लक्ष्य है)।

'डीडीडी अभ्यास में कैसे काम करता है' और 'क्या कोई मुझे उदाहरण दे सकता है कि मैं डीडीडी के साथ कोड कैसे लिखूं?' और वास्तव में इस तथ्य से आ रहा है कि इस तरह के प्रश्न पूछने वाले लोग लेखन कोड पर ध्यान केंद्रित करते हैं, लेकिन उन्हें पता नहीं है कि वे कोड क्यों लिख रहे हैं और अन्य कोड नहीं। Io.w .: यदि आपको एहसास है कि डीडीडी यह जानने के बारे में है कि आपको कार्यक्षमता के रूप में क्या लिखना है और क्यों, चीजें जगह में आती हैं। आप उस कोड को कैसे लिख रहे हैं, यह आपके ऊपर है। लेकिन जैसा कि कहा गया: अब यह सबसे बड़ी समस्या नहीं है, क्योंकि आप पहले ही जानते हैं कि आपको क्या लिखना है और क्यों।


97
2018-05-01 08:34



यह कोड लिखने का एक तरीका नहीं, सोचने का एक तरीका है। डोमेन के बारे में सोचने से आपके डिज़ाइन को चलाया जाता है, जिसके परिणामस्वरूप कोड कुछ भी हो सकता है। कुछ लोग कोड में सोचने की गलती करते हैं और सोच, डोमेन उन्मुख डिजाइन के बारे में भूल जाते हैं। - Frans Bouma
डीडीडी के लाभों का उत्कृष्ट वर्णन +1। मुझे लगता है कि इसे "एक ऐसी भाषा बनाने के रूप में समझाया जा सकता है जो बिना किसी गलत व्याख्या के डोमेन विशेषज्ञों और डेवलपर्स के बीच वार्तालाप करता है।" - Robert Harvey♦
खैर, विकिपीडिया डीडीडी को काफी कोड-केंद्रित तरीके से परिभाषित कर रहा है, या कम से कम कुछ डीडीडी-विशिष्ट कोड डिजाइन पैटर्न के उपयोग पर जोर दे रहा है ... - alchemical
@LuftMensch: ये अच्छी तरह से आपकी गलती सोच रही है कि विकिपीडिया एक निश्चित संसाधन है - Matt Kocaj
यह चारों ओर सबसे बड़ा सहयोगी संकलनों में से एक है, कोई भी इसे संपादित कर सकता है ... यदि वहां है तो कम से कम इसका मतलब है कि ज्यादातर लोग / बहुत से लोग कुछ समझ रहे हैं ... असल में ज्यादातर लोग डीडीडी को व्यवसाय को समझने के रूप में नहीं देखते हैं - यह कुछ है जो हमें हमेशा करने की ज़रूरत है। प्रैक्टिस में, ऐसा लगता है कि + सभी वस्तुओं के लिए कस्टम स्टोरेज ऑब्जेक्ट्स के लिए डेटाटेबल्स का आदान-प्रदान ... और रिपॉजिटरीज और कारखानों को उन ऑब्जेक्ट्स को प्रबंधित और बनाने के लिए ... फिर आपके पास अक्सर कई वस्तुएं उड़ती हैं- इसलिए सबसे अच्छा इन पैटर्न को केवल तभी लागू करें जहां वे वास्तव में उपयोगी हों। - alchemical


यहां एक बहुत ही समान प्रश्न है: क्या आप वेब टियर को सीधे डीएएल तक पहुंचने की अनुमति देते हैं?

मैं अपनी सभी परियोजनाओं के लिए डीडीडी का उपयोग करता हूं। छोटे अनुप्रयोगों पर कुछ अवधारणाएं लागू नहीं होती हैं, लेकिन मुझे लगता है कि आकार के बावजूद सभी परियोजनाओं पर कई पहलू लागू होते हैं।


7
2018-05-01 08:25



सहमत- छोटी परियोजनाओं को हर चीज की आवश्यकता नहीं हो सकती है - असल में कुछ छोटी परियोजनाओं को दूसरों की तुलना में अलग-अलग चीजों की आवश्यकता हो सकती है। - Preet Sangha
ठीक है, एमयू प्रोजेक्ट का आकार काफी बड़ा है ... क्या आपको लगता है कि डेटा केंद्रित होने पर डीडी मदद से ज्यादा नुकसान पहुंचाएगा? - JacobE


आप जानते हैं, कभी-कभी 5% अन्य सभी 95% से अधिक पैसे कमाते हैं - यही कारण है कि डीडीडी मौजूद है।

यह विशिष्ट जटिल बड़ी प्रणाली के लिए है।


6
2018-05-01 08:14



विकल्प क्या है? - JacobE
हमेशा नहीं ... एक "पैसा" डोमेन अपेक्षाकृत छोटी प्रणाली है जो डीडीडी से लाभान्वित होता है, और अक्सर छोटे में डीडीडी की अवधारणा को प्रदर्शित करने के लिए प्रयोग किया जाता है। - JasonTrue
@ जेसनट्रू: एक उद्यम प्रणाली को वैचारिक अर्थ में पैसे के साथ कुछ भी करने की ज़रूरत नहीं है। - UpTheCreek
मैं सिर्फ "पैसा" दोहराकर प्यारा था, क्योंकि मेरा मुद्दा यह था कि छोटे सिस्टम हैं जो डीडीडी से लाभान्वित होते हैं, न केवल बड़े, जटिल वाले। - JasonTrue


क्षमा करें, लेकिन अगर डीडीडी फ़्रांस बोमा कहता है तो सोचने का एक तरीका था, तो यह दृढ़ता अज्ञानता जैसी चीजों की सिफारिश नहीं करेगा। यह दूसरों को कुछ हद तक डेवलपर्स के रूप में खारिज कर रहा है।

पीआई, जिसके लिए डीडीडी कम से कम एक पूर्वाग्रह है, एक वास्तुकला पसंद है। यह अब सोचने का एक तरीका नहीं है; यह पहले से ही आपके लिए कुछ किया जा रहा है, अधिकांश समय के साथ किसी भी प्रयोग के लिए अस्पष्ट चेतावनी: "सब कुछ के लिए उपयुक्त नहीं है"।

लेकिन पीआई रास्ता जाने का फैसला करना या नहीं, अपने आप में एक चुनौती है, और यदि आप इस बारे में असहज महसूस करते हैं तो आप किसी को नाम नहीं दे सकते ("एक कोडर")।

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

इस पर धार्मिक नहीं होना चाहते हैं। डीडीडी और डीएएल समर्थक अत्यधिक धार्मिक होते हैं और उन लोगों को दूर कर सकते हैं जिन्हें एक बार काटा गया है लेकिन खुले दिमाग में कौन हैं। बहुत से लोग वास्तविक जीवन के अनुभवों (यानी सोचते हैं) का सामना करना चाहते हैं, और प्रचार का समर्थन करने के लिए केवल बिल्लियों, कारों, और मूल आदेश / आदेश इत्यादि (यानी गरीब कोड) के साथ सेवा नहीं करते हैं।


6
2018-04-22 10:59





डीडीडी सॉफ्टवेयर के बारे में है जो थोड़ी देर के लिए बनाए रखा जाएगा। मेरे लिए इसका मतलब है कि इसे विचारों को व्यक्त करने की आवश्यकता है जो डोमेन के साथ बदल जाएंगे। निश्चित रूप से एक सरल ऐप एक लघु वितरण समय और लघु कार्यान्वयन के समय के लिए सही हो सकता है। हालांकि यदि आपको सॉफ़्टवेयर विकसित करने की आवश्यकता है तो डीडीडी सिद्धांतों में अत्यधिक मदद मिलेगी। डीडीडी आगे बढ़ सकता है लेकिन एक बार जब आप सर्वव्यापी भाषा और अलगाव चिंताओं का विचार प्राप्त कर लेते हैं तो चीजें आसान हो जाती हैं।


5
2018-05-01 08:33





यदि आप लेख को थोड़ा और पढ़ते हैं, तो आप इसे देखते हैं:

5% अनुप्रयोगों के लिए जहां डीडीडी   एक अच्छा फिट है, यह एक बहुत अच्छा फिट है।   उन स्थितियों के लिए, डीडीडी मदद करेगा   आप एक बहुत कठिन अखरोट दरारें। यहां, डीडीडी   उसके लिए चांदी की गोली हो सकती है   वेयरवोल्फ बस आपके प्रबंधक   आपके डेस्क की ओर इशारा किया।

यही कारण है कि इसके बारे में झगड़ा।


5
2018-05-01 08:50



आप यह भी देखेंगे: "चमत्कारों की अपेक्षा न करें, और इसके लिए अपने कोड को जटिल बनाने से सावधान रहें - कभी-कभी सरल वास्तव में बेहतर होता है।" - alchemical
@ लूफ़्ट मेन्श => "सरल जटिल से बेहतर है। कॉम्प्लेक्स जटिल से बेहतर है। @Fedecarg" - Arnis Lapsa


  • चूंकि आपका ऐप मुख्य रूप से डेटा-केंद्रित है, शायद आपका आर्किटेक्चर मुख्य रूप से पारंपरिक हो सकता है।

  • उन पहलुओं के लिए जहां आपके पास अधिक तर्क और संभावित डोमेन या मूल्य वस्तुएं हैं, शायद आप कोड व्यवस्थित करने के लिए कुछ डीडीडी विचारों का लाभ उठा सकते हैं।

  • आम तौर पर, "ध्वनि विकल्प" चीजों को यथासंभव सरल रखना है, जहां डीडीडी अवधारणाओं का उपयोग उपयोगी है, और अनावश्यक रूप से चीजों को जटिल नहीं करते हैं, जैसा कि लेख सलाह देता है।

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


5
2017-12-02 23:46



डीडीडी एक चीज है, यह तालिका में किसी भी नए विचार नहीं लाता है, यह कोडिंग प्रथाओं में नवीनतम विकास के लिए पूर्वाग्रह के साथ सिर्फ पुराना ओओपी / ओओडी है। "डोमेन विशेषज्ञों से पहली बार बात करें, कुंजी अबास्ट्रक्शंस की पहचान करें" पहली बात है जिसे आप ओओपी पर किसी भी 30-वर्षीय पुस्तक में पढ़ेंगे। "डोमेन वर्गों के अंदर कार्यक्षमता को कार्यान्वित करें जब इसे समझ में नहीं आता है" ... दुह! - rustyx