2009-02-05 4 views
5

से ठीक करने में मदद करने के लिए एंटीडोट्स मैं डेटाबेस बैक एंड के साथ 10 पेज की वेब साइट पर काम कर रहा हूं। ASP.Net में एमवीपी पैटर्न को लागू करने की कोशिश कर 500+ ऑब्जेक्ट्स उपयोग में हैं। मैं एक-पेज से कोड-निष्पादन का पता लगा रहा हूं, मेरी उंगली लगभग 40 मिनट के लिए विजुअल स्टूडियो में एफ -11 पर रही है, ऐसा कोई अंत नहीं है, संभवतः एक वेब पेज के लिए 1000+ विधि कॉल! अगर यह केवल 50 वस्तुएं थीं, तो एक चीज होगी, हालांकि, कोड निष्पादन इन सभी वस्तुओं के माध्यम से सांपों की तरह ही अपने विशाल गंदगी के घर में घबराए हुए लाखों चींटियों की तरह झुका हुआ है, जो ऑब्जेक्ट सुरंगों के साथ झुका हुआ है। इसलिए, एक नया विरोधी पैटर्न पैदा हुआ है: AntFarmएंटीफार्म एंटी-पैटर्न - टालने के लिए रणनीतियों, एंटीडोट्स

एंटीफार्म को "ओओ-मैडेन्स", "ओओ-फीवर", ओओ-एडीडी, या बस डिज़ाइन-पैटर्न जंकी भी कहा जाता है।

यह पहली बार नहीं है जब मैंने इसे देखा है, न ही अन्य कंपनियों में मेरे सहयोगी। ऐसा लगता है कि इस शैली को सक्रिय रूप से प्रचारित किया जा रहा है, या किसी भी मामले में कई ओओ/डीपी सुसमाचारों के बारे में गलतफहमी है ...

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

वैसे भी, मैं लिखने के रूप में एंटीफार्म विरोधी पैटर्न के एक महान उदाहरण के बीच में हूं (बोनस के रूप में, कोई दस्तावेज़ीकरण या टिप्पणियां नहीं हैं)। कृपया इस विचार को साझा करें कि यह विरोधी पैटर्न इतना प्रचलित कैसे बन गया है, हम इससे कैसे बच सकते हैं, और कैसे एक जीवित प्रणाली में इस पैटर्न को पूर्ववत या सौदा कर सकता है, इसके साथ काम करना चाहिए!

+0

ऑब्जेक्ट्स यूनिट-परीक्षण किए गए हैं? –

+0

अच्छा सवाल, मुझे लगता है कि देव टीम का मानना ​​था कि वे कुछ यूनिट परीक्षण कर रहे थे ... जैसे कि उन्होंने कई अन्य पैटर्न लागू किए हैं, वे एक विचार से शुरू करेंगे, और फिर युद्ध की गर्मी में कभी-कभी अलग-अलग गिरना शुरू हो जाएगा। हालांकि इस जटिल वास्तुकला के साथ, मुझे यकीन नहीं है कि अनन्य परीक्षण स्वयं ही बहुत मदद करेगा। – alchemical

उत्तर

8

मुझे लगता है कि पारनास ने इसे On the Criteria to be used in Decomposing Systems into Modules में काफी पसंद किया। प्रत्येक मॉड्यूल को एक डिज़ाइन निर्णय छुपाया जाना चाहिए, जो भविष्य में बदल सकता है। आम तौर पर, छिपाने के लिए कुछ भी नहीं वाला मॉड्यूल आमतौर पर केवल ओवरहेड होता है। वह कक्षाओं के बारे में बिल्कुल बात नहीं कर रहा था, लेकिन मुझे लगता है कि तर्क अभी भी लागू होता है।

1

धन्यवाद ग्लोमेक लेख एक दिलचस्प समस्या-स्थान के लिए है, ओओ क्या है, यानी अपनी वस्तुओं को डिजाइन करने के लिए ... सफलता या विफलता के लिए, लिंक के लिए धन्यवाद।

