Blog >>> Crew_

Crew Hackathon IX

Bei unserem regelmäßigen Crew-Hackathon lassen wir einen Tag lang den Projekt-Alltag hinter uns und schauen gemeinsam als Team über den Tellerrand hinaus. Hier erfahrt ihr, welchen Themen wir uns dieses Mal gewidmet haben.
15.07.2020
Phil-Bastian Berndt
Phil-Bastian Berndt
Entwickler, Gründer
Crew Hackathon IX

Der Ablauf

Ende Mai fand der Crew-Hackathon bereits zum neunten Mal statt. Besonderheit dieses Mal: wir haben komplett Remote gearbeitet. Für Video-Konferenzen nutzen wir täglich Whereby, testen aber auch parallel zur Zeit noch die Open Source Software eduMeet.

Wir sammeln ständig Themen auf unserem virtuellen Ideen-Board für den nächsten Termin. Am Tag selbst bilden wir morgens in einer kurzen Session die Teams für die Themen, welche für uns gerade am interessantesten sind.

So ergeben sich meist drei bis vier Gruppen, welche sich den Tag über mit einer neuen Technologie, einem Problem oder einem interessanten Thema auseinandersetzen. Am späten Nachmittag treffen wir wieder aufeinander und stellen uns unsere Ergebnisse vor und besprechen, wie wir diese in den Arbeitsalltag einfließen lassen können.

Die Themen

Mittlerweile sind wir im Team zu zehnt und somit arbeiten natürlich auch immer mehr Köpfe und Hände an den einzelnen Prozessen und Projekten. Daher lag unser Fokus dieses mal darauf, Tools und Lösungen zu finden, die uns die Zusammenarbeit effizienter gestalten lassen und vor allem erleichtern.

Infrastruktur automatisieren mit Terraform

Terraform ist eine Lösung für Infrastructure as Code (IaC), welche es dem ambitioniertem Informatiker ermöglicht, seine Infrastruktur über Code abzubilden. Hierbei bietet Terraform sehr breite Unterstützung verschiedenster Cloud-Provider. Während diesem Hackathon haben wir uns nur mit Amazon Web Services (AWS) beschäftigt. Zunächst haben wir uns Informationen über Terraform eingeholt. Hierbei wird man nahezu erschlagen von Möglichkeiten, was alles automatisiert werden kann. So kann man zum Beispiel einen Login für eine Datenbank in einem Passwortmanager speichern, sobald diese erreichbar ist.

Philipp, Hauke und Kevin konnten in diesem Hackathon den Grundstein für GitLab Review Apps schaffen und diese auf einer AWS-Infrastruktur provisionieren. Dies hat so zuverlässig und reproduzierbar funktioniert, dass Terraform nun Einzug in eines unserer Projekte erhalten wird.

Neues Tooling für unseren PHP-Workflow

Um in unseren PHP-basierten Anwendungen für einen einheitlichen Code-Style zu sorgen und mögliche Probleme frühzeitig zu erkennen setzen wir seit jeher auf statische Code-Analysetools wie PHPMD und PHP_CodeSniffer in Zusammenspiel mit dem Slevomat Coding Standard.

