2012-06-05 11 views
8

जब लोग डिज़ाइन पैटर्न का उपयोग करने का प्रयास करते हैं तो वहां एक नाम होना चाहिए। मुझे anti-patterns और code-smell (दूसरों के बीच) के बारे में पता है, लेकिन वे इस स्थिति पर लागू नहीं लग रहे हैं।जब लोग डिज़ाइन पैटर्न का उपयोग करने का प्रयास करते हैं तो इसे क्या कहा जाता है?

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

मैंने एक खोज की और केवल इसके साथ आया: When are design patterns the problem instead of the solution? जो मुझे दिलचस्प लगता है, लेकिन पूरी तरह से सहमत नहीं है।

यदि टैग स्टैक ओवरफ़्लो पर मौजूद नहीं है, तो मैं कम से कम इसे बनाने का अधिकार आरक्षित करना चाहता हूं। इसकी है कि अक्सर यह है कि आप एक नया टैग :)

क्या यह अनुवर्ती कहा जा सकता है की कुछ विचार बनाने के लिए नहीं:

    patternizing से अधिक
  • patternized
  • डिज़ाइन पैटर्न की अधिक मात्रा
से अधिक
  • +2

    [Programmers.SE] से संबंधित है। –

    +0

    @ पीटर टोरोक, शायद आप सही हैं, लेकिन सवाल मैंने संदर्भित एक के साथ प्रतीत होता है, जिसे ध्वजांकित नहीं किया गया था। मैं अंतर पर असली स्पष्ट नहीं हूँ। – Brady

    +0

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

    उत्तर

    4

    मैं इस overengineering कॉल करेंगे - या तो पैटर्न होने की जरूरत नहीं है, या तो।

    केआईएसएस सिद्धांत का उपयोग करें (जैसा कि आप नोट करते हैं)।

    +1

    केआईएसएस सिद्धांत क्या है? मुझे डर है कि Google – Brady

    +3

    पर बहुत सारी हिट वापस आ जाएंगी इसे सरल बेवकूफ रखें :) - http://en.wikipedia.org/wiki/KISS_principle – jglouie

    +0

    आह सही, धन्यवाद। – Brady

    8

    मेरा मानना ​​है कि आप Cargo cult programming की बात कर रहे:

    [...] कंप्यूटर प्रोग्रामिंग की एक शैली है कि है कि कोई वास्तविक उद्देश्य की सेवा कोड या कार्यक्रम संरचनाओं के अनुष्ठान शामिल किए जाने की विशेषता है है। कार्गो पंथ प्रोग्रामिंग आम तौर पर एक प्रोग्रामर का लक्षण है जो किसी भी बग को समझने की कोशिश नहीं कर रहा था या वह स्पष्ट समाधान (shotgun debugging, voodoo programming की तुलना करें)। कार्गो पंथ प्रोग्रामर शब्द भी लागू हो सकता है जब एक अकुशल या नौसिखिया कंप्यूटर प्रोग्रामर (या हाथ में समस्या से अनुभव नहीं किया जाता है) कुछ प्रोग्राम कोड को एक स्थान से कॉपी करता है और इसे किसी अन्य स्थान पर चिपकाता है, कोड के काम के बारे में बहुत कम या कोई समझ नहीं है , या क्या इसकी अपनी नई स्थिति में आवश्यक है।

    या आप बस कह सकते हैं: overengineering

    +4

    आईएमएचओ कार्गो पंथ प्रोग्रामिंग एक बहुत ही निम्न स्तर की घटना है, जो आम तौर पर यह समझने के बिना विभिन्न स्रोतों से अंधाधुंध प्रतिलिपि कोड से जुड़ी होती है। जबकि ओवरस्यूज डिज़ाइन पैटर्न एक उच्च स्तरीय गतिविधि है, अक्सर प्रतिलिपि + पेस्ट सहित, केवल सामान बनाने में नहीं, और इसके लेखक बहुत विस्तार से समझा सकते हैं कि यह कैसे उपयोगी होना चाहिए (आमतौर पर कुछ कल्पना वाले भविष्य में, जो कभी नहीं होगा) । –

    +1

    @ पीटररोक: सहमत है, मुझे लगता है कि "* इंटरफेस हर जगह *" और "* दस्तावेज/टिप्पणी कोड की प्रत्येक पंक्ति * * कार्गो पंथ प्रोग्रामिंग के विशिष्ट अवतार हैं। हालांकि * रणनीति * को धक्का देना सिर्फ इसलिए कि आपके पास एक 'अगर' है या सब कुछ के लिए कारखाने का उपयोग करना भी कार्गो पंथ, आईएमएचओ का एक उदाहरण है। –

    2

    साथ

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

    this article देखें कि इस आदमी ने सीखने के डिजाइन पैटर्न के 4 चरणों को क्या कहा है, इसकी एक अच्छी व्याख्या के लिए।

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