क्या डेटाबेस में डोमेन लॉजिक की उम्र खत्म हो गई है? [बन्द है]


9

मैंने हाल ही में 2016 से इस राय पर ठोकर खाई है कि डेटाबेस में डोमेन तर्क के लिए अभी भी मामला है।

मुझे लगा कि यह पूरी तरह से अप्रचलित है। मैं बस सोच रहा हूं कि क्या आदमी अभी भी 90 के दशक में रह रहा है या यह वास्तव में सच हो सकता है। एक तरफ विरासत प्रणाली सेट करें।

सुरक्षा आवश्यकताओं के कारण डेटाबेस में डोमेन लॉजिक होने के बारे में। क्या वाकई ऐसा करना है?


3
क्या आपने वास्तव में उस लेख को पूरा पढ़ा है? मुझे लगता है कि लेखक अपनी बात को बहुत अच्छी तरह से स्पष्ट करता है, और बताता है कि बीएल के किन हिस्सों के लिए वह सबसे अच्छा एक डेटाबेस में रखा गया है, और किन हिस्सों के लिए यह नहीं है। तो उस लेख से कौन से बिंदु ठीक आप के साथ संघर्ष कर रहे हैं?
डॉक्टर ब्राउन

हां, यह 18 फरवरी 2009 को बंद हुआ और अब झूठा है।
माइकल डुरंट

यह उत्सुक है। मैंने इस आदमी को बहुत सारे SQL उदाहरण दिए (दृढ़ता से Oracle से बंधा हुआ) पढ़ा और फिर मैं अपने ग्राहक को यह कहते हुए याद करने से बच नहीं सकता: मैं PRE env के लिए Oracle का लाइसेंस खरीदना भूल गया। हमारे पास इसके लिए PRO है, लेकिन PRE के लिए नहीं। आपको थोड़ी देर के लिए PRE और Oracle में PRO में MySQL के खिलाफ ऐप को तैनात करना होगा ... मैं उस आदमी से पूछूंगा, जहां oracle की सभी शाइनी सुविधाएँ अब जाती हैं ... (समस्या यहाँ एक कारण से थी) मैं जानना नहीं चाहता, आर्किटेक्ट ने ओआरएम के बजाय देशी एसक्यूएल - पंक्ति मानचित्रण का रास्ता तय किया, लेकिन अभी भी डीबी प्रदाता के लिए बंद होने की समस्या के करीब है)
लाईव

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

2
"डेटाबेस में डोमेन लॉजिक की उम्र खत्म हो गई है?" भगवान, मुझे उम्मीद है।
लंचमीट 317

जवाबों:


13

आजकल प्रोग्रामर बहुत ही हठधर्मिता से सोचने लगते हैं, खासकर जब वे उन विचारों को पढ़ते हैं जो अन्य लोग अपने ब्लॉग में लिखते हैं।

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


मूल रूप से आप जो कह रहे हैं, वह यह है कि डेटाबेस में टेबल और डेटा होना चाहिए, और यह सब होना चाहिए। लेकिन डेटाबेस कुछ चीजें करने के लिए विशिष्ट रूप से अनुकूल हैं जो ... अच्छी तरह से, डेटाबेस अच्छे हैं।

लेख में इन बातों का हवाला दिया गया है:

  • डेटा अखंडता और मान्यता (उदाहरण के लिए अशक्त और अद्वितीय बाधाएं)
  • पंक्ति-स्तरीय सुरक्षा
  • Stored Procedures का उपयोग करके API लिखना
  • संतुलन की गणना
  • डेटाबेस सवाल पूछना (यानी क्वेरी करना और रिपोर्टिंग करना)
  • ओआरएम की समस्याओं जैसे एन + 1 से बचना

डेटाबेस में डालने के लिए उपयुक्त चीजों के रूप में। मैं उससे सहमत हूं।

डेटाबेस में आप व्यावसायिक तर्क (सामान्य रूप से) नहीं रखते हैं:

  • विक्रेता बंदी
  • आपका डेटाबेस केंद्रीय प्राधिकरण नहीं है
  • आपकी टीम मज़बूती से नहीं सोचती है
  • अवर टूलींग।

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

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


3
एक बहुत अच्छा ब्रेक डाउन और प्रश्न को फ्रेम करने का एक बेहतर तरीका।
कैंडिड_ऑरेंज

9

यहां छवि विवरण दर्ज करें

घोड़े और छोटी गाड़ी की उम्र खत्म हो गई है, फिर भी आप बगिया के चाबुक खरीद सकते हैं।

क्यों? जब कारें तेज़ होती हैं, रखरखाव करने के लिए सस्ता होता है, और उनकी उपेक्षा करने से मानव समाज से यात्रा नहीं होती है, तो घोड़ा और गाड़ी अभी भी आसपास क्यों है?

