Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Grundlagen der Programmierung: Codemetriken

Headmap

Testen Sie unsere 2021 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Reine Zahlenwerte sind schwerer zu verstehen als bildliche Darstellung. Die Headmap ermöglicht, das eine in das andere umzuwandeln.
04:47

Transkript

Code-Metriken helfen uns sehr gut dabei, einzuschätzen, wie es um den Zustand unserer Codebasis besteht. Wenn man aber in die Details geht, kann man ganz schnell in Zahlen ertrinken. Heatmaps helfen uns dabei, das besser zu verstehen, was wir da in Zahlen gefasst haben, indem sie diese Zahlen visualisieren. Ich zeige hier die Implementierung in NDepend, es gibt aber sicher auch andere Werkzeuge, die zumindest etwas Ähnliches machen. Grundsätzlich ist es erst einmal so, dass man sich eine Form von Codemap erstellt, eine Übersichtskarte über die gesamte Codebasis. Ich habe das jetzt hier auf höchster Zoomstufe sozusagen gemacht, das heißt, wir sehen jetzt zunächst nur eine Übersicht über unsere beiden DLLs, einmal die Test-DLL und einmal die Implementierungs-DLL. Jetzt kann ich noch etwas tiefer hineingehen, und sage, ich möchte mir auch die Namespaces anzeigen lassen. Ich sehe jetzt also, wie diese Namespaces aussehen, und das Interessante daran ist, die Größe dieser Vierecke basiert immer auf Basis der Codezeile, weil ich das hier entsprechend eingestellt habe, ich kann aber auch andere Werte im Verhältnis stellen, zum Beispiel, wie viele Methoden gibt es in den Namensräumen. Wie viele Typen gibt es in den Namensräumen oder was weiß ich nicht alles. Wie viel wird von was genutzt? Stellen wir es mal aber auf Zeilencode zurück, das ist wahrscheinlich am einfachsten zu verstehen. Das heißt, je mehr wir hier anzeigen, desto mehr Blasen kriegen wir da rein. Gehen wir z. B. auf Typen, dann haben wir die Klassen innerhalb der Namensräume. Die Namensräume selbst sind weiter als Vierecke dargestellt, jetzt finden sich in den Namensräumen aber als Blasen entsprechende Klassen oder eben Typen. Wenn ich nun auf die Methoden gehe, dann verfeinern sich die Blasen noch weiter, indem sie sozusagen Unterblasen kriegen. Sieht aus wie so ein Käfer, so ein geschuppter Käfer. Jede dieser Blasen ist jetzt eine Methode. Ich kann also sehen, dass ganz offensichtlich diese Methode wesentlich größer ist als die danebenliegende Methode. Oder dass diese Methode hier unten wesentlich kleiner ist als die anderen. Auf die Weise kriege ich schon einen Überblick darüber, was ist denn das Größte oder was ist das Komplexeste, wenn ich mal auf zyklomatische Komplexität umstelle. Also hier drüben gibt es ganz offensichtlich etwas, was besonders komplex ist. Das Problem an der Sache ist aber immer noch, dadurch, dass das alles grau ist, verschwinden ein Stück weit die Informationen. Ich stelle nochmal zurück auf "lines of code", und dann schalte ich Farbe ein, und jetzt wird es interessant. Jetzt sehe ich, welche Codebestandteile sind besonders komplex, und zwar anhand der Farbe, während ihre Größe tatsächlich ihre Größe im Sinne von Quellcode darstellt. Und das bedeutet nicht, dass die größten Sachen auch immer am komplexesten sind. Hier sehen wir z. B. so einen gelben Punkt, der hat nur neun Zeilen Code und hat trotzdem eine verhältnismäßig hohe Komplexität gegenüber den darüberliegenden. Also die hier haben, da unten steht "One Unit", "One Unit" bedeutet eine Komplexität von 1, das hier hat neun Zeilen Code und hat eine Komplexität von 10, das ist schon ganz schön viel. Was uns außerdem noch auffällt ist, dass die Implementierung insgesamt wesentlich komplexer ist als die Tests. Man kann das Ganze jetzt noch umstellen, ich habe leider die Code Coverage nicht mit erfasst, man könnte jetzt aber beispielsweise die Code Coverage gegenüberstellen, und dann kommt man beim C.R.A.P-Faktor raus. Und beim C.R.A.P-Faktor müsste uns dann rot entgegenspringen, was wir sofort anfassen müssen. Aber selbst hier, z. B. diese "Tests"-Klasse, die ist wahnsinnig groß, die hat 238 Zeilen und eine Komplexität von 21, und da lohnt es sich dann doch mal, hineinzuschauen. Das haben wir hier im Hintergrund geöffnet, und man sieht schon, da passiert eine ganze Menge Zeugs. Man kann dann direkt an die Stellen springen und kann auf die Art und Weise gezielt nach Problemstellen im Quellcode suchen, und das finde ich so interessant daran, wir nutzen also die Code-Metriken gezielt, um Probleme aufzuspüren beziehungsweise einen Überblick über mögliche Problemstellen zu erhalten. In dem sie nicht einfach nur mehr Zahlen sind, sondern indem sie uns verständlich dargestellt werden.

Grundlagen der Programmierung: Codemetriken

Lernen Sie Methoden, Prinzipien und Werkzeuge kennen, mit deren Hilfe Sie die Qualität Ihrer Software dauerhaft sicherstellen können.

1 Std. 43 min (20 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Exklusiv für Abo-Kunden
Erscheinungsdatum:25.04.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!