Archiv

Artikel Tagged ‘CCD’

NDepend 2017, ein Update

25. April 2017 Keine Kommentare

Vor gut 3 Jahren habe ich hier eine Bewertung von NDepend veröffentlicht. Nun ist vor kurzem der Hinweis auf eine größere Aktualisierung eingetroffen. Diese neue Version habe ich wieder unter die Lupe genommen und in aktuellen Projekten mit Visual Studio 2015 getestet. Für alle Programmierer, welche dieses Tool nicht kennen:

NDepend ist eine Software, mit der die Softwarequalität eines .NET-Programms überprüft werden kann. Für die Überprüfung und Auswertung stehen sehr viele Möglichkeiten zur Verfügung. Durch historische Betrachtungsmöglichkeiten kann ebenfalls eine zeitliche Entwicklung der Qualität geprüft und sichergestellt werden.

Die Installation war vertraut, es ist ein wenig Handarbeit angesagt, die einen Software-Entwickler in keinster Weise vor Fragen stellt. Danach ist das PlugIn in Visual Studio einsatzbereit oder mal kann eine lokale Version nutzen. Jetbrains Resharper beispielsweise nimmt einem bei der Installation etwas mehr Arbeit ab, wirklich schneller ist man aber damit aber nicht fertig. NDepend legt eigene Projektdateien zu einem Visual Studio Projekt an. Damit ändert sich am eigentlich Projekt nichts und Entwickler ohne NDepend und auch die Versionsverwaltung werden nicht beeinflusst. Das gibt einen großen Pluspunkt von mir!

Im den letzten 3 Jahren haben die Entwickler gute Arbeit geleistet. Es wird nun automatisch per Default eine Historie aufgebaut, für Vergleiche herangezogen und auch bei den Auswertungen entsprechend dargestellt. So hat man quasi immer gleichzeitig die Übersicht über alle gefundenen Probleme, kann aber auch erst mal nur die aktuell hinzugekommenen Probleme ansehen. Hier sind viele Einstellmöglichkeiten vorhanden. Ein großer Pluspunkt ist die unglaubliche Anzahl von sinnvollen Optionen, aber zeitweise auch ein Minuspunkt -> man muss erst einmal den Überblick gewinnen und behalten. Auf einem Rechner mit einem normalen Monitor macht das keinen Spaß. Eine Dualscreen-Konfiguration in 4k war hierfür wesentlich effizienter nutzbar.

Ich habe NDepend mit Projekte im WinForm, Asp.Net Webform und Asp.Net MVC Bereich ausprobiert. Hier gab es viele sinnvolle Warnungen und Fehler, die im geprüften Quellcode korrigiert werden sollten. Bei Asp.Net mit WebForms wurden aber auch die Zusammenhänge zwischen Aspx-Formular und Code nicht erkannt, was in sehr vielen Fehlern resultierte, die nicht korrigiert werden können. Hier wird der Hersteller sein Regelwerk noch prüfen.

Apropos Regeln: Es ist eine klare Ausrichtung auf den professionellen Entwickler mit einem Sinn für guten wartbaren Code erkennbar. Alle vordefinierten Regeln sind gut erklärt und über eine interne Linq-ähnliche Sprache anpassbar.

Wie viele Softwarefirmen haben auch die Macher von NDepend ihr Lizenzmodell auf eine Jahresgebühr gestellt. Das ist nachvollziehbar, da ein Produkt wie NDepend eigentlich permanent weiterentwickelt und aktualisiert werden muss, um mit Visual Studio und neuen Funktionalitäten eingesetzt zu werden. Ob der Preise zu hoch oder tief ist, sollte jeder für sich entscheiden. Wer die Softwarequalität seines Teams im Auge behalten will, wir aber sicher nicht an den Kosten scheitern.

KategorienCCD, Microsoft .NET Tags: ,

NDepend, ein Einblick

27. April 2014 Keine Kommentare

Als ich vor kurzem gebeten wurde, mir NDepend anzuschauen, sagte ich sofort zu. Diese Software versprach mir Unterstützung in der Entwicklung und Überwachung von sauberem Code, ganz im Sinne von CCD. Nach dieser Sichtung habe ich verstanden, dass die Autoren der Software eine großartige Arbeit geleistet haben. Man erhält ein ungeheuer ausgefeiltes Stück Software, das den Entwickler zu Anfang mit der Fülle und dem Umfang von Dialogen und Optionen schlicht überfährt. Man lernt aber schnell, dass es scheinbar unvermeidbar war, damit die Software in unterschiedlichen Bedingungen eingesetzt werden kann. Ich rate jedem, der seinen NET-Sourcecode verbessern möchte oder im Team Fehlentwicklungen im Auge behalten will, sich die Zeit der Einarbeitung zu nehmen. Es lohnt sich!

Überprüfung des eigenen Codes

Als Einstieg sollte man sich diese Seite anschauen: GettingStarted. Dort wird als Video und alternativ in einer reich bebilderte Anleitung dargestellt, wie leicht NDepend mit dem eigenen Projektmappen verbunden werden kann. Dieser Vorgang funktioniert sehr gut und schnell. Die Original-VS-Projekte werden nicht angefasst, die NDepend-Verknüpfung kann auch leicht wieder gelöst werden. Eine SVN-Integration wird dadurch nicht beeinträchtigt.

