मैंने अभी-अभी Microsoft-प्रौद्योगिकी पर आधारित एक मध्यम-छोटे आकार, कंपनी के लिए डेटाबेस डेवलपर के रूप में एक नई नौकरी शुरू की है। मैंने इस बात पर जल्दी गौर किया कि स्कूल में मुझे सबसे अच्छी प्रथाओं, डिजाइन पैटर्न, परीक्षण और परियोजना प्रबंधन के बारे में क्या सिखाया गया है।
जो मुझे सबसे ज्यादा परेशान कर रहा है वह यह है कि हमारा मुख्य डेटाबेस डेवलपर (इसलिए "जॉन" कहा जाता है) डेटाबेस में मॉडल स्कीमा रखता है! हम इसे 3 "जादू" तालिकाओं के द्वारा करते हैं; एक डेटाबेस-स्कीमा के लिए, एक टेबल के लिए और एक कॉलम के लिए।
" टेबल्स " में एक रिकॉर्ड सम्मिलित करना -समर्थन (डेटाबेस ट्रिगर के माध्यम से), वास्तविक, संगत तालिका। " पंक्तियों " में एक पंक्ति सम्मिलित करना -इस सन्दर्भ के साथ संदर्भित तालिका को अद्यतन करता है। ये सी # मॉडल बनाने के लिए उसके होममेड सी # -प्रोग्राम द्वारा बारी-बारी से पढ़े जाते हैं, जो कि फ्रंट-डेवलपर्स द्वारा कंट्रोलर्स और आउटवर्ड के लिए उपयोग किए जाते हैं।
इसके अलावा, अधिकांश विकास ASP.NET MVC फ्रेमवर्क के अनुसार किया जाता है ।
मैं इस दृष्टिकोण के साथ कुछ खामियों को देखता हूं:
- हमें उसे ओआरएम बनाए रखने की आवश्यकता है, और उसके पास शायद ही ऐसा करने का समय है (नौकरी की सुरक्षा अच्छी है!)
- "टेबल्स" और "पंक्तियों" तालिका के लिए ट्रिगर्स त्रुटिपूर्ण हैं। वे टेबल अपडेट का समर्थन नहीं करते हैं, न ही चेक-बाधाओं या अधिक "उन्नत" सुविधाओं का। हालांकि हम निश्चित रूप से उनमें सुधार कर सकते हैं, मुझे अभी तक यकीन नहीं है कि यह रास्ता तय करना है।
- डेटाबेस में प्रोग्रामेटिक लॉजिक रखना अजीब और प्रतिबंधात्मक लगता है (हालाँकि C # के माध्यम से उसके मॉडल का विस्तार करना संभव है)।
- उनके C # मॉडल-जनरेटर को 3 लोगों में से एक (जिसमें मैं एक हूं) द्वारा मैन्युअल रूप से चलाया जाना है, और अभी तक एक स्वचालित निर्माण प्रक्रिया में शामिल होने के लिए पर्याप्त परिपक्व नहीं है।
कई लोगों ने एंटिटी फ्रेमवर्क जैसे एक सच्चे और परीक्षण किए गए उत्पाद में चरणबद्धता का सुझाव दिया है , लेकिन वह इसे खारिज करते हुए कहते हैं कि व्यावसायिक तर्क को कोड-लेयर में रखना केवल स्टार्टअप के लिए छोटे पैमाने के अनुप्रयोगों और बूटस्ट्रैप परियोजनाओं के लिए उपयुक्त है।
यह पोस्ट एक ऐसी चीज़ की ओर अग्रसर है जो एक विचार-विमर्श की तरह लग सकती है, लेकिन यह मेरा उद्देश्य नहीं है। मैं सिर्फ हमारे वास्तुशिल्प दृष्टिकोण के बारे में कुछ स्पष्टीकरण चाहता हूं।
क्या डेटाबेस में डोमेन मॉडल रखना किसी कंपनी के विकास में स्थायी समाधान हो सकता है?