2010-04-27 18 views
5

यदि हमारे पास किसी एप्लिकेशन में परिभाषित पदानुक्रम था। पूर्व 3-स्तरीय वास्तुकला के लिए, हम बाद के डेवलपर्स को मानदंडों का उल्लंघन करने से कैसे रोक सकते हैं?आर्किटेक्चर का उल्लंघन प्रतिबंधित करें - एएसपीएनटी एमवीपी

पूर्व में, एमवीपी (एएसपीएनटी एमवीसी नहीं) वास्तुकला के मामले में, प्रस्तुतकर्ता हमेशा मॉडल को बांधना और देखना चाहिए। यह उचित यूनिट परीक्षण कार्यक्रम लिखने में मदद करता है। हालांकि, हमारे पास ऐसे उदाहरण थे जहां लोग सीधे मॉडल को आयात करते थे और मानदंडों का उल्लंघन करने वाले कार्यों को बुलाते थे और इसलिए परीक्षण के मामलों को ठीक से लिखा नहीं जा सका।

क्या कोई तरीका है कि हम किस वर्ग को कक्षाओं के एक समूह से प्राप्त करने की अनुमति दे सकते हैं? मैं एक अलग डिजाइन पैटर्न को अपनाने सहित विभिन्न संभावनाओं को देख रहा हूं, हालांकि एक नया दृष्टिकोण शामिल कोड परिवर्तन के लायक होना चाहिए।

उत्तर

2

मुझे डर है कि यह संभव नहीं है। हमने गुणों की सहायता से इसे प्राप्त करने का प्रयास किया और हम सफल नहीं हुए। आप मेरे past post on SO का उल्लेख करना चाह सकते हैं।

सबसे अच्छा आप कर सकते हैं NDepend के साथ अपनी असेंबली जांचना जारी रखें। NDepend आपको अपने प्रोजेक्ट में असेंबली के निर्भरता आरेख दिखाता है और आप तुरंत उल्लंघनों को ट्रैक कर सकते हैं और कार्रवाई को सक्रिय रूप से ले सकते हैं।

alt text http://www.ndepend.com/Res/NDependBig17.png

+0

@this .__ curious_geek: वास्तुकला शैली के भीतर काम करने के तरीके के बारे में अधिक प्रशिक्षण प्रदान करें: मुझे NDepend को इंगित करने के लिए धन्यवाद। मैं इसे देख लूंगा। कूल निक बीटीडब्ल्यू .. –

+0

क्या आप कृपया http://stackoverflow.com/questions/8851933/event-bubbling-and-mvp-asp-net का उत्तर दे सकते हैं? – Lijo

0

आप सॉफ्टवेयर के साथ लोगों की समस्या को हल करना चाहते हैं? दर्द की दुनिया के लिए तैयार!

समस्या को हल करने का तरीका यह सुनिश्चित करना है कि आपके पास लोगों के साथ काम करने के तरीके हैं कि आप उन समस्याओं के साथ खत्म नहीं होते .... जोड़ी प्रोग्रामिंग/समीक्षा। जब वे पहली बार प्रोजेक्ट पर आते हैं तो लोगों की प्रेरणा, आदि

ऐसा कहकर, आप सॉफ़्टवेयर का विश्लेषण करने और सामान्य समस्याओं की तलाश करने वाले टूल लिख सकते हैं। लेकिन लोग बहुत रचनात्मक हैं और चीजों को करने के सभी प्रकार के विचित्र तरीके पा सकते हैं।

+0

ओह मुझे दर्द ठीक महसूस हो रहा है !!! मैं उम्मीद के खिलाफ उम्मीद कर रहा था कि अगर कुछ प्रकार के ढांचे/उपकरण थे जो कुछ वास्तुशिल्प नियमों का विश्लेषण/सत्यापन कर सकते हैं मुझे लगता है कि समीक्षा करने के लिए कोई शॉर्टकट नहीं है? –

+0

अच्छी तरह से, असेंबली को अलग करके और मॉडल को पूरी तरह से स्वतंत्र रूप से स्वतंत्र बनाकर, प्रस्तुतकर्ता सभी ऑब्जेक्ट्स को दृश्य सौदों को प्रदान करता है, यह सत्यापित कर सकता है कि दृश्य मॉडल का उपयोग नहीं करता है। लेकिन इसके लायक से ज्यादा दर्द होता है। अधिकतर। –

+0

लेकिन यह संभवतः आपकी समस्या को कहीं और ले जायेगा .... आपके पास –

0

जैसे ही आपकी संतुष्टि के अनुसार सबकुछ बंद हो जाता है, नई आवश्यकताएं आती हैं और आपको इसके पक्ष में तोड़ना होगा।

प्रोग्रामिंग स्तर पर ऐसी स्ट्रिंग को लागू करना .NET के साथ लगभग असंभव है क्योंकि प्रोग्रामर सभी निजी सदस्यों को प्रतिबिंब के माध्यम से एक्सेस कर सकता है।

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

1

इसके बाद से मैं इस प्रश्न पोस्ट लगभग 3 साल हो गया है। मुझे कहना होगा कि मैंने शानदार जवाबों के बावजूद इसे खोजने की कोशिश की है। सबक मैं अब तक सीखा है में से कुछ -

  1. अधिक कोड गंध उपभोक्ताओं को देखकर बाहर आ (इकाई परीक्षण, सबसे अच्छी जगह देखने के लिए कर रहे हैं यदि आप उन्हें है)।

    • एक निर्माता में पैरामीटर की संख्या निर्भरताओं की संख्या का प्रत्यक्ष संकेत है। बहुत अधिक निर्भरता => कक्षा बहुत अधिक कर रही है।
    • (सार्वजनिक) एक कक्षा में तरीकों की संख्या
    • इकाई परीक्षण का सेटअप लगभग हमेशा इस दूर दे देंगे
  2. कोड, समय के साथ गिरावट जब तक कि वहाँ एक केंद्रित तकनीकी ऋण स्पष्ट करने के लिए संयुक्त प्रयास है और पुनर्रचना । भाषा के बावजूद यह सच है।

  3. उपकरण केवल कुछ हद तक मदद कर सकते हैं। लेकिन औजारों और परीक्षणों का संयोजन अक्सर विभिन्न गंधों पर पर्याप्त संकेत देता है। उन्हें समय-समय पर पकड़ने के लिए थोड़ा सा अनुभव लगता है, विशेष रूप से प्रत्येक गंध के महत्व और प्रभाव को समझने के लिए।

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