
Manchmal stellen die Leute die Frage, die ein bestimmtes Thema anspricht, sich aber tatsächlich um eine andere Sache handelt. Wie das Sprichwort sagt, enthält eine kompetent gestellte Frage die Hälfte der Antwort.
Kürzlich bin ich von der
JPoint- Konferenz zurückgekehrt, auf der wir erstmals unseren neuen PVS-Studio-Analysator für Java vorgestellt haben. Das Interesse an statischen Analysen hat in den letzten Jahren stark zugenommen, so dass das Publikum PVS-Studio begeistert wahrnahm. Zusätzlich zu den positiven Rückmeldungen mussten wir mit Einwänden umgehen. Der häufigste Einwand gegen den Vorschlag, PVS-Studio auszuprobieren, klingt ungefähr so: "Komm schon, warum versuchen wir es mit PVS-Studio? Wir verwenden IntelliJ IDEA, ReSharper, SonarLint und SonarQube. Wir haben kürzlich PVS-Studio ausgeführt und es wurden Fehler gefunden, die bereits von IntelliJ IDEA hervorgehoben wurden! “
Ich kann einfach nicht anders, als eine kleine Antwortnotiz auf diesen Kommentar zu schreiben. Ich habe sogar zwei Antworten auf diesen Einwand. Und ja, ich habe absichtlich ReSharper angegeben, da es auch einige Fragen zu unserem C # -Analysator gibt. Nun, hier kommt die Antwort.
Erstens machen wir PVS-Studio NICHT durch Kopieren der Diagnose von Wettbewerbern. Blindes Kopieren ohne den Punkt zu verstehen führt nirgendwo hin. Der Wert der statischen Code-Analyse, der Wert ihrer Diagnose ist nicht der Ort, an dem eine Warnung ausgegeben werden soll. Hier darf KEINE Warnung ausgegeben werden. Wir haben 10, 20 und noch mehr Ausnahmen für jede Diagnose, wenn sie nicht ausgelöst werden darf. Das Kopieren von Diagnosen von anderen Produkten nur anhand ihrer Beschreibung in der Dokumentation entspricht dem Erstellen eines ähnlichen Gebäudes anhand eines Fotos. Wird das Kolosseumfoto von Nutzen sein, wenn "Götter machen" Sie dasselbe bauen?
Also kopieren wir nie. "Aber Sie haben ähnliche Diagnosen!" - Du würdest sagen. Natürlich tun wir das. Die Konzepte vieler Fehler liegen an der Oberfläche. Es ist absolut offensichtlich. Häufig verhalten sich Diagnosen mit denselben Beschreibungen jedoch sogar unterschiedlich.
Mit anderen Worten, wenn Sie eines dieser Produkte im Header verwenden, werden Sie beim Ausführen von PVS-Studio höchstwahrscheinlich eine Reihe NEUER Fehler finden, die von anderen Produkten nicht erkannt wurden. Sowohl das Feedback unserer Kunden als auch unsere eigenen Erfahrungen bei der Überprüfung von Open Source-Projekten bestätigen dies.
Zweitens habe ich schlechte Nachrichten für Sie, selbst wenn Sie IntelliJ IDEA, ReSharper und SonarLint / SonarQube verwenden und dieselben Fehler wie PVS-Studio in Ihrem Code finden. Sie verwenden Tools, die Fehler finden, OK. Warum findet PVS-Studio Fehler in Ihrem Code, die von anderen Tools gefunden zu werden scheinen? Warum hilft die Verwendung von Tools, die "alles genauso erkennen wie PVS-Studio", immer noch nicht, um die Fehler zu beheben? Vielleicht lassen diese Werkzeuge sie einfach bleiben, ohne sie zu reparieren?
IntelliJ IDEA, ReSharper, SonarLint und SonarQube sind ausnahmslos großartige Tools. Sehr hochqualifizierte Teams machen sie. Wenn Sie sie verwenden, tun Sie das Richtige. Je höher das Niveau der Ingenieurkultur - desto besser für das Geschäft.
Wenn jedoch alle diese Tools "dieselben Fehler wie PVS-Studio" finden, aber immer noch Fehler im Code enthalten sind, machen Sie etwas falsch. Führen Sie Praktiken wie die regelmäßige Verwendung von PVS-Studio in einem Team ein. Auf diese Weise werden Fehler sowohl gefunden als auch behoben. Die Einführung von PVS-Studio wird Entwickler dazu bringen, die Fehler zu beheben. Aber nicht nur finden.