क्या उद्योग में MVC पैटर्न का उपयोग किया जाता है? सभी प्रचार क्या है? [बन्द है]


16

मैं एक छात्र हूं, लेकिन मुझे उम्मीद है कि मैं जल्द ही सॉफ्टवेयर उद्योग में कदम रखूंगा। MVC सॉफ्टवेयर पैटर्न के बारे में बहुत अधिक प्रचार हो रहा है। मैंने देखा कि PHP फ्रेमवर्क अक्सर एमवीसी होते हैं, जो गैर-वेब भाषाओं के बारे में हैं .. क्या उनके साथ भी ऐसा ही है? मेरे स्वामी शोध प्रबंध (C ++) के लिए, मैंने MVC पैटर्न को चुना क्योंकि यह तर्क और उपयोगकर्ता इंटरफ़ेस को अलग करता है।

उद्योग में इसका बहुत उपयोग किया जाता है? यदि हां, तो मुख्य कारण क्या हैं और अन्य प्रतिस्पर्धा, लोकप्रिय डिजाइन क्या हैं?


13
एमवीसी चिंताओं को अलग करने का एक लोकप्रिय कार्यान्वयन है। SoC क्या महत्वपूर्ण है, MVC ही नहीं।
रेयनोस

1
आप एमवीसी पर कुछ विकल्पों / विविधताओं के लिए मार्टिन फाउलर के 'कैटलॉग ऑफ एंटरप्राइज एप्लीकेशन आर्किटेक्चर' की जांच करना चाहते हैं जो बेहतर विशिष्ट अनुप्रयोगों के लिए उपयुक्त हो सकते हैं: martinfowler.com/eaaatalog/index.html
Mchl

3
यह भी ध्यान दें कि 'एमवीसी' लेबल वाली बहुत सी चीजें वास्तव में एमवीसी नहीं हैं, बल्कि (नए) बहु-स्तरीय अनुप्रयोग मॉडल: डेटा भंडारण - तर्क - प्रस्तुति (जो, IMHO, वैसे भी अधिक समझ में आता है) का पालन करती हैं।
तदममर्स

MVC वेब प्रोग्रामिंग को पूर्व निर्धारित करता है, यदि वह आपको कुछ भी बताता है।
जेरेमी

जवाबों:


6

MVC को बहुत अधिक प्रचार और उपयोग मिलता है क्योंकि यह अपने डोमेन के लिए एक बहुत ही उपयोगी पैटर्न है।

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

MVC के साथ किसी भी नियंत्रक या मॉडल को संशोधित किए बिना किसी एप्लिकेशन के फ्रंट-एंड इंटरफ़ेस (दृश्य) को बदलना अपेक्षाकृत आसान होना चाहिए। यह वांछनीय हो सकता है यदि आपको स्मार्टफोन, वेब और एक या अधिक एप्लिकेशन से एक्सेस की अनुमति देने की आवश्यकता हो।

बड़ी टीमों के लिए MVC संसाधनों के बेहतर उपयोग की अनुमति दे सकता है क्योंकि डेवलपर्स को परतों में से एक में काम सौंपा जा सकता है, और अन्य परतों में बहुत अधिक कौशल की आवश्यकता नहीं हो सकती है। समन्वयकारी संसाधनों के ओवरहेड के आधार पर, यह अधिक कुशल हो सकता है।


12

हां, इसका बहुत इस्तेमाल होता है। iPhone / iPad के अनुप्रयोग MVC के रूप में स्थापित किए गए हैं। मैंने हाल ही में बहुत सारे asp.net MVC ऐप देखे हैं।

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


Apple का कोको ढांचा (MacOS X पर प्रयुक्त) नेक्स्टस्टेप का विकास है, जो 1980 के दशक के उत्तरार्ध में आता है। नेक्स्टस्टेप, कोको और कोको टच (आईओएस में इस्तेमाल किया गया) सभी एमवीसी का भारी उपयोग करते हैं।
कालेब

4

यह इस समय प्रचलन में है।

कभी भी प्रचार की शक्ति को कम मत समझो। जल्द ही, कोई व्यक्ति कुछ और नया, शिनियर और समझने में आसान होगा, और हर कोई एमवीसी को सभी बुराई की जड़ (वेबफोर्म्स को हुआ) के रूप में देखेगा, या बहुत सारे लोग इसका उपयोग कर रहे होंगे कि अधिक से अधिक दिग्गज इसे "प्रबंधन बैल * * " चीज़ के रूप में डिक्रिप्ट करें (XML के साथ हुआ)। या फिर कुछ अन्य पैटर्न में बदलाव होगा क्योंकि MVC "सुपर-हार्ड समस्या के समाधान के लिए पर्याप्त लचीला नहीं है" (स्थिर-टाइप की भाषाओं बनाम गतिशील भाषाओं) को हल करने की आवश्यकता है।

दिन के अंत में एमवीसी एक फ्रेमवर्क अप्रोच है जो कई समस्याओं के लिए उपयुक्त है जो वेब प्रोग्रामिंग फेंकता है। यह थोड़ी देर के लिए होगा, लेकिन मुझे लगता है कि ज्यादातर लोग इसका उपयोग कर रहे हैं, इसका कारण यह है कि यह buzzword का अनुपालन है।

संपादित करें

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

