يقدم فريق PVS-Studio ومنتجنا مساهمة كبيرة في تحسين جودة البرامج. علاوة على ذلك ، بالإضافة إلى اكتشاف الأخطاء في المشاريع المفتوحة والمفتوحة المصدر ، هناك مساهمة غير مباشرة في تطوير المجمعين وأدوات أخرى لتحليل الأكواد. نحن سعداء لأننا في بعض الحالات من المألوف وقررنا تكريس ملاحظة صغيرة لهذا في مدونتنا.
PVS-Studio هو محلل أكواد ثابت للكشف عن الأخطاء ونقاط الضعف المحتملة في الكود المصدري للبرامج ، مكتوب بلغات C و C ++ و C # و Java.
لتعميم منهجية تحليل الشفرة الثابتة وأداتنا ، نكتب مقالات عن عمليات فحص
المشروعات المفتوحة المختلفة. بالإضافة إلى ذلك ، نتحقق من المترجمين المختلفين مرة واحدة كل فترة. على سبيل المثال ، قمنا باختبار وجود أخطاء في مشاريع مثل: GCC و LLVM و PascalABC.NET و Roslyn.
أكثر من مرة صادفنا حقيقة مثيرة للاهتمام. حالما نتحقق ، دعنا نقول ، LLVM أو GCC ، يظهر تشخيصان جديدان في هذه المجمعين في الإصدار التالي أو في الإصدار التالي ولكن في إصدار واحد. واكتشفوا الأخطاء التي تمكنت PVS-Studio من العثور عليها في الكود :). لسوء الحظ ، لم نلاحظ التواريخ والروابط الخاصة بالتحسينات المقابلة ، لذلك يجب عليك أخذ الكلمة الخاصة بها. يستوعب مختلف المترجمين C ++ بعض التشخيصات الخاصة بنا ونعتقد أنها طبيعية تمامًا وصحيحة ومفيدة!
بالإضافة إلى المترجمين C ++ ، بدأ المحللون C # أيضًا في تبني أفكار تشخيصاتنا. مما يعني أن محلل C # ، الذي تم تنفيذه في PVS-Studio ، أصبح نجماً آخر! من الرائع والرائع أن تكون على دراية بها.
في هذه الحالة ، يمكنني تتبع كيف حدث ذلك ، دعنا نقول ، في الوقت الحقيقي. في 13 أغسطس ، 2019 ، نشرنا
مقالة كبيرة حول التحقق من .NET Core Libraries (CoreFX). من بين أشياء أخرى ، توضح هذه المقالة نمط خطأ يتعلق باستخدام سلاسل محرف (انظر التشخيص
V3138 ). اهتم مطورو CoreFX بمنشورنا وبدأوا في تصحيح الأخطاء التي وجدناها. وفي 14 آب (أغسطس) ، توصلوا إلى الأخطاء التي وجدناها ذات صلة بهذه السلاسل المحرفية للغاية:
إصلاح عدد قليل من الدولارات المفقودة لاستكمال السلسلة في التتبع .
هنا يبدأ الجزء الأكثر إثارة للاهتمام. في ذلك اليوم بالذات ، ظهرت مهمة جديدة في مشروع Roslyn Analyzers حول تنفيذ "
قاعدة جديدة: سلاسل محرفة مفقودة للحرف الخاصة بالدولار # 2767 " ، ذات صلة بالحق في الأخطاء ، تم إصلاحها في CoreFX. نحن سعداء للغاية لأن جهودنا كانت مفيدة لمطوري CoreFX وأصبحت التشخيصات التي نقدمها نموذجًا يحتذى به بالنسبة لمطوري Roslyn Analyzers. من المؤسف بعض الشيء أن أداة PVS-Studio لم يتم ذكرها في أي مكان في المناقشة. يبدو كما لو أنهم عثروا على هذه الأخطاء وتوصلوا إلى فكرة إجراء التشخيص بأنفسهم. بالطبع ، سنكون ممتنين إذا ذكرنا كمصدر أصلي. حسنا ، هذا جيد.
لماذا قررنا أن نكتب عن كل هذا؟ نحن سعداء للغاية ونحن فخورون بأنفسنا! من خلال دراسة تجربتنا ، يقوم مترجمون آخرون بتطبيق تشخيصات جديدة ، مما يحسن جودة البرامج المطورة ككل. أنا أفهم أننا لسنا الوحيدين الذين يؤثرون على تطوير قدرات المترجم في اكتشاف الأخطاء. ومع ذلك ، يسرنا أن نعرف أننا نساهم في هذه العملية.
هل نحن قلقون من أن الأدوات الأخرى تتعلم تدريجياً للعثور على الأخطاء نفسها التي تظهر في PVS-Studio؟ لا. أدواتنا موجودة وتباع مباشرة لسبب أننا دائما في طليعة قدرات المجمعين. هدفنا هو البقاء دائما إلى الأمام. إن الوعي بأن شخص ما يعوضنا باستمرار لا يترك لنا الحق في الاسترخاء ، وهو يفيد الجميع. بالإضافة إلى ذلك ، يجب أن يكون من المفهوم أن PVS-Studio ليست مجرد تحذيرات ، ولكن أيضًا:
- دعم سريع وعالي الجودة (فقط المبرمجون يستجيبون للبريد) ؛
- التكامل مع Visual Studio و IntelliJ IDEA و SonarQube و Jenkins و IncrediBuild ؛
- القدرة على استخدام الأداة محلياً وفي السحابة (Docker، Travis CI) ؛
- أدوات لدمج التحليل في المشاريع القديمة الكبيرة (قمع الكتلة) ؛
- وثائق مفصلة مع أمثلة لكل نمط خطأ.
- آلية إرسال الرسائل إلى المطورين (BlameNotifier) ؛
- مترجم يعمل الرصد (رصد مترجم) ؛
- و هكذا.
شكرا لاهتمامكم نأمل أن تشارك فرحتنا ل PVS-Studio.
حاول محلل لدينا لمراقبة جودة رمز المستمر لمشاريعك.
روابط إضافية:
- PVS- ستوديو الرسم البياني لتطوير القدرات التشخيصية .
- التقنيات المستخدمة في محلل كود PVS-Studio للعثور على الأخطاء ونقاط الضعف المحتملة .