पर इंगित करेंगे, मेरे वर्तमान प्रोजेक्ट पर हमने कोड मेट्रिक्स "रखरखाव सूचकांक" और "साइक्लोमेटिक कॉम्प्लेक्सिटी" कोड के लिए कुछ लक्ष्य निर्धारित किए हैं। रखरखाव सूचकांक 60 या उच्चतम और साइक्लोमेटिक जटिलता 25 या उससे कम होना चाहिए। हम जानते हैं कि 60 और उच्चतम के रखरखाव सूचकांक एक बहुत अधिक है।क्या आप अपने LINQ प्रश्नों को एक्सटेंशन विधियों में
हम फिल्टर/समूह/चयन इकाइयों को फ़िल्टर करने के लिए बहुत सारे linq का भी उपयोग करते हैं। मुझे पता चला कि इन linq प्रश्नों को रखरखाव सूचकांक पर उच्च स्कोरिंग नहीं कर रहे हैं। विस्तार विधियों में इस प्रश्न को सारणी देना मुझे एक उच्च रखरखाव सूचकांक दे रहा है, जो कि अच्छा है। लेकिन ज्यादातर मामलों में विस्तार विधियां अब सामान्य नहीं हैं क्योंकि मैं उन्हें सामान्य प्रकारों के बजाय अपने प्रकार के साथ उपयोग करता हूं।
उदाहरण के लिए LINQ क्वेरी बनाम विस्तार विधि निम्नलिखित:
LINQ क्वेरी
List.Where(m => m.BeginTime >= selectionFrom && m.EndTime <= selectionTo)
एक्सटेंशन विधि:
public static IEnumerable<MyType> FilterBy(this IEnumerable<MyType> source, DateTime selectionFrom, DateTime selectionTo)
{
return (IEnumerable<MyType>)source.Where(m => m.BeginTime >= selectionFrom && m.EndTime <= selectionTo);
}
List.FilterBy(selectionFrom, selectionTo);
विस्तार विधि मुझे एक अनुरक्षणीयता सूचकांक देता है 6 अंक में सुधार, और एक अच्छा धाराप्रवाह वाक्यविन्यास देता है। दूसरी तरफ मुझे एक स्थिर वर्ग जोड़ना है, यह सामान्य नहीं है।
किसी भी दृष्टिकोण के बारे में कोई विचार आपके पक्ष में होगा? या हो सकता है कि रखरखाव सूचकांक में सुधार के लिए linq प्रश्नों को दोबारा कैसे करें, इसके बारे में अलग-अलग विचार हो?
मेट्रिक्स केवल एक उपाय है, लेकिन कभी भी लक्ष्य नहीं है। –
मैं किसी भी रखरखाव सूचकांक की थोड़ी संदिग्ध हूं जो एक अस्पष्ट काला बॉक्स है। कम से कम चक्रवात जटिलता के साथ यह वास्तव में मापा जा रहा है कि स्थापित करने के लिए संभव है। क्या आपको पता है कि यह कहीं भी (नहीं) स्पष्टीकरण [http://msdn.microsoft.com/en-us/library/bb385914.aspx) से परे समझाया गया है? – AakashM