Heute bin ich auf ein cooles Add-On für Visual Studio aufmerksam geworden: Der Clone Detective für Visual Studio.
Als Engine hinter Clone Detective kommt ConQAT von der TU München zum Einsatz: http://conqat.cs.tum.edu/index.php/Download
Nach der Installation gibt es in der “Ansicht” –> “Weitere Fenster” neue Einträge:
- Clone Explorer
- Clone Intersections
- Clone Results
Zur Demonstration der einzelnen Fenster habe ich mir mal die Freiheit genommen, den Quellcode von iTextSharp auf Code-Duplikate zu untersuchen.
Clone Explorer
Die Clone Explorer startet die Analyse des Quellcodes und zeigt in einer Übersicht das Resultat:
Die Resultate lassen sich nun noch speziell gruppieren (hier: nach duplizierten Codezeilen):
Ebenfalls unterstützt wird das Importieren und Exportieren des Clone-Berichts. Selbstverständlich lassen sich die Such-Optionen noch konfigurieren:
Für meinen Geschmack war das allerdings schon gut genug 🙂
Code Intersections
Code Intersections stellen – wie der Name schon sagt- Überschneidungen im Code dar. Im folgenden Beispiel enthält die Datei BarcodeInter25.cs 15 Codeüberschneidungen mit der Dtei BarcodePostnet.cs:
Das Diagramm zeigt das Vorkommen der Überschneidung in der Datei. Mit der rechten Maustaste kann nun noch in den Ergebnissen gesucht werden und die betreffende Stelle über einen Doppelklick im Editor geöffnet werden.
Im Editor wird an der linken Seite eine lila Markierung dargestellt:
Diese zeigt die Stelle der Codeduplikate im Code an.
Clone Result
Das Fenster Clone Result zeigt das Code-Duplikat aus dem Editor nochmal an:
Fazit
Nicht jedes Duplikat ist auch wirklich ein Duplikat. Viele Fundstellen hingegen haben mir persönlich weitergeholfen, Redundanzen zu verringern und nochmals kritisch über meinen Code zu sehen.
Download
Das Programm kann auf CodePlex kostenlos (inkl. Source Code) heruntergeladen werden:
http://clonedetectivevs.codeplex.com/
Das Installer-Paket ist ca. 14MB groß.
Also Systemvoraussetzungen werden folgende genannt:
- Visual Studio 2008 Standard oder besser
(sorry, Visual Studio 2008 Express Editions unterstützen keine AddIns) - Java 1.5.0_01 oder neuer
(ConQAT läuft unter Java)