पृष्ठभूमि की एक बिट: एक टीम के नेतृत्व के रूप में मैं हमारे कोड की गुणवत्ता की जांच के लिए सप्ताह में एक बार एनडीपीएन का उपयोग करता हूं। विशेष रूप से परीक्षण-कवरेज, कोड की लाइनें और चक्रवाती जटिलता मैट्रिक्स मेरे लिए अमूल्य हैं। लेकिन जब यह स्तर और निर्भरता चक्र के नीचे आता है तो मैं थोड़ा ... अच्छी तरह से चिंतित हूं। पैट्रिक स्मैचिया के पास एक अच्छा ब्लॉग पोस्ट है जो समतलन के लक्ष्य का वर्णन करता है।
स्पष्ट होने के लिए: "निर्भरता चक्र" के तहत मैं दो नामस्थानों के बीच एक परिपत्र संदर्भ समझता हूं।
वर्तमान में मैं एम्बेडेड इंस्ट्रूमेंट्स के लिए विंडोज सीई आधारित जीयूआई फ्रेमवर्क पर काम कर रहा हूं - बस एंड्रॉइड ग्राफिक्स प्लेटफॉर्म के बारे में सोचें, लेकिन बहुत कम एंड इंस्ट्रूमेंट्स के लिए। फ्रेमवर्क एक एकल असेंबली है जिसमें कोड की 50.000 लाइनें (परीक्षण बाहर किए गए) हैं। रूपरेखा को निम्नलिखित नामस्थानों में विभाजित किया गया है:
- कोर नेविगेशन और मेनू सबसिस्टम
- स्क्रीन सबसिस्टम (प्रस्तुतकर्ता / दृश्य / ...)
- नियंत्रण / विजेट परत
आज मैंने आधे दिन कोड को उचित स्तरों पर लाने की कोशिश में बिताए [सामान्य में कोई समस्या नहीं है] के लिए धन्यवाद, लेकिन सभी मामलों में कुछ निर्भरता चक्र मौजूद हैं।
तो मेरा सवाल: आप "नो डिपेंडेंसी साइकिल" नियम का कितनी सख्ती से पालन करते हैं? क्या स्तरीकरण वास्तव में महत्वपूर्ण है?