In Entwicklerkreisen hört man von vielen Personen, dass die Arbeit mit Magento 2 anspruchsvoll ist. Auch für mich als langjährigen Magento-1-Entwickler war die Umstellung auf Magento 2 nicht einfach. Mit den verschiedenen, zur Verfügung stehenden Ressourcen kann man sich diesen Lernprozess erleichtern.
In wenigen Wochen haben es zwei meiner Teamkollegen und ich geschafft, Magento-2-Entwickler zu werden. Wie uns das gelungen ist, beschreibt dieser Artikel. Erst Ende Oktober habe ich mit der Entwicklung des ersten Magento-2-Projektes begonnen und habe bereits Mitte Dezember eine Entwicklerschulung zu Magento 2 gehalten.
Magento-1-Erfahrung
Auch wenn Magento 2 teilweise völlig andere Entwicklungsmethoden aufweist, ist viel Erfahrung mit Magento 1 sehr hilfreich beim Erlernen von Magento 2. Dazu gehört das Wissen, welche Funktionalität sich in welchem Core-Modul befindet, und wie die Datenbank aufgebaut ist. Auch Konzepte wie Collections, Layout-XMLs oder MVC sind Magento-1-Entwicklern so oder so ähnlich bekannt. Wer sich in Magento 1 gut auskennt, findet sich in Magento 2 schneller zurecht. Allerdings habe ich auch schon von anderen gehört, dass das Erlernen von Magento 2 „frischen“ PHP-Entwicklern teilweise leichter fällt als erfahrenen Magento-1-Entwicklern. Unabdingbare Voraussetzung ist aber, neue Konzepte zu akzeptieren und sich auf manch ungewöhnliche Vorgehensweise in Magento 2 einzulassen.
Lesen, Lesen, Lesen
Seit die ersten Beiträge zu Magento 2 publik wurden, haben meine Kollegen und ich diese verfolgt. So konnten wir bereits im Vorfeld einen guten Überblick darüber erhalten, welche Konzepte in Magento 2 enthalten sind. Außerdem erhält man darüber viel Wissen, welche Technologien bereits ausgereift sind oder wo es noch hakt, worauf man achten und worauf eher verzichten sollte. Durch Lesen von Blogbeiträgen und Kurzmeldungen (z.B. per Twitter unter dem Hashtag #magento2) lässt sich bereits viel theoretisches Wissen anhäufen.
Hackathon
Die Initialzündung war für mich die Teilnahme am Magento-2-Hackathon in Zürich im Oktober 2015, kurz vor der Veröffentlichung von Magento 2. Ich habe mich dort mit zwei anderen erfahrenen Magento-1-Entwicklern, die ich vorher noch nicht kannte, zusammen getan, um die ersten Schritte in Magento 2 zu machen.
Last 1.5h: created module, used Dependency Injection, Interception, setup scripts and i18n in #magento 2. Very effective group programming.
— Andreas von Studnitz (@avstudnitz) 24. Oktober 2015
Diese ersten Hands-On-Erfahrungen waren für meine weitere Motivation essentiell – für mich war es die positive Erkenntnis, dass der Einstieg in Magento 2 nicht so komplex ist, wie ich vorher befürchtet hatte. Ich bin mir sicher, dass es auch aktuell ausreichend Magento-2-Einsteiger gibt, um entsprechende Gruppen auf Hackathons zu bilden. Meine Erfahrungen habe ich in einem separaten Blogpost beschrieben: Einstieg in Magento 2 – Erfahrungen eines Magento-1-Entwicklers. Bei weiteren Hackathons habe ich meine Arbeit mit Magento 2 vertieft – mit Abstand am Wichtigsten war aus meiner Sicht allerdings dieser erste Magento-2-Hackathon.
MageUnconference
Ein weiteres Event war wichtig für meinen Schnellstart in die Magento-2-Entwicklung: Die MageUnconference im März 2016. Besonders hervorzuhaben ist hier die Session von Peter Jaap Blaakmeer, der einen Einstieg in Magento-2-Entwicklung vorgestellt hat.
Prefer event observers over before/after interceptors over around interceptors over DI class replacements in #magento2. @PeterJaap #mageuc16 — Andreas von Studnitz (@avstudnitz) 12. März 2016
Dieser Beitrag von Peter Jaap war auch Teil eines Schulungsprogramms – insofern würde ich den Besuch einer Schulung als gleichwertig ansehen. Auch auf anderen Konferenzen gab es bereits geeignete Vorträge, die in die Magento-2-Entwicklung einführten. Wichtig war für mich, bereits vor dem eigentlichen Einstieg in die Entwicklung einen guten Überblick zu bekommen. Dadurch fühlte ich mich schon vor der ersten Zeile Code gut vorbereitet.
Das Projekt
Essentiell für das Erlernen von Magento 2 ist natürlich die (Mit-)Arbeit an einem echten Magento-2-Projekt. Nur dadurch kann meiner Meinung nach die unbedingt notwendige Entwicklungserfahrung erworben werden. Mit den oben beschriebenen Grundlagen war der Einstieg erfreulicherweise relativ schnell und schmerzlos. Innerhalb weniger Wochen fühlte ich mich sicher genug, mein erworbenes Wissen selbst in Form einer Schulung weiter zu geben.
Der Debugger
Während bei Magento 1 die Entwicklung ohne einen Debugger wie XDebug noch relativ problemlos möglich ist (ich kenne zumindest mehrere Entwickler, die noch nie einen Debugger genutzt haben), halte ich das bei Magento 2 für problematisch, hauptsächlich wegen der gestiegenen Komplexität. Die Ausführungspfade sind länger und komplizierter geworden, und gerade beim Einarbeiten in die neuen Technologien hilft ein Debugger sehr. Meinen persönlichen Aha-Moment hatte ich während des Hackathons in Paderborn, wo ich versuchte, herauszufinden, wie die Dependency Injection funktioniert. Erst der Debugger hat mich zu automatisch generierten Klassen und zum Einsatz von Reflection geführt, wodurch mir die Prinzipien letztlich klar geworden sind.

Autor: Andreas von Studnitz
Andreas von Studnitz ist Diplom-Informatiker, Magento-Entwickler und Geschäftsführer von integer_net. Seine Schwerpunkte sind Entwicklung, Beratung und die Durchführung von Schulungen. Er ist Magento 2 Certified Professional Developer Plus und hat darüber hinaus weitere Magento Zertifizierungen für Magento 1 und Magento 2. Sowohl im Jahr 2019 als auch 2020 wurde Andreas als Magento Master in der Kategorie „Mentor“ ausgezeichnet.