2008-09-18 14 views
5

जब डिजाइन पैटर्न के उपयोग की बात आती है, तो मुझे लगता है कि तीन प्रकार की दुकानें हैं। जो लोग पैटर्न में नहीं जानते हैं, अगर उन्हें चेहरे पर मारा जाता है - ये आमतौर पर कोड-पुन: उपयोग के लिए Ctrl-C/Ctrl-V दृष्टिकोण पसंद करते हैं। जो लोग एक और महान पैटर्न को लागू करने की उम्मीद में अपने विरासत कोड की खोज में एक दिन घंटे बिताते हैं - ये आम तौर पर सौ साल के रखरखाव में खर्च किए जाने वाले सरल कार्यक्रमों के कोड को दोबारा करने में अधिक समय व्यतीत करते हैं। और आखिरकार, जो लोग समझते समय पैटर्न का उपयोग करते हुए मध्य पथ पर चलते हैं, और कोडिंग जो कम से कम खुला कोड के लिए पहले आता है।डिजाइन पैटर्न और उनके उपयोग के लिए सबसे अच्छे संसाधन क्या हैं?

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

धन्यवाद।

+0

यदि आप प्रति जवाब एक संसाधन मांगते हैं तो यह बेहतर होता है। उत्तरों को सही तरीके से प्रकट करने के लिए वोटों द्वारा उचित रूप से हल किया जा सकता है। SO सवाल इस तरह काम करने के लिए हैं। –

उत्तर

6

वहाँ बाहर विभिन्न 'पैटर्न के परिवारों के बहुत सारे हैं, लेकिन आपके सवाल का सबसे व्यापक तौर शर्तों लेने ...

मैं सलाह देते हैं:

  • जिम कोप्लिन के Organisational Patterns
  • Hillside समूह wiki
  • केव्लिन हेने के site उत्कृष्ट लिंक के बहुत सारे & कागजात है

ऑफलाइन (मेरी पसंदीदा):

ऑफलाइन (लोकप्रिय):

  • GOF डिजाइन पैटर्न
  • फाउलर की पुनर्रचना: मौजूदा कोड के डिजाइन में सुधार
1

मुझे लगता है कि मुझे रिफैक्टरिंग की सिफारिश करनी होगी: मौजूदा कोड के डिज़ाइन में सुधार करना। कैसे पैटर्न के समझदार उपयोग को लागू करने के उदाहरण के

Refactoring: Improving the Design of Existing Code http://2020ok.com/img/1/41191.jpg

खूब।

0

मुझे लगता है कि सबसे अच्छा पैटर्न और पुनर्रचना के बारे में वेब संसाधन युक्त जानकारी - http://sourcemaking.com

+0

यह साइट गोफ बुक में सूचीबद्ध पैटर्न पर विस्तारित करती है। हालांकि यह पैटर्न पर सबसे व्यापक रूप से ज्ञात पुस्तक है, लेकिन इसे आमतौर पर सॉफ्टवेयर गुणवत्ता या पैटर्न आंदोलन की सेवा नहीं माना जाता है। –

0

परिभाषा और मूल जवाब अवधारणा के मूल Design patterns में, है। यह पुस्तक उस अवधारणा से संबंधित है जो प्रबंधन के बजाए एक बहुत ही महाद्वीपीय स्तर पर है, जिसने क्षेत्र में घुसपैठ की है। उनका विचार यह है कि डिजाइन पैटर्न सामान्य मुहावरे के नाम हैं; वे कुछ की गणना करते हैं और अपनी स्थिति को औचित्य देते हैं।

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

4
+0

यह साइट गोफ बुक में सूचीबद्ध पैटर्न पर विस्तारित करती है। हालांकि यह पैटर्न पर सबसे व्यापक रूप से ज्ञात पुस्तक है, लेकिन इसे आमतौर पर सॉफ्टवेयर गुणवत्ता या पैटर्न आंदोलन की सेवा नहीं माना जाता है। –

1

अच्छा उपयोग पैटर्न के बारे में जानकारियों पर निर्भर करता है जीई और अनुभव; इसके लिए कोई सूत्र नहीं है। ऐसा करने के लिए एक अच्छी बात है कोई है जो विवेकपूर्ण तरीके से पैटर्न लागू करने के लिए नियमित रूप सुनिश्चित करें कि वे overusing या underusing नहीं कर रहे हैं डिजाइन पैटर्न बनाने के लिए टीम में हर कोई के कोड की समीक्षा करने के पर अनुभवी है है। वे पूर्व-बेक्ड रेसिपी नहीं हैं - उन्हें प्रभावी ढंग से आवेदन करने के लिए कौशल की आवश्यकता होती है और इसे सीखा जाना चाहिए।

मेरी पहली और सबसे अच्छा पैटर्न डिजाइन करने के लिए जोखिम Portland Pattern Repository था।

1

हर कोई पैटर्न हर समय का उपयोग कर रहा है। वे शायद इसे नहीं जानते। यहां तक ​​कि 'इटेटेट ओवर ए लिस्ट' जैसी एक साधारण चीज एक पैटर्न है।

