Tourniquet-Junit
Heute wurde ein neues Release von Tourniquet-Junit (0.4.5) veröffentlich. Tourniquet ging aus dem Projekt Scribble hervor und wird nun als eigenständiges Projekt weiterentwickelt.
Heute wurde ein neues Release von Tourniquet-Junit (0.4.5) veröffentlich. Tourniquet ging aus dem Projekt Scribble hervor und wird nun als eigenständiges Projekt weiterentwickelt.
Legacy Code ist Code, der nicht nach aktuellen Massstäben der Software-Entwicklung entwickelt wurde, nicht mehr gewartet wird und häufig nicht oder unzureichend dokumentiert wird. Aber auch externe, proprietäre closed source Libraries genügen häufig diesen Kriterien. Oftmals wird dieser Code jedoch nach wie vor betrieben und muss auch hin und wieder angepasst werden, z.B. um regulatorischen Anforderungen nachzukommen. Legacy Code kommt häufig in der Form eine CLOBs daher. Eine undefinierte Masse an Codezeilen, von der keiner mehr weiss, was er tut. Ein erster Schritt ist es, das System in seine logischen Bestandteile zu zerlegen. Nicht selten werden jedoch Umsysteme über 3rd Party Libraries eingebunden und der Zugriff darauf erfolgt von der Präsentationsschicht durch alle anderen logischen Schichten bis zum Umsystem in einer einzigen Methode. Bevor ein Refactoring einer solchen Methode geschehen kann, muss die Abhängigkeit zum Umsystem entkoppelt um einen Test der bestehenden Methode geschrieben. Ein einfaches Hilfsmittel aus dem Java Toolset zur Entkopplung des Umsystems ist der ServiceLoader. Der ServiceLoader ist ein einfacher Dependency Injection Mechanisms und Teil der Standard Edition, d.h. seit der Version 6 in jedem Java Runtime Environment verfügbar. Um den ServiceLoader zu benutzen, benötigt man drei Elemente:
Unter Mixins versteht man zusätzliche Funktionalität, die einer Klasse hinzugefügt werden kann. Sie sind eine spezielle Form der Mehrfachvererbung, bei der Eigenschaften oder Verhalten von mehreren „Eltern“ geerbt werden. Mit Mixins lassen sich zwei Problemgebiete lösen: Man möchte viele Optionale Features für eine Klasse anbieten Man möchte ein bestimmtes Feature für viele verschiedene Klassen anbieten Mit Hilfe von Mixins lassen sich Domain Modelle einfach halten, indem nur die essentiellen Eigenschaften definiert werden und optionale Eigenschaften über Mixins hinzugefügt werden können. Auch lassen sich externe Bibliotheken auf diese Weise erweitern ohne auf dedizierte Extension Points angewiesen zu sein. Weiterhin können Querschnittsfunktionen über Mixins realisiert werden, so dass diese nicht Teil der Typhierarchie und damit des Domänen-Modells sein müssen. Sie stelllen damit eine Alternative zu Aspektorientierter Programming dar. In Java werden seit Version 8 Mixins in Form von default Methoden auf Interfaces unterstützt. Damit können einer Klasse durch Implementierung eines Interfaces mit default Methoden Funktionen hinzugefügt werden.
Eines der wesentlichen Eckpfeiler agiler Software Entwicklung ist dessen Transparenz. Teams geben kontinuierlich Auskunft über ihren Fortschritt, erledigte Aufgaben, Hindernisse, Ereignisse im Team, aber auch die Qualität ihrer Arbeit. Das Erfassen von Metriken gehört dabei ebenso zum Handwerk wie gezielte Verbesserungen, die mithilfe dieser Metriken nachgewiesen werden – what gets measured, gets managed. Das Erfassen von Code Metriken ist dabei heute weitestgehend mit Tools wie PMD, Findbugs, Sonarqube und Code-Coverage automatisierbar und dank Code Versioning Systemen wie CVS, SVN oder Git lückenlos nachverfolgbar. Jedoch wie mit allen Statistiken müssen die Werte interpretiert und in einen Kontext gesetzt werden, um daraus sinnvolle Schlüsse ziehen zu können. Einzelne, aus dem Zusammenhang gerissene Werte können dabei nicht nur eine völlig andere
© 2015-2026, DevCon5 GmbH Datenschutzerklärung
Design durch Bootstrapious. Portiert nach Hugo durch DevCows.