क्योंकि कभी-कभी आपके पास लोकप्रिय कारणों के अलावा कुछ करने के लिए अलग-अलग कारण होते हैं।

आप जो सीख रहे हैं वह यह है कि एक डेटाबेस में डोमेन लॉजिक समस्याओं का कारण बनता है और कोई भी संभवतः इससे बाहर निकल सकता है। फिर अपना खुद का मन बना लो।

मेरा व्यक्तिगत विचार:

डोमेन लॉजिक व्यवहार के बारे में है। डेटाबेस दृढ़ता, रिश्तों, और, अच्छी तरह से, डेटा के बारे में हैं। जब आप इसे इस तरह देखते हैं तो व्यावसायिक नियम डेटाबेस में नहीं होने चाहिए।

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

बुद्धि आम तौर पर अत्यधिक विचारों के बीच पाई जाती है। मुझे कोई संदेह नहीं है कि या तो काम किया जा सकता है। जब मध्य को खोजने की कोशिश की जाती है तो वह झुंड का पीछा कर सकता है। मैं यहां इसके खिलाफ आगाह करूंगा।

एक सिस्टम जो डेटाबेस में डोमेन लॉजिक रखता है वह अच्छी तरह से काम कर सकता है। एक सिस्टम जो डोमेन लॉजिक को डेटाबेस से बाहर रखता है वह अच्छी तरह से काम कर सकता है। एक प्रणाली जो दोनों स्थानों में डोमेन लॉजिक को मिलाती है वह मुझे बैट्टी ड्राइव करने वाली है। मुझे नहीं पता कि नया व्यवहार कहाँ करना है। मुझे यकीन नहीं होगा कि पुराना व्यवहार कहां मिलेगा।

यदि आप अभी भी एक सिक्का फ्लिप नहीं कर सकते हैं और किसी विशेष परियोजना के लिए सुसमाचार के रूप में अपना निर्णय ले सकते हैं। जहां तक ​​मैं बता सकता हूं कि सिक्का जानता है कि किसी और के साथ क्या सबसे अच्छा है।


1
आपका उत्तर लगता है कि आपने ओपी से जुड़े लेख पर भी गौर नहीं किया (यह नहीं कि मैं कह रहा हूं कि लेखक सही या गलत है), लेकिन क्या आप हमें बता सकते हैं कि आप उस लेख में वर्णित विचारों से सहमत या भिन्न कहां हैं?
डॉक ब्राउन

@DocBrown मैंने इसे या तो नहीं पढ़ा, लेकिन यह जवाब एक अच्छा है, जहां भी मैं पूरी तरह से सहमत हूं। और यह ओपी के प्रश्न (अंतिम वाक्य) को संबोधित करता है , न कि उद्धृत लेख को।
क्यूवर्टी_सो

@DocBrown मुझे नहीं लगता कि लेख अंकल बॉब लेख को पढ़ता है कि यह उद्धृत करता है : "प्लगइन आर्किटेक्चर बहुत मजबूत हैं क्योंकि स्थिर उच्च मूल्य वाले व्यावसायिक नियमों को उपयोगकर्ता इंटरफेस और डेटाबेस जैसे अस्थिर कम मूल्य मॉड्यूल के आधार पर रखा जा सकता है।" चाचा बॉब इस विचार के खिलाफ मेरे विचार से अधिक मजबूत हैं। इस लेख चेरी बॉब के लेख से चुनता है और ऐसा लगता है जैसे बॉब कुछ कह रहा है वह नहीं है।
कैंडिड_ऑरेंज

2

मेरे पास एक मामला था जहां इसे व्यापार परत में हल करना एक वास्तविक प्रदर्शन हत्यारा होगा।

हमारे आवेदन OO सुरक्षा अवधारणा भूमिकाओं और समूहों के होते हैं। और दोनों पुनरावर्ती संरचनाएं हैं। हमने एक संग्रहीत प्रक्रिया लिखी है जो एक डोमेन ऑब्जेक्ट पर उपयोगकर्ता के लिए अनुमति का निराकरण करता है।

डेटाबेस लॉजिक में वापस आने की जरूरत कम है। लेकिन इस मामले में मैंने उस रास्ते पर जाने का फैसला किया। लेकिन आपको हमेशा क्या विचार करना है: आप अमूर्तता छोड़ देते हैं। जैसे ही डेटाबेस में आपके पास व्यावसायिक तर्क होते हैं, आपकी दृढ़ता परत को बदलने के लिए आपके पास एक कठिन दिन होता है। इसलिए बहुत सावधान रहें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.