C #, PVS-Studio, ReSharper

    Wir werden ständig gefragt: "Ist es sinnvoll, den PVS-Studio Code Analyzer zu verwenden, wenn ReSharper bereits verwendet wird?". Es versteht sich, dass die Antwort ein Artikel sein sollte, der die Fähigkeiten dieser Tools beim Erkennen von Fehlern in Programmen vergleicht. Wir wissen, dass dies eine Sackgasse ist, und ein solcher Artikel wird nichts bewirken. Die Frage wird jedoch so oft gestellt, dass sie noch beantwortet werden muss. Die Antwort ist ja, es macht Sinn. Ich warne Sie sofort, dass Sie den erwarteten Vergleich im Artikel nicht finden. Wenn Sie jedoch nur 10 Minuten Zeit haben, um diesen Artikel vollständig zu lesen, werden Sie unserer Antwort und Vision mit Sicherheit zustimmen.

    PVS-Studio ist ein statischer Code-Analysator, der Fehler im Code von C, C ++ - Programmen erkennt. Kürzlich hat der Analysator ein neues Feld für sich gemeistert - C #. In der Vergangenheit gehörte ReSharper zu den Hilfsprogrammen für C #. Dieses Tool gehört zur Kategorie der Produktivitätswerkzeuge und ist im klassischen Sinne kein statischer Code-Analysator. ReSharper kann jedoch viele verschiedene Überprüfungen durchführen und verdächtige Codeabschnitte einfärben. Daher haben Programmierer unweigerlich die Frage: "Ist es sinnvoll, auf PVS-Studio zu schauen, wenn Sie bereits ReSharper haben?"

    Antwort: ja! Wir sind uns dieser Antwort sicher. Aber hier ist es unmöglich, dies mit einem einfachen Zeichen zu rechtfertigen, das Möglichkeiten vergleicht. Ein solches Zeichen zu machen ist kein Problem. Aber wir haben geschworen, detaillierte Vergleiche anzustellen. Wie das Leben zeigt, verdirbt das Schreiben solcher Vergleiche eher unser Karma, als dass es es verbessert.

    Zum Beispiel hatten wir Erfahrung mit dem Vergleich von PVS-Studio mit Cppcheck und Visual Studio SCA. Es wurde viel Zeit und Mühe aufgewendet. Die Ergebnisse wurden kurz und detailliert dargestellt . Danach haben nur die Faulen nicht geschrieben, dass wir alles falsch gemacht haben oder dass unser Vergleich aufgrund speziell ausgewählter Projekte zur Überprüfung ungerecht ist.

    Wir sehen keinen Grund mehr, Zeit für solche Vergleiche zu verschwenden. Egal wie vorsichtig und ehrlich wir uns ihm nähern, man kann immer sagen, dass der Vergleich voreingenommen war.

    Wir müssen jedoch der Person, die nach ReSharper fragt, eine Antwort geben. Wir bieten eine hervorragende Vergleichsmöglichkeit:

    Verwenden Sie ReSharper bereits? Großartig! Installieren Sie nun PVS-Studio und finden Sie Fehler in Ihrem Projekt!

    Dies ist die beste Demonstration der Vorteile von PVS-Studio. Übrigens gibt es keine Opposition. Werkzeuge können sich perfekt ergänzen.

    Der Leser wird sagen - nun, das neue Tool wird nicht schaden. Aber können Sie auf dem C # -Tools-Markt Fuß fassen? Hier ist schon lange alles besetzt und geteilt. Benötigt jemand PVS-Studio für C #? Die Antwort lautet zunächst:

    Gewissheit des Todes, geringe Erfolgschance.  Worauf warten wir noch?

    "Sicherer Tod. Keine Erfolgschance. Worauf warten wir noch? "( de ).

    Tatsächlich sind wir bereits auf die Frage gestoßen:" Benötigen Sie einen PVS-Studio-Analysator? "Diese Frage klang, als der PVS-Studio-Analysator noch jung war und gerade unter C ++ - Programmierern an Popularität gewann. Es schien sinnlos das Erscheinen eines anderen Tools, da es bereits gab:
    1. Compiler, die die Funktionalität von statischen Analysatoren implementieren. Beispielsweise enthalten einige Editionen von Visual Studio eine statische C ++ - Codeanalyse. Und doch gibt es zum Beispiel Clang.
    2. Es gibt kostenlose Code-Analysatoren wie Cppcheck.
    3. Es gibt leistungsstarke kostenpflichtige Tools: Coverity, Klocwork und so weiter.

    Warum brauchen wir “PVS-Studio for C ++”? Und wir hatten nichts, um diese Frage zu beantworten. Es gibt jetzt nichts zu beantworten. Aber diese Frage spielt keine Rolle mehr. Wir können die Vorteile des PVS-Studio-Analysators auf einfache Weise demonstrieren.

    Es gibt keinen Unterschied mehr, ob es andere Werkzeuge gibt oder nicht. Wir haben Tausende von Fehlern in den Programmen gefunden, für die es Belege gibt . Wir haben diese Fehler gefunden, obwohl es andere Tools gibt. Sie können so viel über Wettbewerbsvorteile sprechen, wie Sie möchten. Das interessiert uns aber nicht. Hier sind 9355 Fehler in Projekten wie Chromium, Qt, LibreOffice, TortoiseSVN, Unreal Engine 4 und so weiter .

    Außerdem können wir jetzt Links geben, wenn jemand einen Vergleich mit einem bestimmten Tool wünscht.
    • Zum Beispiel möchte jemand wissen, warum wir besser sind als Clang. Großartig. Alles ist sehr einfach. Wir haben Fehler in Clang gefunden: Link 1 , Link 2 .
    • Jemand möchte wissen, ob die Verwendung des PVS-Studio-Analysators sinnvoll ist, oder Sie können sich auf den in Visual Studio implementierten Analysator beschränken. Natürlich gibt es einen Punkt. Nicht umsonst finden wir Fehler in den Bibliotheken von Visual Studio: 2012 , 2013 .
    • Lohnt es sich, PVS-Studio zu kaufen, wenn es einen kostenlosen Cppcheck gibt? Natürlich. Es gibt einen Vergleichsartikel zu diesem Thema, den alle schimpften. Daher ist es auch anders möglich: Link .
    • Jemand ist sich sicher, dass Coverity / Klocwork für alle Gelegenheiten ausreicht. Zweifellos handelt es sich hierbei um leistungsstarke und äußerst nützliche Tools. PVS-Studio kümmert sich jedoch nicht darum, da es feststellen kann, was diese Tools nicht sehen: Link 1 , Link 2 .

    Mit dem C # -Analysator stehen wir erst am Anfang dieser Reise. Während wir bescheiden erklären können:
    • Wir haben Fehler im Roslyn-Projekt gefunden.
    • Auf jeden Fall finden wir Fehler in den Projekten von Microsoft, die für die hohe Qualität des Quellcodes bekannt sind. Wenigstens etwas zu finden ist schon eine tolle Leistung. Beispiele: CoreFX , Microsoft Code Contracts

    Warten Sie einen Moment und die Vergleichsfrage verschwindet. Nein, warte nicht. Der Analysator kann und sollte verwendet werden. Lassen Sie ihn jung sein, und bisher haben wir nur einen kleinen Teil der geplanten Diagnostik implementiert. Aber jetzt kann er anfangen, davon zu profitieren. Versuchen Sie nach dem Kompilieren den Auto-Check-Modus. Wir hoffen es gefällt euch. Und wenn etwas nicht stimmt - schreiben Sie , wir arbeiten sehr aktiv mit Bewertungen und Vorschlägen.

    Die Ergebnisse . Unabhängig davon, ob Sie ReSharper verwenden oder nicht, bieten wir den Download anund probieren Sie den PVS-Studio Analyzer aus. Wenn er Fehler in Ihrem Projekt findet, ist dies der beste Beweis für seine Nützlichkeit. Vergessen Sie nur nicht, dass einzelne Prüfungen keinen Sinn ergeben. Codeanalysatoren profitieren nur bei regelmäßiger Verwendung. Es ist ineffizient, durch Debuggen des Codes nach Tippfehlern und Fehlern zu suchen, wenn der Analysator dies für Sie tun kann. Natürlich ist er nicht in der Lage, alle Fehler zu finden, aber er kann Ihnen viel Zeit bei nützlichen Dingen ersparen, als wenn Sie einen Tippfehler in der Bedingung finden.

    Jetzt auch beliebt: