Bericht von der MageUnconference 2018
Am 27. und 28. Oktober waren wir auf der von FireGento organisierten MageUnconference 2018. Die vierte Ausgabe des Community Events fand – wie in jedem Jahr – wieder an einem anderen Ort, nämlich im Tor 28 in Köln, statt. Ungefähr 150 Teilnehmer freuten sich über ein spannendes Sessionprogramm, die halbstündigen Kaffeepausen dazwischen, eine Pre-Party am Freitag und eine entspannte Party am Samstag. In diesem Beitrag brechen wir einmal mehr eine Lanze für das Format „unConference“ und fassen zusammen, was wir in diesem Jahr aus Köln mit nach Kiel genommen haben.
Inhaltsverzeichnis
Was ist eine „unConference“?
Bei einer unConference steht kein festes Konferenzprogramm, sondern der Austausch der Teilnehmer untereinander im Vordergrund. Es gibt sogar überhaupt kein im Vorfeld festgelegtes Programm oder angekündigte Vorträge und Sprecher. Stattdessen werden zu Beginn der unConference aus den Reihen der Teilnehmer Vorschläge für Sessions gemacht, über deren jeweiliges Stattfinden dann gemeinsam abgestimmt wird. Zwischen den 45-minütigen Sessions (möglich sind etwa spontane Vorträge, Workshops, moderierte Diskussionen) gibt es eine halbe Stunde Kaffeepause. Und um eben diese Pausen geht es am Ende eigentlich bei einer unConference: angeregt durch die Sessions tauschen sich die Teilnehmer intensiv miteinander aus. Mehr über dieses spannende Format findet sich auch im Blog von integer_net.
Was wurde geboten bei der MageUnconference 2018?
Einmal mehr konnte sich das spontan zusammengestellte Programm der MageUnconference wirklich sehen lassen. In unserem kleinen Bericht gehen wir (wie schon im vergangenen Jahr) allerdings nur auf die Sessions ein, an denen „wir“ auch tatsächlich teilgenommen haben. Weitere Berichte mit je etwas anderen Schwerpunkten haben Karen Baker, Tadhg (Tiger) Bowe, integer_net und Netresearch in ihren Blogs beigesteuert.
Message Queues
Sylvain Rayé von Diglin aus Zürich hat uns den Open Source Message Broker RabbitMQ anhand eines Projekts vorgestellt. Das Tool ist mithilfe zusätzlicher Worker sehr gut skalierbar und schreibt das Datenformat nicht vor, so dass beispielsweise JSON genutzt werden kann, aber nicht muss. Seit der Version Magento 2.2.7 unterstützt RabbitMQ auch asynchrone Kommunikation, so dass Message Queues abgearbeitet werden können, ohne dass die unterschiedlichen Aufgaben sich gegenseitig blockieren. Während der Bearbeitung wird das Datum gelockt, so dass Transaktionssicherheit gewährleistet wird. RabbitMQ hat eine grafische Benutzeroberfläche für Fehlerhandling und Queue-Übersicht, die man aber auch mit Logstash in Kibana kontrollieren kann. Zudem wurde RabbitMQ in dem angeführten Projekteinsatz an das Open Source-Produktinformationsmanagement (PIM) Akeneo angebunden werden, während Imports mit Andreas von Studitz’ FastSimpleImport eingerichtet wurden. Für den Produktimport wurde in dem von Sylvain vorgestellten Use Case allerdings nicht RabbitMQ, sondern einfach Cron eingesetzt.
Projektmanagement Tools
Jeroen Boersma hatte sich eine Diskussion zu PM-Tools gewünscht, die er dann gekonnt und locker moderierte. Er verwies in seiner Session auf die Vorteile von GitLab Commerce und empfahl insbesondere Boards anstelle von Labels für die Sortierung von Issues. Es ging viel um Kommunikation innerhalb von Projekten und welche Tools (zum Beispiel Jira von Atlassian) viele der Teilnehmer noch vor wenigen Jahren eingesetzt haben und auf welchen Wegen mittlerweile viele in Richtung GitLab (Commerce oder Open Source) umgeschwenkt sind, um hier Entwicklung, Projektleitung („oder darfs ein wenig Scrum sein“), Deployment und Projektkommunikation in einer Plattform zu vereinen.
CMS Integration
Dann ging es mit Tobias Niebergall und Fabian Schmengler um das auf Symfony basierende Sulu CMS im Zusammenspiel mit Magento. Das CMS benötigt eine Datenbank und nutzt Templates in XML. Eine Sulu CMS Live-Demo mit Frontend und Backend gibt es auch. Über eine API (zum Beispiel REST) lassen sich Inhalte aus Sulu in Magento einbinden. Daniel Fahlke war ebenfalls Host der Session und erweiterte die CMS Diskussion um die Integration von WordPress in Magento.
Magento Security
Das nächste Thema war dann mal wieder Security in Magento. Jeroen Boersma stellte MageReport als Lösung für das Aufspüren von Schwachstellen vor. Zum Thema Erweiterungen empfahl er die Auflistung unsicherer Extensions auf Willem de Groots Blog Willem’s Lab. Und ebenfalls von Willem ist ein praktischer Magento Malware Scanner auf GitHub verfügbar. Für aus der Community beigesteuerte Disclosures von Sicherheitslücken zahlt Magento mittlerweile übrigens über Hacker 1 und nicht mehr über bugcrowd.com – und in diesem Zusammenhang durfte auch Talesh Seeparsan nicht unerwähnt bleiben. Zusammenfassend lässt sich festhalten, dass die Community allerhand für die Sicherheit von Magento unternimmt – und auch erwartet, dass Adobe das zu schätzen weiß.
Code Reviews
Bei Fabian Schmengler ging es dann in angeregter Diskussion um Code Reviews. Die Prüfung auf die Einhaltung von Konventionen, so Fabian, kann und sollte daher unbedingt automatisiert erfolgen. Allerdings bleiben zwischen Entwicklern auch bei fehlerfreiem Code oftmals Fragen und Unklarheiten: „Ich verstehe nicht, wie das funktioniert, erkläre mir bitte deinen Code“. Aber auch Tests können zum Startpunkt für Reviews werden. Eine weitere wichtige Empfehlung von Fabian besteht in der klaren Unterscheidung zwischen Anmerkungen und Anforderungen für Änderungen. Beides, Anmerkungen und To-dos können direkt in den Code geschrieben werden. Der angenehme Nebeneffekt dabei: Am Ende sorgen intensive Code Reviews für bessere Doku.
Checkout mit react.js
In ihrer Session stellten Willem Wigman und Fabian Schmengler eine Alternative zum Magento 2 Checkout vor. Die beiden wollten nicht auf die PWA Lösung von Magento 2.3 warten und Willem hat bereits den Checkout mit react umgesetzt. Die auf react.js aufbauende und mithilfe von redux.js zu vereinfachende Lösung lässt sich besser handhaben als der Magento Checkout. Für die API-Entwicklung wurde dabei das Tool Postman empfohlen, mit dem sich alle POST- und GET-Anfragen anzeigen lassen. Die Entwicklung hat Willem sehr viel Spaß gemacht und er hat jedem den Umstieg auf react wärmstens ans Herz gelegt.
Was bleibt? Viel Technik und ganz viel Community!
Und was bleibt von der MageUnconference 2018? Wie schon im vergangenen Jahr: ganz viel Technik. (Und die schicken Flaschenöffner von Splendid Internet natürlich auch.) Die Sessions waren wieder einmal sehr spannend – auch wenn sie ja bei einer unConference eigentlich gar nicht im Mittelpunkt stehen sollen. Aber in den Kaffeepausen haben wir auch sehr viele interessante Dinge gelernt und mit den anderen Teilnehmern zwei Tage lang erlebt, was Community bedeutet: gemeinsam mit Spaß an der Sache sein. Wir kommen im nächsten Jahr auf jeden Fall wieder zur MageUnconference und sind schon gespannt, welche Location für 2019 ausgesucht wird.