Um nicht einzurosten, wollten wir nun aber auch mal neuen Tools eine Chance geben, die uns in den letzten Monaten oder sogar Jahren immer wieder positiv aufgefallen sind. Tristan, Katharina und Sebastian haben sich eine Hand voll dieser Tools vorgenommen:

  • vimeo/psalm Psalm hilft dabei offensichtliche als auch schwer zu entdeckende Fehler in der Codebasis zu identifizieren. Das Tool bietet viele Linter Regeln für die Analyse, ein Kommando zur automatischen Fehlerbehebung. Zudem existiert ein Plugin für Visual Studio Code, welches automatisch alle Hinweise im Editor visualisieren kann. Leider dauert diese Analyse über das Plugin sehr lange (bis zu 30 Sekunden).
  • pestphp/pest Pest ist ein elegantes PHP Testing Framework mit Fokus auf die Einfachheit. Es wurde entwickelt um “Freude beim Schreiben von PHP Test zu haben”. Entwickelt wird es von Nuno Maduro, der inzwischen offizielles Mitglied des Laravel Core Teams ist. Pest basiert auf PHPUnit, sodass man Pest ohne Bedenken in bestehende Projekte integrieren kann, um neue und sukzessive bestehende Tests in Pest zu schreiben. Die Lesbarkeit der Tests ist merklich angenhemer. Darüber hinaus werden die einzelnen Test-Dateien durch die Benutzung von Pest kürzer. Wir haben uns zum jetzigen Zeitpunkt noch gegen den Einsatz in produktiven Projekten entschieden, da Pest noch in der Entwicklung ist - es im Blick zu behalten lohnt sich aber definitiv.
  • nunomaduro/phpinsights Mit PHP Insights wird die Qualität des Codes in vier Bereichen (Code, Complexity, Architecture und Style) analysiert und prozentual bewertet. Dadurch erhält man einen übersichtlichen Startpunkt, um die Code-Qualität weitergehend zu bewerten. Der Nachteil (für uns) dabei ist, dass sich einzelne Regeln nur schwer anpassen und mit unseren bestehenden Regeln anderer Linter kombinieren lassen.
  • phan/phan Phan ist ein weiteres Werkzeug zur statisches Code-Analyse, welches den Code allerdings komplett verarbeitet, anstelle ihn erst auszuführen, um dann die Überprüfung durchzuführen. Dadurch ist Phan etwas schneller als seine Konkurrenz, benötigt dafür aber mehr Arbeitsspeicher und mit php-ast eine zusätzliche PHP-Erweiterung.
  • phpdbg phpdbg ist ein Debuggingswerkzeug, welches seit PHP 5.6 in PHP integriert ist. Der Plan war, die Code Coverage aus zwei unterschiedlichen Test Suites in einem unserer umfangreicheren Projekte zu berechnen. Diesen konnten wir aus zeitlichen Gründen aber nicht mehr verwirklichen.
  • phpstan/phpstan Für PHPStan existiert mit nunomaduro/larastan ein speziell auf unsere Laravel-Anwendungen zugeschnittenes Regelset. Wie alle Tools, werden auch diese beiden als Open Source Software ständig durch die Community weiterentwickelt, um die Code-Analyse noch weiter zu verbessern. Die Fehler & Tipps, die in unseren Projekten zum Vorschein kamen, hatten für uns jedoch nur geringe Relevanz - vermutlich weil wir bereits andere Tools im Einsatz haben. Zudem existiert ein hoher Konfigurationsaufwand, da (aus unser Sicht) zu viele überflüssige Hinweise resultieren.

Wissen teilen über unseren Blog

Schon im Prozess der Neugestaltung unserer Corporate Identity, welche wir im März veröffentlich haben, war der Blog ein fester Bestandteil. Es fehlte aber noch der letzte Feinschliff: die technische Realisierung musste geplant, ein Redaktionsworkflow definiert und schlussendlich auch alles umgesetzt werden.

In Zuge dessen arbeiteten wir uns auch in Netlify CMS ein. Eine sehr schlanke Lösung zur Inhaltspflege, welche keine Datenbank benötigt und sich zudem noch direkt in unseren Git Workflow integriert. Über die Oberfläche verwalten wir nun nicht nur unsere Blogbeiträge, sondern auch freie Stellenangebote, Events auf der Kontaktseite, unsere Crew sowie unsere Kunden & Partner.

Den Grundstein für den Blog haben Simon, Bene und Phil nun gelegt und in den vergangenen Wochen finalisiert. Das Ergebnis seht ihr hier. Wir haben noch einiges geplant, sodass der Blog in Zukunft mit weiteren Features ausgestattet wird. Wir hoffen, dass es gefällt. :-)

Teilen @