स्क्रैच से एप्लिकेशन बनाते समय, क्या मुझे ऑब्जेक्ट-ओरिएंटेड (OO) मॉडल या इकाई-संबंध (ER) मॉडल से शुरू करना चाहिए?
स्क्रैच से एप्लिकेशन बनाते समय, क्या मुझे ऑब्जेक्ट-ओरिएंटेड (OO) मॉडल या इकाई-संबंध (ER) मॉडल से शुरू करना चाहिए?
जवाबों:
आप यथासंभव लंबे समय तक स्थापत्य निर्णयों में देरी के सिद्धांत का पालन करने का प्रयास कर सकते हैं। सोचा जाता है, कि आप भविष्य में अपने समस्या डोमेन के बारे में अधिक जानते हैं कि आप अभी क्या करते हैं - इसलिए, आज आपके द्वारा किए गए कोई भी निर्णय संदिग्ध हैं।
इसके साथ जोड़ी बनाने के लिए एक और अच्छा सिद्धांत यह हो सकता है कि पहले अपनी आवश्यकताओं के जोखिम वाले हिस्सों को आज़माने की कोशिश की जाए - यह सोचा जा रहा है कि यदि आप आसान भागों को करते हैं, तो पाते हैं कि जोखिम भरे हिस्से आपको एक अलग दिशा में ले जाते हैं, आपके पास नहीं है आसान भागों को फिर से करने के लिए। यहां जोखिम भरा है, जिसका अर्थ है कि आप सुनिश्चित नहीं हैं कि आपको उन्हें कैसे करना चाहिए।
इन दोनों को देखते हुए, और यह देखते हुए कि मैं अक्सर ओओ के दृष्टिकोण से चीजों को देखने की कोशिश करता हूं, आप अपने आवेदन के सबसे जोखिम वाले हिस्सों के एक ओओ मॉडल के साथ शुरू करने की कोशिश कर सकते हैं, और कम से कम संभव कोड को लागू कर सकते हैं जो काम कर सकते हैं जो संतुष्ट करता है। जोखिम भरा आवश्यकताओं। फिर, अपने OO मॉडल का विस्तार करना शुरू करें क्योंकि आपको जिस कार्यक्षमता की आवश्यकता है उसे जोड़ने के लिए आवश्यक है। सभी समय पर, आप SQL या NoSQL या फ्लैटफाइल्स या क्लाउड स्टोरेज या जो कुछ भी ... का उपयोग करने के बारे में अपने निर्णय में पूरी तरह से देरी कर सकते हैं और आप अंततः पा सकते हैं कि आप संबंधपरक (ईआर मॉडल की आवश्यकता को कम करना) नहीं चाहते हैं।
ईआर मॉडल यह निर्धारित करता है कि एप्लिकेशन के डेटा को कैसे बनाए रखा जाएगा, और OO मॉडल यह तय करता है कि मेमोरी में उसी डेटा को कैसे संग्रहीत किया जाएगा, या एप्लिकेशन चालू होने के दौरान। तो, डेटाबेस स्कीमा डिज़ाइन (ईआर मॉडल) और क्लास स्टेचर डिज़ाइन (OO मॉडल) संबंधित डिज़ाइन विचार हैं, और आमतौर पर समवर्ती के बारे में भी सोचा जा सकता है। वास्तव में, यदि आप ऑब्जेक्ट-रिलेशनल मैपिंग (ओआरएम) टूल का उपयोग कर रहे हैं, तो आपका ईआर मॉडल और आपका ओओ मॉडल एक ही हो सकता है। दूसरे शब्दों में, आपकी कक्षाओं (OO मॉडल) को इस तरह से एनोटेट किया जा सकता है कि वे, स्वयं, ER मॉडल को निर्दिष्ट करें।
हालांकि, डिजाइन करने से पहले, सुनिश्चित करें कि आपके पास सॉफ़्टवेयर की वास्तविक आवश्यकताओं का बहुत अच्छा विचार है, इसका क्या उपयोग किया जाएगा, इसका उपयोग कैसे किया जाएगा, और इसका उपयोग कौन करेगा। कई डेवलपर्स डिजाइन निर्णयों के बारे में सोचना शुरू करते हैं इससे पहले कि वे उत्पाद द्वारा संबोधित की जाने वाली आवश्यकताओं को पूरी तरह से समझें, और एक ऐसे डिजाइन के साथ समाप्त हो जाएं जो एप्लिकेशन के वास्तविक उद्देश्य के लिए बीमार है।