c’t Webdev 2020

Vom 04. bis 06. Februar habe ich an der c’t Webdev in Köln teilgenommen. Die Konferenz richtet sich mit ihren Themen speziell an Frontendentwickler, die sich über die schnell wandelnden Tools und Techniken weiterbilden wollen.


Am Tag 1 war die Teilnahme an einem Workshop geplant. Der Tag stand ganz im Zeichen von richtigem und einfachen Testen von Javascriptcode. Marco Emrich (wie es sich für einen guten Entwickler gehört natürlich auch mit Twitterhandle: @marcoemrich) zeigte uns anhand vieler Beispiele wie einfach man Javascriptcode so aufbauen kann, dass er testbar ist. Die Zeiten von langen Skriptdateien, die keiner mehr überblicken kann, ist schon lange vorbei. Die Beispiele aus dem Workshop wurden von uns Teilnehmern immer im Pair-Programming Stil gelöst. So konnte man die anderen Konferenzteilnehmer schonmal kennenlernen und hatte auch in den nächsten Tagen schon Anschluss.

JEST ist ein schnelles und leichtgewichtiges Unit-Testingframework, das gerade im ReactJS Bereich bekannt ist, da es in der React-Projektvorlage schon eingebaut ist. Mit JEST lassen sich sehr einfach und schnell Unit Tests schreiben und ausführen. Das haben wir an verschiedenen Code-Katas (https://kata-log.rocks/) demonstriert. Die Integration in die CI-Pipeline ist auch noch mit dabei. Was will das Entwicklerherz mehr?

Cypress kommt dann zum Einsatz, wenn integrative Bestandteile einer Webseite getestet werden sollen. Gerade bei Seiten übergreifenden Aktionen, oder Aktionen mit Datenbankbeteiligung kommt man umso ein Tool nicht herum. Cypress kann den Browser fernsteuern und so einen Benutzer simulieren. Fehler bei der Benutzerführung lassen sich so schnell finden. Solche Tests sind aber sehr langsam. Nach der Testpyramide sollte mehr mit Unittests abgedeckt werden als mit Ende-zu-Ende-Tests. Die Buildpipeline wird es einem danken!

Das Fazit von diesem Tag: Testen in Javascript ist nicht nur möglich, sondern auch super easy. Warum das nicht viel öfter gemacht wird ist mir jetzt ehrlich gesagt ein Rätsel.

An Tag 2 und 3 fand die eigentliche Konferenz im Mediapark in Köln statt.

An der ersten Keynote sollten wir lernen CSS wieder zu lieben. Der CSS Standard existiert seit 1996 und wurde seitdem immer nur erweitert aber kaum eine Regel wurde entfernt. Das führte dazu, dass viele Entwickler mit den Möglichkeiten des CSS-Standards schlichtweg überwältigt sind.
Rachel Andrew präsentierte Kniffe um sich im CSS-Dschungel wieder zurechtzufinden und ebenso einige andere wertvolle Tipps. So ist Responsive Design nicht nur zur Anpassung an die Browsergröße gedacht, sondern auch zur Anpassung an die Funktionen, die Browser anbieten.

Der wohl lehrreichste Vortrag war “Safe to fail environments”. Wer jetzt vermutet, dass es um Umgebungen geht, in denen man keine Fehler mehr machen kann, ist genauso falsch wie ich zuerst. Zwei Entwickler stellten vor, wie sie im eigenen Unternehmen mit Fehlern umgehen, um aus diesen für die Zukunft zu lernen. Unter anderem führen sie regelmäßige Feedbackgespräche ohne Chefs dafür aber mit dem gesamten Team. Außerdem haben sie den Openfriday ausgerufen, eine Art Konferenz light im Unternehmen. Dabei geht es um Wissensaustausch zwischen den Mitarbeiter, was aber nicht auf den Job bezogen sein muss. Grundsätzlich ging es immer darum eine Umgebung zu schaffen, in der es okay ist zu scheitern oder Fehler zu machen. Hat man ein Netz und doppelten Boden, kann man leichter neue Funktionen ausprobieren und kommt so schneller voran.

Habt ihr schon von Chaos Engineering gehört? Nein? Ich auch nicht. Dabei geht es vereinfacht gesagt darum einmal zu testen, was sonst niemand testen würde. Wurde wirklich mal getestet, was passiert, wenn die Datenbank plötzlich nicht mehr erreichbar ist? Was passiert, wenn sie danach wieder erreichbar ist, stabilisiert sich das System von selbst? An einem Game Day darf jeder mal “Chaos Monkey” spielen und man geht gemeinsam solchen Fragestellungen nach. Jeder darf sich ein Teil des Systems aussuchen und kaputtmachen, aber natürlich nicht die Produktivsysteme!

Über einen kleinen Abstecher zum OWASP Testing Guide ging es weiter zu den Perfomancemythen bei Webseiten. Wer hätte gedacht, dass allgemein betrachtet die Performanceverbesserung bei PHP nur 7% beträgt. Durch Caching auf Serverseite ist der Vorteil tatsächlich nur sehr gering. Viel wichtiger ist es Overhead zu vermeiden.

ReasonML ist das bessere Typescript, so der Titel des nächsten Vortrags. Die Sprache transpiled viel schneller als Typescript und ist genauso typsicher. Zudem hat man die Vorteile der funktionalen Programmierung und einem konsequenteren Typsystem.

Ich habe außerdem erfahren wie mächtig Buildpipelines in Continuos Integration sind und wie Chatboots bei der Lufthansa funktionieren. Den Abschluss haben die React Hooks gemacht.

Dann waren die drei Tage Konferenz auch leider schon wieder vorbei. Es waren drei anstrengende, aber auch sehr lehrreiche Tage. Die Konferenz war sehr gut organisiert und man konnte sich gut mit den anderen Teilnehmern austauschen. Für mich aber auch für uns als Unternehmen habe viel mitgenommen und wir werden das ein oder andere Mal bei uns ausprobieren. Auf das Chaos Engineering freue ich mich, da man einige interessante Einblicke in die Software und die verbundenen Systeme erhalten kann. Die Webdev findet 2021 wieder statt und wenn es passt nehme ich gerne wieder teil.

Florian Schleich