प्रत्येक .NET पुरुष को मुख्य प्रथाओं और डिज़ाइन पैटर्न को क्या जानना चाहिए? [बन्द है]


16

एक पेशेवर प्रोग्रामर के रूप में मेरे संक्षिप्त समय में, मैंने प्रोग्रामर द्वारा लिखित बहुत सारे एप्लिकेशन देखे हैं, जिनकी पूरी शिक्षा एक .NET 2.0 पुस्तक में अध्याय के पहले जोड़े को पढ़ती हुई प्रतीत होती है।

जब मैंने शुरुआत की तब मैंने उन अनुप्रयोगों में से अधिकांश लिखे!

AWESOME .NET अनुप्रयोगों को लिखने के लिए सबसे बड़े डिज़ाइन पैटर्न क्या महत्वपूर्ण हैं?

भयानक से मेरा मतलब अंदर पर भी है!


कोई भी निर्णायक नहीं है।
kirk.burleson

जवाबों:


22

पहला: अपने बुनियादी उपकरणों को अच्छी तरह से जानें

  1. ASP.Net ईवेंट मॉडल को जानें। यदि आप नहीं करते हैं, तो आप गड़बड़ करेंगे।

  2. OO के यांत्रिकी को समझें । अपेक्षाकृत अनुभवी .Net प्रोग्रामर की एक आश्चर्यजनक संख्या अभी भी लगता है कि यह 1972 है।

  3. कोड पूरा पढ़ना शुरू करें।

दूसरा: चिंताओं को अलग करना सीखें

ASP.Net डेवलपमेंट में जो सबसे आम डिज़ाइन-क्राइम मुझे दिखता है, वह कोड के पीछे के सभी बिजनेस लॉजिक को सामान करने के लिए है। मुझे पता है कि सभी Microsoft उदाहरण इसे इस तरह से करते हैं। मुझे पता है कि यह छोटे ऐप पर उचित है। और मुझे पता है कि मैं कभी-कभी ऐसा करता हूं । लेकिन वास्तव में, यह खराब डिजाइन है, और सप्ताह के लिए मेरा पालतू जानवर से नफरत है।

तीसरा: डिजाइन के बारे में और सब कुछ जानें

अधिकांश खराब गुणवत्ता .Net कोड जो मुझे दिखाई देता है, खराब OO डिज़ाइन का परिणाम है। इसलिए, मैं इसकी एक अच्छी समझ की सिफारिश करूंगा:

  • ठोस सिद्धांत
  • GoF डिज़ाइन पैटर्न
  • MVC (ASP.Net MVC के लिए)

चौथा: अधिक उपकरण जानने के लिए

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

आखिरकार

एक बार जब आप बहुत कुछ कर लेते हैं, तो आप अपने रास्ते पर बढ़िया हो जाते हैं।

[संपादित करें: फिक्स्ड-अप इस sutff सीखने के लिए अनुक्रम। जाहिर है मैं कल की गिनती नहीं कर सकता ...]


"जब आप करते हैं, तो आप या तो उन्हें अपनी इच्छा से झुकाने वाले होते हैं या अपनी खुद की भूमिका निभाते हैं" या कुछ ओपन सोर्स का उपयोग करें। +1, फिर भी, अच्छा जवाब
पीडीआर

धन्यवाद .. वास्तव में बहुत बढ़िया उत्तर :-) लेकिन mvvm, ioc, mvp, रिपॉजिटरी, कारखानों के बारे में यह सब क्या है ... किसी भी अन्य बड़े buzzword को डालें .. वर्तमान में "माइक्रोसाफ्ट धन्य" वेब एप्लिकेशन बनाने के लिए दृष्टिकोण क्या है?
डैनियल अप्टन

3
MVVM - (वर्तमान में) एक बहुत ही WFP / सिल्वरलाइट-विशिष्ट डिज़ाइन पैटर्न। एमवीपी - एमवीसी के समान पैटर्न, कक्षाओं / परतों के बीच बातचीत में कुछ अंतरों के साथ। भंडार / कारखाने / आईओसी - ऊपर "तीसरा" के लिए आपके पढ़ने में शामिल होना चाहिए, वे चिंताओं के पृथक्करण, डीआरवाई सिद्धांत और परीक्षण योग्य डिजाइन से संबंधित हैं। "Microsoft-धन्य" दृष्टिकोण - यह निर्भर करता है कि आपकी आवश्यकताएं क्या हैं। वर्तमान प्रवृत्ति निश्चित रूप से एमवीसी 3 प्रतीत होती है, जो कि बहुत कम उपद्रव के साथ "अच्छे" डिजाइन को सक्षम करने के लिए एक लंबा रास्ता तय करती है, आसान आईओसी / डीआई, परीक्षण योग्य नियंत्रकों आदि के साथ
mjhilton

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

1
@ डैनियल: मैं वास्तव में "माइक्रोसॉफ्ट धन्य" दृष्टिकोण के बारे में बहुत ज्यादा चिंता नहीं करूंगा। अच्छा डिज़ाइन अच्छा डिज़ाइन है कोई बात नहीं जो इसे आशीर्वाद देता है। वास्तव में Microsoft अक्सर इस क्षेत्र में कैच-अप खेलता है (उदाहरण के लिए, अन्य MVC फ्रेमवर्क की प्रतिक्रिया के रूप में ASP.Net MVC)। उस ने कहा, आपको माइक्रोसाफ्ट प्रौद्योगिकी के बारे में जागरूक रहने की आवश्यकता है । महान डिजाइन विफल होने के लिए जाने गए हैं क्योंकि वे उपलब्ध टूलसेट के अनुरूप नहीं हैं।
क्रामइ

0

क्रामि द्वारा उल्लिखित विभिन्न बिंदु सभी अच्छी तरह से सार्थक हैं, लेकिन मैं ठोस सिद्धांतों के साथ काम करने के उल्लेख पर जोर देना चाहूंगा। इनकी वास्तव में अच्छी समझ प्राप्त करने से एक बड़ा अंतर होगा, और GoF पैटर्न आदि के कई स्वाभाविक रूप से बाहर गिरने लगेंगे। इस सामान का अधिकांश हिस्सा आपकी चिंताओं को अलग करने और आपकी निर्भरता के प्रबंधन के बारे में है, इसलिए स्रोत पर शुरू करें और बाकी सब कुछ समझ में आएगा।

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

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