Facebook
Twitter
Google+
Kommentare
4
Willkommen bei "the web hates me". Mittlerweile hat unser Team ein tolles neues Monitoringtool für Agenturen gelauncht. Unter dem Namen koality.io haben wir einen Service geschaffen, der er Agenturen ermöglicht mit sehr geringen Kosten alle Ihre Webseiten zu überwachen.

pDepend – Eine kurze Einführung

Ob es jetzt phpDepend heißt oder pDepend weiß ich eigentlich gar nicht (und ich glaube der Autor ist sich da auch nicht immer so sicher). Auf jeden Fall geht es heute um eine kleine Einführung in das Tools von Manuel Pichler zur statischen Code-Analyse. Ich hatte ja in früheren Artikeln schon mal über Metriken geredet und auch die McCabe Metrik etwas detaillierter beschrieben.

Metriken sind meistens mathematische Funktionen, die ihr auf euren Source Code anwendet und am Ende einen Wert rausbekommt, der etwas über die Qualität eures Quellcodes aussagen soll. So viel zur Theorie. Funktionen zu berechnen macht aber keinen Spaß, mir zumindest nicht. Bin ja kein Taschenrechner. Aber wenn ich eine wäre, dann dieser hier. Wir brauchen also jemanden, der uns die tausenden Codezeilen analysiert und die Zahlen dann später ausgibt. Interpretieren machen wir dann lieber selbst.

phpDepend ist genau so ein Tool. Die Standardmetriken, die immer mal wieder an einem vorbeiziehen, wenn man sich ein wenig mit dem Thema beschäftigt, sind alle bereits implementiert. Sowas wie lines of code, cyclomatic complexity oder n-path complexity meine ich damit, aber auch andere wie Code Rank sind integriert. Es ist also auf jeden Fall ausreichend um eine grundlegende Analyse zu starten.

Alles was ihr tun müsst, um das Programm zu installieren, ist mal wieder die magschen PEAR Installer Worte zu sprechen:

pear channel-discover pear.pdepend.org
pear install pdepend/PHP_Depend-beta

Schon ist alles installiert. Jetzt könnt ihr ein wenig mit pdepend rumspielen. Wenn ihr pdepend im vollen Umfang über euer Projekt laufen lasst, dann werdet ihr zum Schluss drei Arten von Report generiert bekommen.

pdepend --summary-xml=/tmp/summary.xml --jdepend-chart=/tmp/jdepend.svg --overview-pyramid=/tmp/pyramid.svg /pfad/zu/meinen/sourcen/

Das summary.xml File ist wohl das am einfachsten zu lesende. Dort sind alle Metriken als Zahl angegeben. Sortiert nach Package, Klasse und Methode. Wenn ihr also die Qualität einer ganz bestimmten Methode erfahren wollt, dann sollte dies eure erste Anlaufstelle sein. Die zwei anderen Reports sind Grafiken. Um diese zu interpretieren gehört ein wenig Wissen, das ihr vielleicht noch nicht habt. Ok, so schwer ist es nicht, aber ich würde es mir gerne für einen weiteren Artikel aufheben. Soll ja nicht sein ganzes Schrot auf einmal verschießen.

Auf jeden Fall lohnt es sich mal die McCabe (Cyclomatic Complexity) Metrik in seinem Projekt anzuschauen, denn diese hatten wir ja schon besprochen.pdepend-pyramidpdepend-jdepend

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

4 Comments

  1. Achja Nils: bitte schreib dann doch mal bald einen EIntrag, wie man die Zahlenwerte interpretieren können sollte 😉

    Ich finde es sehr Schade, dass in meinen beiden Anwendungsentwicklungsausbildungen solche Themen garnicht behandelt worden sind. Rückblickend kann man nur sagen, dass einem „Frickelprogrammierung“ beigebracht wird und man selbst dann für Ordnung sorgen muss und sich selbst beibringt, wie man vernünftig und sauber programmiert.

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen