Große Projekte und vor allem alte Projekte neigen gelegentlich zur Vermüllung, alte Methoden die eigentlich nicht mehr gebraucht werden bremsen den Build-Prozess und schlimmer noch werden langwierig getestet obwohl sie längst nicht mehr gebraucht werden. Das mach den Code zum einen unübersichtlich und zum anderen kostet es Zeit da die Methoden bei größeren Refakturierungen immer mit bearbeitet werden müssen.

Eigentlich, so sagt ja die Theorie passiert so etwas gar nicht, weil man immer ordentlich schaut ob mal Leichen hinterlässt aber Softwareentwicklung ist eben eine moderne Form von Krieg und da sind Leichen nun einmal nichts besonderes. Will man aber ein Projekt entschlacken wird es schwierig diese Leichen zu finden. Hat man eine konkrete Methode an der Hand kann man in Eclipse mittels Strg-G schnell nach Referenzen suchen und Leichen identifizieren aber zum Aufräumen taugt das leider wenig.

Der UCDetector (Unused-Code-Detector) ist nun ein Plugin das genau diese Aufgabe übernimmt und den Code nach Unreferenzierten Methoden und Klassen durchsucht. Es ist dabei nicht gerade schnell aber das Ergebnis ist durchaus gut. Wichtig dabei ist natürlich das man mit dem Tool nur wirkliche Referenzen prüfen kann, seltsame Magie oder Reflektion Aufrufe kann man damit nicht untersuchen. Beim entfernen von altem Code ist also weiterhin Vorsicht angebracht.

Neben den reinen Referenzchecks findet der UCDetector auch Klassen und Methoden die nur in Tests verwendet werden oder gibt Ratschläge für die Sichtbarkeit von Methoden. Wird eine Methode beispielsweise nur innerhalb der eigenen Klasse verwendet schlägt das Tool vor diese doch private zu setzen.

Die Konfiguration könnte etwas besser sein, so habe ich leider keine Möglichkeit gefunden bestimmte Klassen oder Dateimuster auszuschließen was in Verbindung mit generiertem Code teilweise etwas nervig ist.