यह कोई शेख़ी नहीं थी।


7
-1 के लिए: 'एट द मोमेंट', जब तक आप उदाहरण के लिए स्मॉलटॉक या जावा / स्विंग की शुरुआत को मोमेंट की तकनीक नहीं मानते हैं, उसके लिए MVC थोड़ा बहुत पुराना है।
कीपला

4
"पल में" को छोड़कर काफी सटीक है; MVC का उपयोग शायद ही तब तक किया जाता था जब तक कि मैं हाल ही में जावा दुनिया को छोड़कर इसके बारे में नहीं जानता। जब तक रेल लोकप्रिय नहीं हो जाती, तब तक हर जगह इसका इस्तेमाल नहीं किया गया।
वेन मोलिना

4
अधिकांश GUI- चौखटे (गैर- html) मैं MVC का उपयोग करता था, यह पिछले 10 वर्षों की देखभाल करने के लिए 'मुश्किल से इस्तेमाल' नहीं किया गया था।
कीपला

1
दरअसल, एमवीसी ब्रह्मांड के कुछ हिस्सों में पहले से ही एमवीपी से बाहर हो गया है।
टॉम एंडरसन

3
व्यक्तिगत रूप से, मैं ASP.NET MVC से एक अवधारणा के बहुत पहले वेबफॉर्म से नफरत करता था। कभी-कभी चीजें लोकप्रिय होती हैं क्योंकि वे वास्तव में ज्यादातर मामलों में सबसे अच्छा विकल्प होते हैं - और हां, उन्हें कुछ नए और अधिक शक्तिशाली द्वारा प्रतिस्थापित किया जा सकता है, लेकिन क्या? यह प्रगति है, प्रचार नहीं।
Aaronaught

3

मेरे अनुभव से, इसका उतना उपयोग नहीं किया जाना चाहिए जितना कि इसे करना चाहिए। यह कुछ विकल्पों की तुलना में बहुत बेहतर मॉडल है, लेकिन यह केवल पिछले कुछ वर्षों में बहुत अधिक प्रचार कर रहा है; इस वजह से वहाँ बहुत सारी विरासत क्रॉफ्ट है जिसे लोग एमवीसी में बदलने से डरते हैं या भविष्य के काम के लिए एमवीसी का उपयोग करने से डरते हैं क्योंकि यह उनके आराम क्षेत्र के बाहर है।


1

मुझे लगता है कि आप पाएंगे कि स्टैक एक्सचेंज परिवार सभी एमवीसी पर चलते हैं


बहुत बढ़िया, वह +1
ale

1

ASP.NET MVC ने वेब एप्लिकेशन के लिए बहुत प्रसिद्धि प्राप्त की है, क्योंकि .NET का उद्योग में बहुत अधिक उपयोग किया जाता है।

Microsoft वेब एप्लिकेशन क्लासिक ASP से ASP.NET तक विकसित हुए, जो वेब फॉर्म पर आधारित है (कौशल VB6 विन फॉर्म डेवलपर्स को पहले से ही वेब के नए फ्रंटियर में आसानी से अनुवादित करने की अनुमति देने के लिए)।

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

ASP.NET MVC कौशल की अनुमति देता है WebForms डेवलपर्स को एक वेब फ्रेमवर्क में अनुवादित करना पड़ता है जिसमें अच्छा SoC होता है और जिसे परीक्षण योग्य बनाने में बहुत प्रयास किया गया है (क्योंकि WebForms बहुत परीक्षण योग्य नहीं है, MVC टीम ने बहुत कुछ डाला है ढांचे में प्रयास)।

उस ने कहा, यह एक रामबाण / चांदी की गोली नहीं है, और किसी भी ढांचे की तरह, इसका उपयोग करने के लिए समय है और इसका उपयोग नहीं करने का समय है। उम्मीद है कि लोग इसका उपयोग करने के लिए सब कुछ हल करने की कोशिश नहीं करेंगे, आखिरकार: जब आपका एकमात्र उपकरण एक हथौड़ा है, तो हर समस्या नाखून की तरह दिखती है।


1

यह इतिहास में सिर्फ एक क्षण है क्योंकि MVC एक युगल बहुत ही सरल अवधारणा है जो कि कुछ विशिष्ट रूपरेखाओं से प्रचार प्राप्त करता है जो इसे अपने विपणन सामग्री में प्रमुखता से प्रदर्शित करते हैं। यह सॉफ्टवेयर विकास में उभरी बहुत सी अच्छी प्रथाओं के साथ भी होता है। यह HTTP जैसे छद्म-स्टेटफुल डेवलपमेंट के लिए डबल लागू होता है; इतना है कि मैं केवल एक दूसरे को वास्तव में अलग "पैटर्न" के बारे में जानता हूं जो वेब दुनिया में उपयोग किया जाता है - बहुत-विकृत ASP.Net WebForms ईवेंट-आधारित मॉडल।

मैं ईमानदारी से थोड़ा आश्चर्यचकित हूं कि पूरे शोध प्रबंध के लिए पर्याप्त है।

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


@geroge: उत्तर के लिए धन्यवाद। हा .. चिंता मत करो, मेरे शोध प्रबंध के साथ शामिल सॉफ्टवेयर MVC का उपयोग करता है .. यह वास्तव में MVC पर नहीं है!
शराब
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.