NDepend DashBoardDann kann man sich bereits mittels des über das NDepend-Menü erreichbaren DashBoards einen Überblick verschaffen. Diese Beispielgrafik von NDepend stellt natürlich einen späteren Stand dar, zeigt aber die Fülle Informationen: Für mich war besonders wichtig, dass man sogar einen Überblick erhält, ob im Lauf der Zeit immer mehr Regeln verletzt wurden. Das hilft in der Team-Kontrolle! Weiterhin kann aus diesem DashBoard heraus leicht geprüft werden, welche Regeln verletzt wurden und vor allen Dingen: an welcher Stelle im Source! Regeln, welche man nicht für wichtig erachtet, kann man leicht deaktivieren. Alle Regeln liegen auch in einer gut kommentierten LINQ-ähnlichen Sprache vor, was die Anpassung leicht macht. Hier steht zusätzlich zu jeder NDepend eigenen Funktion eine gute Hilfe im Maus-Tooltip zur Verfügung.

Vergleichen der Entwicklungsgeschichte

NDepend Historic Analysis ResultMan stellt schnell fest, dass es nicht immer sinnvoll und praktikabel ist, gleich den kompletten Code Regelkonform zu gestalten, sprich alle Regel-Verletzungen zu entfernen. NDepend bietet hier die Möglichkeit, Basisstände als Vergleich heranzuziehen. Somit werden nur noch neuere Regelverletzungen angezeigt, was natürlich gerade für den Start sinnvoll ist. Als Start kann man dazu, wie in der nebenstehenden Grafik dargestellt, die historische Speicherung der Werte auf Always stellen. Damit hat man bereits nach der ersten NDepend-Überprüfung einen Vergleichsstand zur Verfügung, was den Start stark erleichtert.

Bewertung
NDepend eignet sich nicht für den Programmiereinsteiger. Man muss ein Interesse an Clean Code haben und auch schon diverse Regeln kennen und anwenden, LINQ darf kein Fremdwort mehr sein. Dann bietet NDepend eine sehr gute Untersützung. Wenn man für diesen Schritt bereit ist, bietet das Tool einen hervorragenden Start in die permanenten Prüfung und Überwachung von Code-Regeln, zumal sogar für die Integration in Buildserver gesorgt wurde. NDepend liefert ein umfangreiches Set an Regeln, sauber gruppiert, bereits mit. Eigene Regeln können aus dem Code extrahiert werden. Als absolutes Power-Feature bewerte ich die Definition einer Baseline für vergleichende Berichte. Damit können alte Probleme leichter ausgeblendet werden.

Eine Bewertung zum Preis fällt schwer: Die Dialog von NDepend wurden mit sehr viel Liebe erstellt. Praktisch überall stehen sinnvolle Optionen, Verknüpfungen zu Hilfethemen und Tooltips zur Verfügung. Der Preis erscheint hierfür eigentlich zu gering. Aus der Sicht der Programmierer, die bei Clean-Code oft nicht gerade offene Türen einrennen, ist der Preis dann wieder wirklich sinnvoll und mit Blick auf den Funktionsumfang mehr als fair.

KategorienCCD, Microsoft .NET Tags: ,

Clean Code Developer (CCD)

7. August 2009 Keine Kommentare

In der Softwareentwicklung versucht man seit langem, guten Quellcode zu schreiben. Hierfür gibt es alle Jahre neue Ansätze, die das erreichen sollen. So fallen einem dazu schnell Begriffe wie UML und Objektorientierung ein. Aber all diese Mittel haben nie dafür gesorgt, dass der Quellcode durch Anwendung solcher Prinzipien bzw. Verwahrensweisen zwingend besser, sprich sauberer wurde.

Clean Code DeveloperSoftwareentwicklern aus Leidenschaft sind darum ständig auf der Suche danach, was in den eigenen Entwicklungen falsch läuft. Was muss man besser machen, damit der Quellcode gut lesbar und langfristig nutzbar und erweiterbar ist. Einen Königsweg hierzu gibt es wie immer leider nicht.
Stefan Lieser und Ralf Westphal haben vor einer Weile aber eine Initiative unter dem Namen Clean Code Developer ins Leben gerufen. Beim Studieren der Idee war mir schnell klar, dass es für mich ein Hilfsmittel sein kann, besseren Code zu entwickeln.

Sie sammelten Ideen und Ansätze, die helfen, besseren Quellcode zu schreiben. Diese verteilten Sie auf einzelne Grade, da alles auf einmal nicht realistisch umsetzbar ist. Jeder Entwicker, der seine Prinzipien der Entwicklung verbessern möchte, kann sich an den einzelnen Graden entlang hocharbeiten:
Schwarz, Rot, Orange, Gelb, Grün, Blau und Weiß.

Vorschau PyramideEntwickler, die sich an Ihren Grad und die dahinter stehenden Prinzipien erinnern möchten, können dazu ein Armband tragen. Mir persönlich sagt das nicht zu. Jan Waiz hat hierzu alternativ kleine Pyramiden gestaltet, die man sich einfach auf den Tisch stellen kann und so seine Prinzipien auch jederzeit präsent hat. Das finde ich wirklich ansprechend.

Ich selbst ordne mich momentan als Orange ein und kann leider noch nicht aufsteigen, da ich Automatisierte Integrationstests noch nicht umsetzen konnte. Übrigens: Aufzusteigen ist auch nicht das zwingende Ziel der CCD’ler… es geht darum, selbst eine Stufe der inneren Zufriedenheit mit der eigenen Softwareentwicklung zu bekommen. Dazu muss man nicht die höchste Stufe erreicht haben!

KategorienCCD, Weiterbildung Tags: