Ich bin in einer Situation, in der ich mich mindestens etwas anstrengen muss, um nie verwendeten Code aus meinem Quellcode zu entfernen. Die allgemeine Präferenz besteht darin, ein Tool zur statischen Codeanalyse zu verwenden. Wir hatten viel Glück damit in anderen Projekten, aber die Leute, von denen ich höre, sind hauptsächlich C/C++ - Entwickler, die an Code auf Geräteebene arbeiten.Wie gut funktioniert statische Code-Analyse mit Spring und anderen Abstraktionen?
Ich bin ein Webentwickler, der an einem Java EE System arbeitet. Das bevorzugte Werkzeug für die Analyse ist Coverity Prevent, obwohl ich mich wahrscheinlich für etwas anderes einsetzen könnte, wenn ich einen starken Beweis dafür erbringen könnte, dass es für die Technologie, mit der wir entwickeln, besser geeignet ist.
Ich finde mich zweifelhaft - Was ist die Effektivität der statischen Code-Analyse für toten Code, wenn Sie gegen ein System mit vielen Abstraktionen laufen? Zum Beispiel verwenden wir Spring 's Abhängigkeitsinjektion, sowie JSF. In beiden Fällen gibt es keine einfache Möglichkeit, die Funktionsaufrufe vom Front-End zum Back-End zu verfolgen und ein vollständiges Bild davon zu zeichnen, was aufgerufen wird und was nicht.
Ich bin sehr besorgt, dass die False Positives auf eine tote Code-Überprüfung den Wert überwiegen wird, das Tool an erster Stelle auszuführen.
Was ist die Erfahrung mit diesem Szenario? Haben Sie es geschafft, einen Nutzen aus einem statischen Codeanalyse-Tool zu ziehen, wenn Ihre Architektur viele Abstraktionen verwendet hat? Gab es etwas, was Sie tun mussten, um es mit einem Minimum an Fehlalarmen zum Laufen zu bringen?
Dies scheint eher eine Community Wiki Frage zu sein. –