سؤال

ما هي فوائد إجراء تحليل التعليمات البرمجية الثابتة على التعليمات البرمجية المصدر الخاصة بك؟كنت ألعب مع FxCop وكنت أتساءل عما إذا كانت هناك أي فوائد تتجاوز التأكد من اتباعك لمعايير البرمجة.

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

المحلول

هناك جميع أنواع الفوائد:

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

نلقي نظرة على مراقبة المصدر

نصائح أخرى

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

على أية حال، فإن الجمع الحكيم بين ملفات التعريف (التحليل الديناميكي أو تحليل وقت التشغيل) والتحليل/الفحص الثابت هو وحده الذي يضمن وجود قاعدة تعليمات برمجية متسقة وموثوقة.يالله وقليل من الحظ ;-)

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

  • يكتشف الأخطاء (على سبيل المثال.قد يشير التحذير بشأن الوسيطة غير المستخدمة إلى أنك استخدمت الوسيطة الخاطئة في نص الطريقة).

  • إن فهم الإرشادات التي تتبعها FxCop يساعدك على أن تصبح مطورًا أفضل.

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

الحد الأدنى:

  • إذا كنت تقوم بتطوير مكتبات فئة قابلة لإعادة الاستخدام، مثل إطار عمل داخلي، فتأكد من أن لديك مطورين جيدين واستخدم FxCop.

  • بالنسبة لتطوير التطبيقات اليومية مع فرق ذات قدرات مختلطة، فمن المحتمل ألا يكون ذلك عمليًا.

في الواقع، لا يساعدك برنامج fxcop بشكل خاص في اتباع معايير البرمجة.ما يساعدك عليه هو تصميم إطار عمل/واجهة برمجة تطبيقات مدروسة جيدًا.صحيح أن أجزاء من معيار الترميز (مثل غلاف الأعضاء العامين) سيتم التقاطها بواسطة FxCop، لكن معايير الترميز ليست هي محور التركيز.

يمكن التحقق من معايير الترميز مع com.stylecop, ، الذي يتحقق من الكود المصدري بدلاً من MSIL مثلما يفعل fxcop.

يمكنه اكتشاف الأخطاء الفعلية، مثل نسيان التخلص من معرفات الهوية.

يعتمد ذلك على القواعد، ولكن يمكن تجنب العديد من العيوب الدقيقة، ويمكن تنظيف التعليمات البرمجية، ويمكن اكتشاف مشاكل الأداء المحتملة وما إلى ذلك.

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

FxCop

هناك قائمة جميع التحذيرات في FxCop.يمكنك أن ترى أن هناك تحذيرات من المناطق التالية:

تحذيرات التصميم

التحذيرات التي تدعم تصميم المكتبة المناسب كما هو محدد من قبل إرشادات تصميم إطار عمل .NET.

تحذيرات العولمة

التحذيرات التي تدعم المكتبات والتطبيقات الجاهزة العالمية.

تحذيرات إمكانية التشغيل البيني

التحذيرات التي تدعم التفاعل مع عملاء كوم.

تحذيرات التسمية

التحذيرات التي تدعم الالتزام باتفاقيات التسمية لإرشادات تصميم إطار عمل .NET.

تحذيرات الأداء

التحذيرات التي تدعم المكتبات والتطبيقات عالية الأداء.

تحذيرات أمنية

التحذيرات التي تدعم المكتبات والتطبيقات الأكثر أمانًا.

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

أدوات أخرى

يمكن أن تساعدك أدوات الفحص الثابتة الأخرى في اكتشاف الأخطاء مثل عدم التخلص من IDisposable, وتسريبات الذاكرة وغيرها من الأخطاء الدقيقة.للحصول على حالة متطرفة، راجع ما لم يتم إصداره بعد NStatic أداة.

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

الفوائد هي أنه يمكنك ذلك تلقائيا إيجاد وقياس الديون الفنية ضمن تطبيق البرنامج الخاص بك.

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

ما هي فوائد إجراء تحليل التعليمات البرمجية الثابتة على التعليمات البرمجية المصدر الخاصة بك؟

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

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

يمكن أيضًا العثور على وصف أكثر تفصيلاً للتقنيات والفوائد على هذه الصفحة: www.mathworks.com/static-ana Analysis

سأحاول وصف أهمها:

  • يحدد تحليل الكود الثابت الاكتشافات في البرنامج في مرحلة مبكرة، مما يؤدي إلى انخفاض تكلفة إصلاحها.
  • يمكنه اكتشاف العيوب في مدخلات ومخرجات البرنامج التي لا يمكن رؤيتها من خلال الاختبار الديناميكي.
  • يقوم تلقائيًا بمسح الرموز غير المترجمة وتحديد نقاط الضعف.
  • ما أعرفه من التعامل مع checkmarx هو أن تحليل الكود الثابت يعمل على إصلاح نقاط الضعف المتعددة في نقطة واحدة، مما يوفر الكثير من الوقت للمطور.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top