Blog

Alle Beiträge mit dem Tag Metriken

Professionelles Build-Management für PhoneGap-Apps

Unser CI-Server baut jetzt eine lauffähige PhoneGap-App. Was dafür zu tun ist, haben wir im Artikel PhoneGap-Entwicklung mit dem Jenkins-CI-Server gezeigt. In diesem Blog wurde bereits die Frage behandelt, wie wichtig professionelles Build-Management ist und welche Vorteile man dadurch erzielt.

Wir wollen nun zeigen, wie man Build-Management auch für PhoneGap-Projekte betreiben kann. Dazu integrieren wir unseren Jenkins CI-Server mit dem Artefakt-Versionierungssystem Artifactory und mit dem Software-Qualitätsmanagement-Werzeug Sonar.

weiterlesen

Drittes Hamburg Web Performance Meetup

Web Performance HH

Das dritte Hamburg Web Performance Meetup fand am 25. April in den Räumlichkeiten von Telefónica in der City Nord statt. Den fast vierzig Teilnehmern, die sich trotz eines zeitgleich laufenden, hochkarätigen Champions-League-Spiels nicht vor den Fernseher gesetzt hatten, wurden zwei interessante Vorträge geboten.

Den Anfang machten Jan Vogel (DI UNTERNEHMER) und Uwe Beßle (Iteratec) mit dem Thema „Optimierung der gefühlten Performance – Web Performance Management für Fortgeschrittene“. Die beiden präsentierten ihre Erfahrungen, die sie im Umfeld einer der weltweit größten eCommerce-Sites gemacht haben. Vorgestellt wurden u.a. eigene Metriken für Performance und Kundenzufriedenheit.

Im Rahmen des Projekts wurden End-User-Tests mit etwa 1.500 Probanden sowie automatisierte Tests mit dem Tool WebPagetest (WPT) durchgeführt. Mit Best-Practise-Beispielen zu WPT und einem regen und ausführlichen Frage-und-Antwort-Teil endete dieser Vortrag.

Der zweite Teil des Abends bestritten Oliver Ochs und meine Wenigkeit mit unserer Präsentation „Building Performance, ein Frontend-Build-Prozess“.

Wir haben einen auf Maven basierenden Build-Prozess vorgestellt, mit dem die Frontent-Komponente des DSL-Portals von Telefónica O2 erstellt wird. In mehreren Schritten sorgt dieser Build-Prozess automatisiert dafür, dass HTML, CSS, JavaScript und Bildelemente hinsichtlich der Web Performance optimiert werden. Dabei kommen unter anderem Werkzeuge wie OptiPng, Web Ressource Optimizer, JSLint, CSSLint und der Google Closure Optimizer zum Einsatz, die als Maven-Plugins ohne großen Aufwand in den Prozess integriert werden.

Der Abend endete mit einer Verlosung von Fachbüchern des Sponsors unseres Web Performance Meetups in Hamburg, dem O’Reilly Verlag.

Unser Vortrag zum Frontend-Build-Prozess ist bei SlideShare verfügbar:

Zirkuläre Abhängigkeiten mit Sonar orten

Komplexe Java-Anwendungen bestehen normalerweise aus einzelnen Komponenten. In diesen sind fachliche Logik, Benutzeroberfläche, die Datenhaltungsschicht oder auch Schnittstellen zu externen Systemen gekapselt.

Den einzelnen Komponenten können dann klar umrissene Verantwortlichkeiten zugeteilt werden. Dies verhindert Redundanzen, da Code für ein und dieselbe Aufgabe nur in genau einer Komponente implementiert werden muss. Diese stellt ihre Funktionalität dann über eine klar definierte Schnittstelle nach außen zur Verfügung. Andere Komponenten nutzen diese Schnittstelle, ohne diese Funktionalität noch einmal selbst implementieren zu müssen.
weiterlesen

Softwaremetriken: Lack of Cohesion in Methods

Lack of Cohesion in Methods, kurz: LCOM, ist eine Metrik, die sich aus den Prinzipen der Single-Responsibility und der Kohäsion (dt. Zusammenhalt) ableitet. Das Ziel in der objektorientierten Softwareentwicklung ist, ein möglichst hohes Maß an Zusammenhalt zu erreichen. Jede Softwareeinheit, im objektorientierten Umfeld also jede Klasse und Methode, soll für genau eine klar umrissene Aufgabe verantwortlich sein. Sie soll eng verwandte Funktionalitäten zusammenfassen. Andererseits soll eine Softwareeinheit keine Funktionalitäten implementieren, die außerhalb ihres Verantwortungsbereichs liegen.

weiterlesen

Softwaremetriken: Zyklomatische Komplexität

Eines der Ziele der professionellen Softwareentwicklung ist es, qualitativ hochwertigen Code zu erstellen. Aus Sicht des Entwicklers bedeutet das unter anderem, dass Software durch entsprechend gute Strukturierung lesbarer, testbarer und wartbarer wird. Auch aus Sicht des Kunden bringt dies Vorteile. Wartungsaufwände werden verringert und Aufwandsschätzungen für Erweiterungen und Refactorings werden erleichtert.

Qualität darf in diesem Zusammenhang kein leerer Begriff bleiben, unter dem sich jeder Beteiligte etwas anderes vorstellt. Deswegen versucht man, Qualität und die Einhaltung von Qualitätsvorgaben mithilfe von Softwaremetriken zu quantifizieren und messbar zu machen.

weiterlesen