سؤال

هل هناك أي أدوات متاحة لحساب مقاييس الكود (على سبيل المثال عدد خطوط الكود، والتعقيد الدوري، والاقتران، والتماسك) لمشروعك وبمرور الوقت إنتاج رسم بياني يوضح الاتجاهات؟

هل كانت مفيدة؟

المحلول

في مشروعي الأخير استخدمته مراقبة المصدر.إنها أداة مجانية رائعة لتحليل مقاييس الكود.
فيما يلي مقتطف من موقع SourceMonitor الرسمي:

  • يجمع المقاييس في تمريرة واحدة سريعة من خلال ملفات المصدر.
  • يقيس مقاييس الكود المصدر المكتوبة في C ++ ، C ، C#، VB.NET ، Java ، Delphi ، Visual Basic (VB6) أو HTML.
  • يتضمن مقاييس مستوى الوظيفة لـ C ++ و C و C#و VB.NET و Java و Delphi.
  • يحفظ المقاييس في نقاط التفتيش للمقارنة أثناء مشاريع تطوير البرمجيات.
  • يعرض ويطبع المقاييس في الجداول والمخططات.
  • تعمل داخل واجهة المستخدم الرسومية لنظام التشغيل Windows أو داخل البرامج النصية باستخدام ملفات أوامر XML.
  • تصدير المقاييس إلى ملفات XML أو CSV (القيمة المفصولة للفاصلة) لمزيد من المعالجة مع أدوات أخرى.

ل.NET بجانبه نديبند وهي ببساطة أفضل أداة يمكنني أن أوصي بها فيل.

يمكن للأدوات التالية إجراء تحليل الاتجاه:

نصائح أخرى

سونار هي بالتأكيد أداة يجب عليك مراعاتها، خاصة بالنسبة لمشاريع Java.ومع ذلك، فإنه سيتعامل أيضًا مع كود PHP أو C/C++ وFlex وCobol.

فيما يلي لقطة شاشة توضح بعض المقاييس الخاصة بالمشروع:

نص بديل http://sonar.codehaus.org/wp-content/uploads/2009/05/squid-metrics.png

لاحظ أنه يمكنك تجربة الأداة باستخدام موقعهم التجريبي على http://nemo.sonarsource.org

نديبند ل. صافي

كنت أبحث أيضًا عن أداة/مكون إضافي لمقاييس التعليمات البرمجية لـ IDE الخاص بي ولكن على حد علمي لا يوجد شيء (بالنسبة لـ Eclipse) يعرض أيضًا رسمًا بيانيًا للتعقيد خلال فترة زمنية محددة.ومع ذلك، فقد وجدت البرنامج المساعد لمقاييس الكسوف, ، يمكنه التعامل مع:

  • تعقيد مكابي السيكلوماتيكي
  • وصلات صادرة
  • عدم التماسك في الأساليب
  • خطوط التعليمات البرمجية في الطريقة
  • عدد الحقول
  • عدد المستويات
  • عدد السكان المحليين في النطاق
  • عدد المعلمات
  • عدد البيانات
  • الطرق المرجحة لكل فئة

وأثناء استخدامه، لم يفوتني خيار الرسوم البيانية الذي تبحث عنه أيضًا.
أعتقد أنه إذا لم تجد أي مكونات إضافية/أدوات يمكنها التعامل مع الرسوم البيانية بمرور الوقت، فيجب عليك البحث عن الأداة التي تناسبك أكثر وتقدم لك جميع المعلومات التي تحتاجها؛حتى لو كانت المعلومات المقدمة مخصصة فقط للإنشاء الحالي لمشروعك.

كملاحظة جانبية، البرنامج المساعد لمقاييس الكسوف يسمح لك ب تصدير البيانات إلى ملف خارجي (ينتقل الرابط إلى مثال)، لذلك إذا كنت تستخدم أداة التحكم بالمصادر، ويجب عليك ذلك!، فيمكنك دائمًا تصدير البيانات الخاصة بالبنية المحددة وتخزين الملف مع التعليمات البرمجية المصدر، وبهذه الطريقة لا يزال لديك (أساسي) ) طريقة للعودة بالزمن والتحقق من الاختلافات.

ضع في اعتبارك أن ما تقيسه هو ما تحصل عليه.loc لا يقول شيئًا عن الإنتاجية أو الكفاءة.

قم بتقييم المبرمج حسب أسطر التعليمات البرمجية وستحصل على..أسطر من التعليمات البرمجية.نفس الحجة تنطبق على المقاييس الأخرى.

أوتوه.. http://www.crap4j.org/ هو مقياس متحفظ ومفيد للغاية.فهو يحدد التعقيد فيما يتعلق بالتغطية.

NDepend، أنا أستخدمه وهو الأفضل لهذا الغرض.افحص هذا :http://www.codeproject.com/KB/dotnet/NDepend.aspx

فيما يتعلق بالأداة نديبند يأتي مزودًا بـ 82 مقياسًا مختلفًا للكود، بدءًا من عدد أسطر الكود وتصنيف الطريقة (الشعبية)، والتعقيد الدوري، وعدم تماسك الأساليب، والتغطية المئوية (المستخرجة من NCover أو VSTS)، وعمق الميراث...

ومن خلال نظام القواعد الخاص به، يمكن لـ NDepend أيضًا العثور على المشكلات والتقديرات الدين الفني وهو مقياس كود مثير للاهتمام (مقدار جهد التطوير لإصلاح المشكلات ضد. مقدار وقت التطوير الذي يتم إفساده سنويًا للسماح بحل المشكلات).

كل هذه المقاييس مفصلة هنا.

إذا كنت في مساحة .NET، فـ Developer Express' CodeRush يوفر LOC، التعقيد السيكلوماتيكي و (ممتاز إلى حد ما، IMHO) تعقيد الصيانة تحليل الكود في الوقت الحقيقي.

(نأسف على رابط تعقيد الصيانة؛انها تذهب إلى ذاكرة التخزين المؤقت لجوجل.يبدو أن الأصل غير متصل بجهاز الصراف الآلي).

تعتبر Atlassian FishEye أداة ممتازة أخرى لهذه المهمة.فهو يتكامل مع نظام التحكم بالمصدر لديك (يدعم حاليًا CVS وSVN وPerforce)، ويحلل جميع ملفاتك بهذه الطريقة.التحليل أساسي إلى حد ما، والمنتج نفسه تجاري (لكن سعره معقول جدًا، IMO).

يمكنك أيضًا الحصول على وظيفة إضافية تسمى Crucible والتي تسهل مراجعات الأكواد النظيرة.

بالنسبة لـ Visual Studio .NET (على الأقل C# وVB.NET) أجد البرنامج المجاني أدوات الاستوديو لتكون مفيدة للغاية للمقاييس.كما أنه يضيف عددًا من الميزات الموجودة في الأدوات التجارية مثل ريشاربر.

محلل الكود هي أداة بسيطة تولد هذا النوع من المقاييس.

alt text
(مصدر: teel.ws)

بالنسبة لبيثون، بيلينت يمكن أن توفر بعض مقاييس جودة التعليمات البرمجية.

هناك أيضا البرنامج المساعد لمقاييس الكود ل العاكس, ، في حالة استخدام .NET.

أوصي ملحق عارض مقاييس الكود للاستوديو البصري.

من السهل جدًا تحليل الحل مرة واحدة، ويمكنك أيضًا إجراء مقارنة إذا أحرزت تقدمًا؛-)

اقرأ أكثر هنا حول ال سمات

على جبهة PHP، أعتقد على سبيل المثال phpUnderControl يتضمن المقاييس من خلال phpUnit (إذا لم أكن مخطأ).

ضع في اعتبارك أن المقاييس غالبًا ما تكون معيبة.على سبيل المثال، المبرمج الذي يعمل على حل مشكلات تافهة سوف ينتج المزيد من التعليمات البرمجية وسيظهر بشكل أفضل على الرسوم البيانية الخاصة بك، مقارنة بالمبرمج الذي يحل المشكلات المعقدة.

إذا كنت تبحث عن بعض تحليلات الاتجاه، فهل يعني ذلك حقًا أي شيء يمكن قياسه خارج نطاق SLOC؟

حتى لو كنت تقوم فقط بإجراء grep لتتبع الفواصل المنقوطة وحساب عدد الأسطر التي تم إرجاعها، فإن ما تبحث عنه هو الاتساق في تقنية قياس SLOC.وبهذه الطريقة يمكن مقارنة قياس اليوم بقياس الشهر الماضي بطريقة ذات معنى.

لا أستطيع حقًا أن أرى ما الذي سيعطيه اتجاه تعقيد مكابي السيكلوميتري؟أعتقد أنه يجب استخدام CC بشكل أكبر للحصول على لمحة سريعة عن الجودة لتقديم تعليقات للمطورين.

يحرر:أوه.فكرت للتو في بعض القياسات الأخرى التي قد تكون مفيدة.التعليقات كنسبة مئوية من SLOC وتغطية الاختبار.لا شيء منهما تريد أن تتركه.إن العودة لتعديل أي من هذين الأمرين لا يكون أبدًا بمثابة إله مثل القيام بهما "في خضم اللحظة!"

هث.

هتافات،

روب

فهم Scitools لديه القدرة على إنشاء الكثير من مقاييس التعليمات البرمجية لك.ليس لدي الكثير من الخبرة في ميزات مقاييس الكود، لكن ميزات التحليل الثابت بشكل عام كانت رائعة وكان السعر معقولًا جدًا.وكان الدعم ممتازا.

مقياس رمز المشروع يقدم تقريرًا عن تاريخ التطوير التفاضلي (بتنسيق Excel) والذي يوضح مقاييس تقدم الترميز في SLOC والوقت ونسبة الإنتاجية (يعتمد تقدير الوقت على التعقيد الدوري والمقاييس الأخرى).ثم في Excel يمكنك بسهولة إنتاج الرسم البياني الذي تريده.

راجع هذه المقالة التي تصفها خطوة بخطوة:http://www.projectcodemeter.com/cost_estimation/help/FN_monsizing.htm

بالنسبة لجافا، يمكنك تجربة أداتنا، بوابة الجودة الذي يحسب أكثر من 60 مقياسًا للكود المصدر، ويتتبع جميع التغييرات عبر الوقت، كما يوفر تقييمًا شاملاً لقابلية صيانة الكود المصدري.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top