
Software Qualität === Gesundheit - Roland Golla, Never Code Alone
In seinem Talk ging es darum, wie Qualität Einfluss auf deine Gesundheit haben kann. Er selbst stand kurz vor einer Überlastung durch den Druck in der Arbeit. Leider sind gerade Entwickler durch den Stress häufiger von Burnout betroffen. Das zeigt sich auch dadurch, dass gerade in den letzten Jahren eine Berufsunfähigkeitsversicherung für Entwickler teurer geworden ist.
Roberts Meinung nach führt schlechte Qualität zu einem Hamsterrad: Viele Blocker erzeugen mehr und mehr Druck für die Entwickler. Ein Ausweg ist nicht in Sicht, wegen der Blocker kann man sich dann nicht mehr auf neue Features konzentrieren. Das wiederum führt zu steigenden Druck durch die Geschäftsleitung, “ihr liefert zu langsam neue Features und außerdem verlieren wir durch einen Blocker eine große Summe Geld” bekommt man dann zu hören. Stimmt ja auch, ein Blocker erzeugt keinen Mehrwert für den Nutzer der Software. Überstunden sind eine oft versuchte Form mit diesem Druck umzugehen, jedoch können nur wenige Entwickler nach Feierabend abschalten, viel schlimmer noch - sie nehmen diesen Druck mit nach Hause und können deshalb schlecht oder gar nicht mehr schlafen.
- Wie kann man nun aus dem Hamsterrad Stress als Entwickler ausbrechen?
- Nutze Pair Programming und Review, um die Qualität zu verbessern,
- Unterstütze deine Teammitglieder bevor du etwas Neues anfängst
- Frage dein Team aktiv um Hilfe, wenn du nicht weiterkommst
- Automatisiere Deployments und nutze automatisierte Tests (Unit, Integrationstest)
- Sei verantwortlich für deine Gesundheit! Niemanden ist geholfen, wenn du für längere Zeit ausfällst
- Achtsamkeitsübungen sind hilfreich, um aus Gedankenspiralen auszubrechen
Der Talk selbst wurde extrem frei gehalten und sprach ein wichtiges Thema an: Wir als Entwickler sind für Codequalität und unsere Gesundheit verantwortlich! Das heißt auch, dass wir uns mit den Produkten und den Nutzern beschäftigten/identifizieren sollten, um wirklich gute Arbeit zu leisten.
Vom Zend Framework zu Laminas - Ralf Eggert, Travello GmbH
Im Vortrag ging es um die Geschichte des Zend Framework (ZF) und wie die Entwicklung unter der Linux Foundation weitergehen wird. Dabei erzähle Ralf Eggert neues vom Matthew Weier O’Phinney, dem ehemaligen Projektleiter von Zend Framework (2009-2018). Erstaunlich fand ich, dass derzeit Zend Framework 1 immer noch in vielen Produktivsystemen eingesetzt wird. Als einen der Hauptgründe nannte Ralf Eggert die Migration von ZF1 zu ZF2, die faktisch einer Neuentwicklung entspricht.
Das Ende von Zend Framework?
Die Firma Zend Technologies wurde im Januar 2019 von Perforce Software übernommen, welche umgehend angekündigt hat, das Zend Framework nicht mehr weiterzuentwickeln. Seit April ist nun klar, dass das Zend Framework unter dem Dach der Linux Foundation unter dem Namen „Laminas“ als Open-Source-Projekt weitergeführt wird. Die alten Repositories werden nur archiviert und können weiterhin benutzt werden- jedoch ohne Weiterentwicklung. Wer bereits ZF3 einsetzt wird nicht riesige Aufwände zu erwarten haben, da sich nur erstmal die Namespaces ändern werden. Die Pakete werden neu auf Packagist eingereicht. Auch ein Migrationstool für Zend 3 wurde entwickelt, welches alle Tags unter dem Laminas Namespace veröffentlicht. Somit können auch ältere Releases genutzt werden. Wer noch ZF2 einsetzt, sollte zuerst auf ZF3 migrieren. Der technische Launch von „Laminas“ ist für November für 2019 geplant.
Interview mit Ralf Eggert: https://www.youtube.com/watch?v=aCxCADO91YM
Beyond clean Code: Building the right Software - Stefan Priebsch, thePHP.cc
Stefan hat in seinem Talk erklärt, warum sauberer Code nicht alles ist, um einen glücklichen Kunden zu haben. Gerade in der Praxis sind trotz grüner Tests und zufriedener Entwickler die Anwender immer noch nicht zufrieden. Warum sind die Entwicklungskosten immer noch so hoch und die Geschwindigkeit immer noch so niedrig? Neben dem Erlernen, wie man Software richtig schreibt, müssen wir auch lernen, die richtige Software zu schreiben
Wichtige Aussagen:
- Frage dich, wie lange wird die Software existieren?
- Sollte ich diesen Code überhaupt schreiben? (Was braucht der Kunde wirklich?)
- Startet mit einem Minimum Viable Product (MVP) und verbessere dieses immer weiter mit neuen Funktionen.
Alle Talks von thePHP.cc
https://thephp.cc/termine/2019/10/international-php-conference
Hacking JWTs: The attacker’s perspective - Joel Lord, Red Hat OpenShift
Der Talk war eine Live-Coding Session um die typischen Sicherheitslücken zu zeigen die beim Einsatz von JWT gerne übersehen werden. Zuerst wurde erklärt, was JSON Web Token (JWT) überhaupt ist:
Ein offener Standard (RFC 7519), der eine kompakte und in sich geschlossene Methode zur sicheren Übertragung von Informationen zwischen Parteien als JSON-Objekt definiert. Diese Informationen können verifiziert und vertrauenswürdig gemacht werden, da sie digital signiert sind. JWTs können mit einem Secret (mit dem HMAC-Algorithmus) oder einem Public-Private-Key-Pair mit RSA oder ECDSA signiert werden.
Am meisten werden JWT zur Authentifizierung von Nutzern verwendet, um zum Beispiel Daten von einem privaten API zu laden. Dabei erhält das Frontend einen Schlüssel bestehen aus Header, Payload und einer Prüfsumme.
Die drei häufigsten Sicherheitslücken sind dabei:
- Die Prüfsumme wird nicht geprüft
- Der Check der Prüfsumme kann via Header für viele Libraries deaktiviert werden
- Ein schwacher Secret Key (kleiner als 64 Zeichen, kann durch eine Brute Force Attacke ermittelt werden)
Mehr Informationen mit dem Live Coding zum selber ausprobieren: http://javascripteverything.com/landing/hackingjwt.php
Speed, Speed, Speed: JavaScript vs C++ vs WebAssembly - Franziska Hinkelmann, Google