ओह हाँ, एंटी-पैटर्न डिज़ाइन को "एंट हिल" कहा जा सकता है, यह एक स्पष्ट वर्णन है जो मुझे लगता है। मुझे विश्वास है कि यह अभी काफी प्रचलित है, और लगता है कि बढ़ रहा है ... मैं अभी भी सोच रहा हूं कि हम इसे सामान्य रूप से कैसे दूर कर सकते हैं, और स्पष्ट, सरल कोड लिख सकते हैं जो केवल न्यूनतम जटिलता के साथ काम करता है ।

3

है डिजाइन पर की वजह से वास्तव में है (और यह यह की तरह लगता है) तो यहाँ आप के लिए कुछ समानार्थक शब्द हैं:

Gas Factory
Rube गोल्डवर्ग मशीन
हीथ रॉबिन्सन कोंटरापशन

लेकिन मेरी व्यक्तिगत नाम इसके लिए "बहुत कोशिश कर रहा है F # $% 3n कठिन"। मेरी संवेदना।

चीयर्स एड्रियन

+0

यह इसे डालने का एक शानदार तरीका है (बाद वाला विवरण)! – alchemical

+0

आप "एंटरप्राइज़ी" भूल गए हैं – GazTheDestroyer

2

कई फाइलों जहां एक करना होगा। बुरा। 10 वेबपृष्ठों के लिए 500 ऑब्जेक्ट्स पागल अनुपात लगता है। क्या आपने समाधान पर चल रहे कोड विश्लेषण को माना है? आप के साथ लड़ने के लिए कुछ दिलचस्प आंकड़े दे सकते हैं।

इसके अलावा मैं विरोधी विरोधी पैटर्न KISS को कॉल करता हूं।

0

समस्या यह है कि आपका डिज़ाइन पैटर्न स्वयं, गैर-ओओ है। गैर-ओओ पैटर्न से शुरू करें, इसे "ऑब्जेक्ट्स" के रूप में लागू करने का प्रयास करें, आप एक गड़बड़ी के साथ समाप्त हो जाते हैं।

सिर्फ इसलिए कि सिस्टम ओओपीएल में लिखा गया है, सिस्टम ओओ नहीं बनाता है।

0

यदि आप मानते हैं कि एक चींटी फार्म साधारण एजेंटों (चींटियों) के उपयोग के माध्यम से एक जटिल समस्या स्थान (चींटी खेत) का पता लगाने का एक प्रभावी तरीका है तो यह निश्चित रूप से कम विरोधी पैटर्न पैटर्न देखना शुरू कर देता है।

ओओपी की आलोचना 'अपने सिर में इसे फिट करने' की जटिलता के आधार पर हमेशा अनदेखा करती है कि (ए) अपने सिर में किसी भी चीज को फिट करना मुश्किल है (चाहे उसका ओओ या नहीं) और (बी) ओओ सक्रिय रूप से आपके सिर में यह सब कुछ कम करने की आवश्यकता को कम करता है

+0

तो क्या आप 50 ऑब्जेक्ट्स का उपयोग करने के लिए एक मूल वेब पेज स्कूल विचार तैयार करने के वकील हैं? वहां आप में से कुछ हैं ... – alchemical

+0

एक मूल स्ट्रिंग संगतता आपको सभी संभावनाओं में पिछले 50 वस्तुओं को प्राप्त करेगी, केवल उन सभी बॉयलरप्लेट को आपको http अनुरोधों को संभालने के लिए आवश्यक है। किस संख्या के लिए स्वीकार्य है ... मैं उसी कारण से वस्तुओं की संख्या पर एक आंकड़ा नहीं डालूंगा क्योंकि मैं आपके द्वारा प्रदान किए गए पृष्ठों में आपके द्वारा प्राप्त तत्वों की संख्या पर कोई आंकड़ा नहीं लगाएगा, यह इसे प्रदर्शित करने जा रहा है पेज क्या कर रहा है – CurtainDog

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