تجد IntelliJ IDEA و ReSharper و SonarLint و SonarQube نفس الأخطاء ، مثل PVS-Studio - فلماذا نحتاج إلى PVS-Studio؟

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

لقد عدت مؤخرًا من مؤتمر JPoint ، حيث قدمنا ​​لأول مرة محلل PVS-Studio الجديد لجافا. ينمو الاهتمام بالتحليل الثابت بقوة في السنوات القليلة الماضية ، لذلك كان الجمهور ينظر إلى PVS-Studio بحماس. بالإضافة إلى ردود الفعل الإيجابية ، كما يحدث ، كان علينا التعامل مع الاعتراضات. الاعتراض الأكثر شيوعًا على الاقتراح بتجربة PVS-Studio يبدو شيئًا من هذا القبيل: "C'mon ، لماذا نجرب PVS-Studio؟ نحن نستخدم IntelliJ IDEA و ReSharper و SonarLint و SonarQube. لقد قمنا بتشغيل PVS-Studio مؤخرًا ووجدنا أخطاء ، تم تسليط الضوء عليها بالفعل بواسطة IntelliJ IDEA! "

لا يسعني إلا أن أكتب ملاحظة رد صغيرة على هذا التعليق. لدي حتى ردين على هذا الاعتراض. ونعم ، ذكرت عمداً ReSharper ، حيث أن هناك بعض الأسئلة لمحلل C # لدينا أيضًا. حسنا ، هنا يأتي الجواب.

أولاً ، لا نجعل PVS-Studio عن طريق نسخ تشخيص المنافسين. نسخ عمياء دون فهم النقطة يؤدي إلى أي مكان. قيمة تحليل الكود الثابت ، قيمة تشخيصه ليست مكان إصدار تحذير. إنه مكان عدم إصدار تحذير. لدينا استثناءات 10 و 20 وحتى أكثر لكل تشخيص عندما لا يجب تشغيله. لنسخ التشخيص من المنتجات الأخرى فقط من خلال وصفها في الوثائق هو نفسه لبناء مبنى مماثل عن طريق الصورة. هل سيتم استخدام صورة المدرج إذا صنعت "الآلهة" نفس الصورة؟

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

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

ثانياً ، حتى إذا كنت تستخدم IntelliJ IDEA و ReSharper و SonarLint / SonarQube ووجدت نفس الأخطاء التي تحدث في PVS-Studio في التعليمات البرمجية الخاصة بك ، فإن لدي أخبارًا سيئة بالنسبة لك. يمكنك استخدام الأدوات التي تعثر على أخطاء ، حسناً. لماذا يجد برنامج PVS-Studio أخطاء في الكود الخاص بك والتي يبدو أنها عثر عليها بواسطة أدوات أخرى؟ لماذا لا يساعد استخدام الأدوات التي "ستكتشف كل شيء كما تفعل PVS-Studio" في إصلاح الأخطاء؟ ربما هذه الأدوات فقط دعهم يبقون دون إصلاح؟

أدوات IntelliJ IDEA و ReSharper و SonarLint و SonarQube هي أدوات رائعة بدون استثناءات. فرق من ذوي المهارات العالية جدا يصنعونها. إذا كنت تستخدمها - أنت تفعل الشيء الصحيح. كلما ارتفع مستوى الثقافة الهندسية - كان ذلك أفضل للأعمال التجارية.

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

Source: https://habr.com/ru/post/ar449176/


All Articles