In dem Talk ging es darum wie sich JavaScript gegen C++ und WebAssembly abhebt, welche Art von Code tatsächlich schnell ist und welche Performance-Aspekte beim Erstellen von Apps mit Web-Technologien zu berücksichtigen sind.
Wichtige Aussagen des Talks:
- Modernes Javascript ist schnell
- C++ ist schneller
- WebAssembly hat fast die selbe Geschwindigkeit wie C++
- Läuft nativ in jedem neuen Browser siehe https://caniuse.com/#feat=wasm
- Optimiere niemals blind die Geschwindigkeit, sondern nutze Profiler zum analysieren des Codes
Der vollständige Vortrag auf Youtube:
https://www.youtube.com/watch?v=uMuYaES4W3o
In den zweiten Tag bin ich mit einem Talk zum Thema PHP und Qualität gestartet, den Rest des Tages besuchte ich eher den Javascript-Teil um mich da über Neuheiten zu informieren.
Aggressive PHP Quality Assurance in 2019 - Marco Pivetta, Roave, LLC.
PHP hat den Ruf, eine sehr flexible, aber dennoch sehr unordentliche Programmiersprache zu sein. Um das Chaos in Schach zu halten, bedarf es einer Menge an technischem Fachwissen. In seinem Vortrag hat Marco Pivetta untersucht, wie sich die Qualitätssicherung für populäre Open-Source-Pakete in den letzten Jahren entwickelt hat und wie wir unsere eigenen Projekte weiter verbessern können.
Wichtige Aussagen:
- Manuelles Testing ist extrem teuer, deshalb versuche Tests zu automatisieren.
- Jeder Softwareentwickler soll Qualitätskontrolle betreiben und ist dafür verantwortlich, dass diese gut ist.
- Mache dir klar, womit dein Auftraggeber Geld verdient und verstehe sein Business und seine Prozesse
- Dann baue die Software, die der Nutzer wirklich braucht (MVP)
TypeScript für React Entwickler - Lenz Weber, Mayflower
Lenz war für einen Kollegen eingesprungen und hat den Teilnehmern gezeigt wie man in einer bestehenden Applikation Typescript einsetzen kann. Typescript ist eine extrem gute Erweiterung um deine React-Apps stabiler, lesbarer und verwaltbarer zu machen. Typescript muss bei React mit dazu installiert werden um genutzt werden zu können.
Eine gute Anleitung kann hier gefunden werden: https://create-react-app.dev/docs/adding-typescript/
Lenz zeigte das Autocomplete-Feature der Types mit Visual Studio Code, das war extrem beeindruckend. Gerade dass man normales ECMAScript 6 und Typescript mischen kann fand ich extrem cool. Die 45-minütigen Live Coding Session hat mich überzeugt: Ich werde meine nächste React Application in Typescript bauen ;-)
Gute Links zum Thema TypeScript und React:
- https://www.swyx.io/speaking/intro-to-typescript/
- https://www.swyx.io/speaking/react-typescript/
- https://medium.com/@rossbulat/how-to-use-typescript-with-react-and-redux-a118b1e02b76
- https://github.com/typescript-cheatsheets/react-typescript-cheatsheet
Testing GraphQL in your JavaScript application: From zero tTo one hundred percent coverage - Roy Derks, City of Amsterdam
Auch dieser Talk war wieder eher eine Live Coding Session. Gerade das Testen von JSX-Komponenten kann sehr schwierig sein, insbesondere wenn sie GraphQL-Abfragen enthalten. Roy startete, das Schema zu testen, denn damit können Tippfehler und Typ-Konflikte gefunden werden. Anschließend wurde gezeigt, wie man Unit- und Integrationstests schreiben kann. Abgerundet wurde die Session mit einem Exkurs zu Last- Tests. Wenn du dich mit dem Thema näher beschäftigen möchtest, empfehle ich dir den folgenden Blogpost von Alejandro Estrada:
Start testing your GraphQL Schema, Queries and, Mutations: https://hackernoon.com/start-testing-your-graphql-schema-queries-and-mutations-b514911b1368
Tool mit dem wir die Tests geschrieben haben: https://github.com/EasyGraphQL/easygraphql-tester
Weitere gute Tipps zum Thema Last Testing findet ihr hier: https://github.com/EasyGraphQL/easygraphql-lt
Hier der vollständige Talk: https://www.youtube.com/watch?v=qVyPAU1Y9nk