Blog

Alle Beiträge von Jan Weinschenker

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:

Mobile Apps erstellen mit PhoneGap, Titanium & Co.

Die Zeiten, in denen man Anwendungen ausschließlich mit Oberflächen ausstattet, die über einen Monitor betrachtet und über Tastatur und Maus bedient werden, sind vorbei. Mittlerweile ist es keine Besonderheit mehr, als Endgerät auch Smartphones und Tablets berücksichtigen zu müssen.

Diese Geräte sind heutzutage vollgepackt mit vielfältigen technischen Gimmicks: GPS-Modul, Beschleunigungssensor, Kontaktverwaltung, Kamera uws. gehören bei iPhone, Android & Co. zum Standard. Eine für mobile Geräte optimierte Webseite hat oft nur eingeschränkten Zugriff auf diese Funktionen.

Für den vollen Zugriff benötigt man eine App, die direkt auf dem mobilen Gerät installiert wird. Als Entwickler muss man sich dann vor seinen Rechner setzen und die App für das iPhone oder für Android entwickeln. Die entsprechenden Entwicklungswerkzeuge sind für sich genommen sehr komfortabel. Nur ist man zunächst einmal an eine der SmartPhone-Welten gebunden.

Das ist natürlich sehr unbefriedigend, wenn man einen großen Anwenderkreis ansprechen will.

Doch wie kommt man zu einer brauchbaren App, die auf vielen mobilen Geräten läuft, ohne sich allzu tief in die speziellen Niederungen der Android- oder iOS-Entwicklung hinab begeben zu müssen?

weiterlesen

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