am 17. Juni 2010
Ihr merkt schon, irgendwie habe ich an den Eclipse-Themen Blut geleckt, denn heute geht es schon wieder in die nächste Runde. Natürlich ist es auch ein Thema, das wir kurz in unserem IPC-Vortrag angesprochen haben und ich hatte ja versprochen ihn hier aufzubereiten. Eigentlich ist es ja das Thema von Sven Kiera, aber ich übernehme jetzt einfach mal. Vielleicht haben wir ja das Glück und er bekommt Lust noch ein wenig detaillierter über das Thema zu erzählen. Ach ja, kann ja sein, dass sich noch jemand dran erinnert, wir hatten vor einiger Zeit eine Projektwerkstatt, die sich genau mit dem Thema PTI und pDepend beschäftigt hat.
Fangen wir aber an. Mit pdepend (oder phpDepend) kann man ganz einfach Metriken auf seinen Quellcode anwenden. Dabei kann man dann sehen, ob der geschriebene Code potentiell zu den guten oder schlechten Kandidaten gehört. Bis jetzt war die Auswertung dieser berechneten Zahlen eher nicht visuell unterstützt. Man konnte viel aus Tabellen rausholen, aber es ging immer Hand in Hand mit “ein wenig” Analysearbeit. Ok, ein paar kleine Grafiken gab es, die sind aber nicht der Rede wert.
Um diese Messzahlen effizient zu nutzen wäre es doch toll, wenn die IDE einem schon zeigt, dass eine Methode, an der man gerade noch programmiert zu komplex wird, da vielleicht zu viele Verzweigungen eingebaut sind. Dank PTI und Sven kann Eclipse das jetzt und zwar ohne lange Konfigurieren zu müssen. Ich zeige am besten einfach mal ein kleines Beispiel:

Der Code hat mehr als sieben Verzweigungen und ist deswegen zu komplex. Natürlich nur weil wir vorher definiert haben, das eigentlich komplex bedeutet. Egal wie jetzt die Werte sind, eigentlich wollen wir so ein Feature alle haben.
Das geht auch innerhalb von ein paar Minuten und schon haben wir Eclipse so gepimt, dass jede Installation das mitmacht. Als erstes installieren wir PTI, die Update-Site dazu lautet in der “stable” Version: http://www.phpsrc.org/eclipse/pti/ (Wer will kann auch mit der Development Version rumspielen http://www.phpsrc.org/eclipse/pti-dev/). Einmal im System vorhanden können wir in die Einstellungen gehen (Preferences>> PHP Tools >> PHP Depend). Wie immer bei PTI die Pear Bibliothek auswählen, ich nehme immer die interne und eine lauffähige PHP-Installation angeben. Fertig. Eigentlich müsste das System jetzt schon die hohen Komplexitäten anmotzen. Jetzt ist vielleicht auch der richtige Zeitpunkt das ganze mal ein wenig zu testen und um mit dem rumpspielen anzufangen.
Um den Nicht-Eclipse-Nutzern den Mund ein wenig wässrig zu machen musste ich natürlich die Konfigurationsseite ein wenig präsentieren. Es gibt so viele wunderbare Metriken, die man alle automatisiert über seinen Code laufen lassen kann.
Bei den Zahlen, die man für die Min- und Max-Werte einträgt, muss man wohl ein wenig rumspielen, denn hier muss man nach Gefühl arbeiten. Nicht jedem ist eine zyklomatische Komplexität von 7 zu hoch. Aber dafür gibt es ja die Optionen.
Vielleicht noch ein kleines Fazit. Ich liebe dieses PTI, da hat Sven mal wieder ganze Arbeit geleistet. Ich bin ein Freund von Metriken, auch wenn man darüber denken kann was man will. Für mich ist es also die perfekte Kombination, falls man noch besseren Code schreiben will. Denn seien wir mal ehrlich, sobald der Code im SVN drinnen ist, wird er eh nicht mehr groß angefasst.
Ach ja, wenn ihr das System gut findet, dann flattrt doch bitte das Projekt (und uns auch, wenn ihr Lust habt).