2010-01-11 16 views
5

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

+1

सामुदायिक विकी? –

+4

कुछ एंटरप्राइज़ आर्किटेक्चर स्वयं को एक विरोधी पैटर्न पर विचार कर सकते हैं। – cletus

+0

मुझे नहीं लगता कि यह समुदाय विकी है, लेकिन निर्देशित होने के लिए खुश –

उत्तर

6

विकिपीडिया anti-patterns के विषय पर काफी व्यापक है और यहां विषय पर पुस्तक है: AntiPatterns

शीर्ष पाँच मेरे अनुभव में:

  1. Premature optimization
  2. Anemic Domain Model
  3. God object
  4. Golden Hammer (cf. नियमित अभिव्यक्ति)
  5. Chain Gang
+0

में बदल गया है धन्यवाद जेसन - शीर्ष 2 या 3 पर कोई विचार है? –

+1

कि विरोधी पैटर्न कैटलॉग frivolous प्रविष्टियों और बाइक शेड चर्चा से भरा है। –

+0

धन्यवाद जेसन - यह बहुत अच्छा है! –

3

एंटरप्राइज sinkhole:

1: पढ़ा है कि अपने डेटाबेस का उपयोग एक अलग परत

2 में होना चाहिए: अरे, हम एक डेटाबेस परत मिल गया है।

2 (बी) अरे, हमें हमारे डेटाबेस को दूर करने के लिए एक प्रतिनिधि परत भी मिली है।

3: law of leaky abstractions लागू करें- क्योंकि प्रतिनिधियों में ऐसी विधियां हैं जो चीजें प्राप्त करती हैं, मान लीजिए कि वे परिणामों के बारे में सोचा नहीं है - जैसे कि "getPurchaseOrder()" उत्तराधिकार में 10 गुना एक पृष्ठ, भले ही getPurchaseOrder() एक विधि है जो 5 अलग डेटाबेस कॉल लपेटती है।

4: वापस बैठें और 100 अलग-अलग डेटाबेस कॉल (दुर्भाग्य से, असाधारण नहीं) के साथ लोड होने वाले अपने वेब पृष्ठों का आनंद लें।

सुनिश्चित नहीं है कि मैं इसे एक एंटीपाटर के रूप में क्या कहूंगा? शायद "परतें मुक्त नहीं हैं"?

+0

शेष एप्लिकेशन से डेटा एक्सेस चिंताओं को अलग करने के लिए सिस्टम में हर तरह की इकाई के लिए प्राप्त करने और सेट विधियों के साथ, आपके द्वारा वर्णित आदिम भंडार पैटर्न का जरूरी नहीं है। #s 3 और 4 के सुझाव देने के लिए यह अपमानजनक है #s 1 और 2. –

+1

@Rex के प्राकृतिक परिणाम हैं - वे प्राकृतिक परिणाम नहीं हो सकते हैं, लेकिन वे निश्चित रूप से एक एंटीपाटर हैं। ऐसा कुछ जो अक्सर के खिलाफ वार्डिंग पर विचार करने के लिए पर्याप्त होता है। – Tom

+1

@Rex, मैं एक एंटीपेटर्न को नकारात्मक पैटर्न मानता हूं जो कोड में पड़ सकता है। मैं यहां जो सोच रहा हूं वह परतों के खिलाफ कोडिंग के बारे में जागरूक है, या सोच रहा है कि आपको विचार करना है, वे वास्तव में क्या कर रहे हैं। जैसे ऊपर दिए गए मेरे उदाहरण को देखते हुए, आप देखते हैं (ठीक है, मैंने देखा है, वैसे भी, लोग एक पंक्ति लिखते हैं जैसे: यदि (getPurchaseOrder()! = null && getPurchaseOrder()। कीमत> 10)। –

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