2011-04-13 12 views
15

के लिए विशिष्ट सॉफ़्टवेयर मीट्रिक हम क्लोजर कोड के लिए सॉफ़्टवेयर मीट्रिक एकत्र करने के लिए एक स्थिर विश्लेषक लिखने पर विचार कर रहे हैं। निस्संदेह यह स्पष्ट सामानों जैसे फाइलों, कार्यों, प्रति फ़ंक्शन पैरामीटर इत्यादि को संभालेगा। मुझे आश्चर्य है कि क्लोजर कोड के लिए विशिष्ट कोई मेट्रिक्स हैं या नहीं। कोई विचार?क्लोजर प्रोग्राम

उत्तर

13

औसत पर - मुझे लगता है कि सॉफ़्टवेयर मीट्रिक एक संदिग्ध विचार है - वे आम तौर पर आपको वास्तव में महत्वपूर्ण प्रश्न से विचलित करते हैं, "हम ग्राहक को कितना मूल्य दे रहे हैं?"।

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

तो यहां कुछ ऐसे हैं जो क्लोजर-विशिष्ट हो सकते हैं।

  • उच्च-स्तरीय परिभाषित करता है की संख्या (शायद कुल प्रतीक के अनुपात के रूप में व्यक्त गिनती?)
  • जावा युग्मन: (। नई, className, .someMethod आदि) जावा इंटरॉप से ​​संबंधित प्रतीकों में से% - आदर्श जावा इंटरऑप के लिए ज़िम्मेदार विशिष्ट मॉड्यूल तक सीमित युग्मन रखें, यानी अंतराल को प्रबंधित करने वाले पुस्तकालयों को छोड़कर हर जगह कम से कम वेरी होना चाहिए।
  • समारोह defns का औसत अधिकतम नेस्टिंग स्तर (मैं 5ish अच्छा लगता है, 10+ बुरा ??)
  • मैक्रो घनत्व: रूपों है कि मैक्रो विस्तार की आवश्यकता होती है
  • docstrings साथ कार्यों की% प्रतीकों में से
  • % की% या समारोह मापदंडों प्रकार के साथ परिभाषित संकेत
  • गुमनाम कार्यों का औसत आकार (शायद ये छोटा होना चाहिए!) clojure.core में कार्यों के लिए इस्तेमाल किया की
  • %
  • ("शब्दावली रेंज" और कोड की मिलावट के कुछ विचार देता है)
  • (धन्यवाद एस निकिक!) बनाए गए रेफ-प्रकारों की संख्या (गतिशील वर्र्स, परमाणु, रेफरी और एजेंट) - यदि आप अपने उत्परिवर्तनीय राज्य पर सावधानीपूर्वक नियंत्रण रखना चाहते हैं तो आवश्यक है!

पेज। यदि आप यह काम करते हैं तो कुछ अलग-अलग ओपन सोर्स क्लोजर परियोजनाओं में परिणामों में भिन्नता देखना वास्तव में दिलचस्प होगा!

+0

मैं विरोधी मेट्रिक्स भावना को समझता हूं। मुझे लगता है कि मेट्रिक्स केवल समस्याग्रस्त क्षेत्रों में ज़ूम करने के लिए उपयोगी हैं। अच्छा जवाब बीटीडब्ल्यू। –

+0

काउंटीग रेफ-टाइप वास्तव में असंतोषजनक है। रेफरी/परमाणु/एजेंट और गतिशील युद्धों की गणना (1.3 में)। – nickik

+0

@ निकिक - पूरी तरह से सहमत रेफ प्रकार बहुत महत्वपूर्ण हैं। हालांकि यह समझना मुश्किल है कि आप स्थिर विश्लेषक में क्या मीट्रिक का उपयोग करेंगे? मुझे जो समस्या है, वह यह है कि इन्हें अक्सर गतिशील रूप से आवंटित किया जाता है, इसलिए उदाहरण के लिए रेफ/परमाणु/एजेंट प्रतीकों को गिनने के लिए जरूरी नहीं है ..... वैसे भी सूची – mikera