code.talks
In der vergangenen Woche fand das alljährliche "Klassentreffen der deutschen Entwicklerszene", die code.talks Konferenz, statt. 1500 Teilnehmer, darunter auch Sebastian Bergmann und Arne Blankerts von thePHP.cc, waren nach Hamburg gekommen, um bei Nachos und Popcorn (es gab aber auch richtiges Essen) in einem Multiplex-Kino Erfahrung und Wissen zu teilen.

Photo by Viktor Vogel
Caching löst ein Architekturproblem an der falschen Stelle
Webseiten müssen schnell sein, denn die Bereitschaft, auf das Laden einer Webseite zu warten, sinkt stetig. Folglich zählt jede Millisekunde, wenn es darum geht, Absprünge zu vermeiden. Egal ob reale Ladezeiten, gefühlte Dauer des Seitenaufbaus oder das Reaktionsverhalten im Browser – es gibt viele Stellen, an denen im Client gemessen und regelmäßig optimiert wird. Tauchen Engpässe hingegen im Backend auf, gilt scheinbar vor allem eine Parole: exzessives Caching! Blöd nur, wenn sich Inhalte so häufig ändern, dass ein Caching praktisch wirkungslos ist.
In ihrem Vortrag "Die Performance steigern wir dann später durch Caching?" stellten Arne Blankerts und Sebastian Heuer, Lead Developer PHP bei der Globetrotter Ausrüstung GmbH, eine moderne Architektur für E-Commerce Anwendungen vor, die nicht nur ohne Caching auskommt sondern auch noch performanter ist als traditionelle Architekturen mit Caching. Die vorgestellte Architektur wurde von thePHP.cc erarbeitet, um bei Globetrotter ein vorhandenes Altsystem durch eine Eigenentwicklung abzulösen.
Big Data ist kein Spielkram!
Katrin Stamme und Martin Holtschneider von freiheit.com zeigten in ihrem Vortrag "Messung und Analyse des Benutzerverhaltens in sehr großen Internet-Systemen zur Optimierung der User Experience" eindrucksvoll, dass Standard-Lösungen wie Google Analytics nicht ausreichen, um Software-Funktionalitäten und Bedienabläufe systematisch zu verbessern. Für die Optimierung der User-Experience und damit auch der Conversion- und Retention-Rates benötigt man Rohdaten, die einem keine Standard-Lösung zur Verfügung stellt. Richtig ausgewertet können diese Daten ein Bild davon vermitteln, wie Kunden beispielsweise eine E-Commerce Plattform nutzen.
Der Vortrag "Big Game Data – Skalierbare und fehlertolerante Event-Tracking-Architektur" von Volker Janz stellte die skalierbare und fehlertolerante Plattform vor, mit der InnoGames die täglich über 200.000.000 von ihren Spielen erzeugten Events speichert, verwaltet und auswertet. Diese Plattform basiert auf den Ideen der Lambda-Architektur und wurde mit den Technologien Kestrel (Message Queue) sowie Apache Storm (Realtime Computation) und Apache Hadoop (Distributed Computing) umgesetzt. Der Vortrag zeigte anschaulich, dass Big Data wahrlich kein Spielkram ist, wohl aber eine Spielwiese sein kann, um sich als Entwickler mit neuen, spannenden Technologien auszutoben.
Neue Wege in der Code-Analyse
In seinem Vortrag "Datengetriebene Analyse und Verbesserung von Code" hat Andreas Dewes von QuantifiedCode, einer Ausgründung der Ludwig-Maximilians-Universität München, einen datengetriebenen Ansatz zur Bewertung von Code-Qualität vorgestellt. Mit einem lernfähigen Algorithmus sollen entsprechende Werkzeuge einmal in der Lage sein, anhand von Code-Beispielen selbständig neue Fehlerklassen zu erlernen und anschließend im Code aufzudecken.
Auch wenn die Ansätze von QuantifiedCode bislang nur für Python-Code umgesetzt wurden, so fanden wir den Vortrag von Andreas Dewes dennoch sehr spannend. Die Idee, den abstrakten Syntaxbaum eines Programms in einer Graphendatenbank abzulegen und mit entsprechenden Algorithmen darauf zu arbeiten, sollte sich problemlos auch für PHP adaptieren lassen.
"Mit welchem Tool soll ich testen?" ist die falsche Frage
Soll ich meine Software besser als Ganzes mit End-to-End Tests testen oder doch lieber im Kleinen mit Unit Tests? Und welchen Ansatz soll ich verfolgen? Acceptance Test-Driven (ATDD)? Behavior-Driven Development (BDD)? Test-Driven Development (TDD)? Diese und andere Diskussionen rund um das Testen von Software führen Entwicklerinnen und Entwickler leider allzu oft nur aus der Werkzeugsicht und verlieren dabei den eigentlichen Entwicklungsprozess aus den Augen.
In seinem Vortrag "Eine kurze Geschichte der Testpraktiken" erklärte Sebastian Bergmann nicht nur die unterschiedlichen Ansätze wie ATDD, BDD und TDD sondern ging auch der Frage nach, wann und in welchem Kontext sie ursprünglich erfunden beziehungsweise wiedergefunden wurden. Den Teilnehmern vermittelte er dabei ein Verständnis für die gängigen Prozessbausteine rund um das Testen, damit sie den für sie passenden Prozess ebenso wählen können wie die Werkzeuge, mit dem sie den Prozess umsetzen.
Fazit
Die code.talks Konferenz steht für alles, was eine Entwicklerkonferenz ausmacht: Themen und Trends der Webentwicklung, interessante Vorträge, hochkarätige Speaker und regen Austausch zwischen den Teilnehmern. Wir möchten uns an dieser Stelle herzlich bei Tarek Müller und Sebastian Betz sowie Sarah Fitzke für die gelungene Organisation der Konferenz bedanken. Wir freuen uns schon aufs nächste Mal!