मुझे लगता है कि सबसे अच्छा तरीका है अपने काम चक्र में पैटर्न शामिल करने के लिए, उन्हें उपयोग करने के लिए, और जब उन्हें चर्चा और जब अपने कोड टिप्पणी उन्हें नाम से उल्लेख करने के लिए बस है। उम्मीद है कि इसका परिणाम ज्ञान का प्रसार होगा।

तो, कहते हैं कि उदाहरण के लिए, आप अपने कर ऑब्जर्वर के लिए बेहद उपयुक्त है कि देखा गया है। आप अपने सहकर्मी को कहते हैं कि "अगर हम इस वस्तु एक पर्यवेक्षक बनाने के लिए, और यह अपने विषय वस्तु अरे, यह करने के लिए वास्तव में आसान हो जाएगा।"

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

और साथ ही, आप ज्ञान फैल रहे हैं, और वे आपके द्वारा सीखे गए नए पैटर्न का उपयोग करने के अवसर तलाशेंगे। यह निश्चित रूप से दोनों तरीकों से चला जाता है। अगली बार जब यह हो सकता है उन्हें शिक्षण आप एक नया पैटर्न।

यह सब आपके सहयोगी पर निर्भर करता है कि वह ऐसा न हो जो न हो और कुछ नहीं समझने का नाटक करता हो। आप उन्हें जरूरत कहने के लिए करते हैं "अरे, आप ऑब्जर्वर उल्लेख किया है, मुझे नहीं लगता कि मुझे पता है कि क्या है।"

0

डिज़ाइन पैटर्न मजाकिया हैं कि आप केवल यह जानते हैं कि जब आप लागू पैटर्न को पूरी तरह समझते हैं तो पैटर्न का उपयोग कहां करें। रणनीति, पर्यवेक्षक, इटरेटर जैसी चीज़ें, बाद में थोड़ा अभ्यास, बिना कठिन सोच के उपयोग करें।यदि आप सी # में हैं तो आप इसे पैटर्न के रूप में सोचने के बिना हर समय इटरेटर (IENumerable ...) का उपयोग करते हैं।

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

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

1

मैं श्रृंखला का एक बड़ा प्रशंसक हूं और अपनी कई पुस्तकों को पढ़ा है, इसलिए मैं Head First Design Patterns की सिफारिश करता हूं। आप O'Reilly के Safari Bookshelf के माध्यम से इसे ऑनलाइन पढ़ सकते हैं, लेकिन हार्ड कॉपी भी एक महान पैटर्न पोस्टर के साथ आता है।

0

मैं चार के डिजाइन पैटर्न के गिरोह के साथ जाना होगा अपने आप

0

मैं इन संदर्भों के साथ सहमत बुक, लेकिन अनुकूल वहाँ नौसिखिया नहीं हैं। जल्दी शुरू सीखने डिजाइन पैटर्न के लिए आसान तरीका:

Head First : design pattern

फिर अपने अधिक उन्नत पुस्तकों की जांच कर सकते एक बार आप बड़ी तस्वीर (व्यावहारिक उदाहरण के एक बहुत ;-))

2

के उपयोग मिल गया "पैटर्न" से

  1. एक उच्च डिग्री करने के लिए निर्भर करता है भाषा
  2. लक्ष्यों इस्तेमाल किया एक हासिल करना चाहते हैं।

डिजाइन पैटर्न को सी ++, जावा और इसी तरह की भाषाओं में ओवरराइड किया जा सकता है। वे सभी प्रकार के टाइपिंग मुद्दों के साथ लचीलापन को छिपाते हैं। http://norvig.com/design-patterns/

एक और उदाहरण पहलू उन्मुख programmming है, जो हो सकता है प्रयास चीजों के साथ में "पेश" नहीं कर रहे हैं इसके लिए "तैयार किया गया है" भाषा में है: यहाँ क्या पैटर्न पर एक लिंक "जीवित रहने के" कम प्रतिबंधक भाषाओं में है।

प्रयुक्त उपकरणों के पीछे दर्शन का एक बड़ा प्रभाव भी है। बस तुलना करें कि औसत PHP या विजुअल बेसिक प्रोग्राम और स्मॉलटाक, कॉमन लिस्प, हास्केल और जैसे समाधानों में समाधान करें।

सिंटैक्स तत्वों का भी बड़ा प्रभाव पड़ता है। आपको सी, सी ++ (इटरेटर) में कई समान लूप दिखाई देंगे, लेकिन यदि आप उच्च क्रम कार्यों के लिए समर्थन देने वाले languags में देखेंगे तो आपको कुछ लूप मिलेगा।

फिर आप देखना है जो जिस तरह से लोग कर पहुँच प्रोग्रामिंग, नीचे से ऊपर या नीचे शीर्ष, क्रम से विकास या निर्माण Pyramides, या किसी अन्य व्यक्ति वरीयताओं

मैंने कहा लिंक पढ़ने का सुझाव है, और फिर में कार्यान्वयन की जांच " अलग "भाषाओं ....

सादर फ्रेडरिक

1

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

एक तरफ http://www.developer.com में एक महीने में कुछ लेख हैं जो डिजाइन पैटर्न और उनके अनुप्रयोगों से संबंधित हैं। सौभाग्य!

संबंधित मुद्दे