मैं हाल ही में ग्रहण के लिए सोनारलिंट का उपयोग कर रहा हूं , और इससे मुझे बहुत मदद मिली। हालाँकि, यह मेरे लिए एक सवाल है जो चक्रीय जटिलता के बारे में है।
सोनारलिंट को 10 के सीसी के रूप में स्वीकार्य माना जाता है, और कुछ मामले हैं जहां मैं इसके परे हूं, लगभग 5 या 6 इकाइयां। वे भाग मैपर से संबंधित हैं जहाँ मान भिन्न चर पर निर्भर करते हैं, उदाहरण के लिए:
- फ़ील्ड A स्ट्रिंग sA पर निर्भर करता है;
- फ़ील्ड बी स्ट्रिंग एसबी पर निर्भर करता है;
- फ़ील्ड सी स्ट्रिंग स्ट्रिंग पर निर्भर करता है;
- आदि ...
मेरे पास कोई दूसरा विकल्प नहीं है कि मैं if
हर क्षेत्र के लिए कुछ करूं । यह मेरी पसंद नहीं है (सौभाग्य से) लेकिन पहले से ही विद्यमान और जटिल प्रणाली जिसे मैं स्वयं नहीं बदल सकता।
मेरे प्रश्न का मूल है: एक ही पद्धति में बहुत अधिक सीसी न होना इतना महत्वपूर्ण क्यों है ? यदि आप जटिलता को कम करने के लिए अपनी कुछ शर्तों को एक या अधिक उप-विधियों में स्थानांतरित करते हैं, तो यह आपके समग्र कार्य की लागत को कम नहीं करता है, यह सिर्फ समस्या को कहीं और ले जा रहा है, मुझे लगता है?
(छोटी गलतियों के लिए क्षमा करें, यदि कोई हो)।
संपादित करें
मेरा प्रश्न वैश्विक साइक्लोमैटिक जटिलता का उल्लेख नहीं करता है, लेकिन केवल एकल विधि जटिलता और विधि विभाजन के लिए है (मेरे पास एक कठिन समय है जो यह बताता है कि वास्तव में मेरा क्या मतलब है, क्षमा करें)। मैं पूछ रहा हूं कि अपनी शर्तों को छोटे तरीकों में विभाजित करने की अनुमति क्यों है यदि यह अभी भी एक 'सुपर विधि' से संबंधित है, जो कि हर उप-विधि को निष्पादित करेगा, इस प्रकार एल्गोरिथ्म में जटिलता जोड़ देगा।
हालाँकि दूसरा लिंक ( एंटी-पैटर्न के बारे में ) बहुत मदद करता है।