Effizienter programmieren mit Hyva_Admin

15.03.2021
extendedLogo

Schnelleres, effizienteres Programmieren und dadurch mehr Zeit für die Suche nach Lösungen für spannende und anspruchsvolle Probleme im E-Commerce? Vermutlich der Traum eines jeden (Magento)Entwicklers.

Doch ist das so einfach möglich? Am 12. Februar wurde im Rahmen einer Relase-Party der öffentliche Startschuss für die kommerziell verfügbare Version von Hyvä Themes vorgestellt. Mit von der Partie/Party war als Referent auch Vinai Kopp, langjähriger Magento-Developer und Entwickler von Hyva_Admin, der mit seinem neuen Ansatz im Magento-Backend den Traum für alle realisierbarer gemacht hat.

Bitte stelle dich kurz vor

Mein Name ist Vinai Kopp, ich wohne bei Heidelberg im Neckartal und bin seit 1998 freier Entwickler.

Mit Magento habe ich gefühlt schon ewig zu tun – ich glaube seit 2008, denn so Anfang 2009 ist dann mein erster Shop live gegangen. Zwischendurch, von 2011 bis 2014, war ich sogar bei Magento angestellt und habe für die Trainings- und Zertifizierungsabteilung gearbeitet. Ich war dort Teil eines Teams und im Organigramm unter den Leuten in Kalifornien eingegliedert, aber der einzige Mitarbeiter in Deutschland. Das war allerdings zu einer Zeit als Adobe noch nicht bei Magento eingestiegen war und das Konstrukt funktionierte nur, weil Ebay damals ein Office in Berlin hatte. Eigentlich war das, was ich in der Zeit bei Magento machte “business as usual”, aber ich habe mich nur schwer in die dort üblichen Unternehmensprozesse einfinden können, daher habe ich mich schlussendlich entschieden, doch wieder Freelancer zu werden.

Als Freelancer unterstütze ich Agenturen bei Projekten und viele kleinere Händler mit Teams zwischen 2 - 10 Personen. Für eine gewisse Zeit, teilweise Monate, manchmal aber auch Jahre, unterstütze ich sie bei der Entwicklung von Onlineshop bis zur deren Migration. Und ich schule die Mitarbeiter, bis ich mich überflüssig gemacht habe :-). Trainings gebe ich übrigens auch noch weiterhin für Adobe/Magento, nur jetzt als Contract Trainer.

Es war tatsächlich nie geplant, dass ich so lange Magento mache, aber es hat sich halt so ergeben und war auch immer okay. Und gerade jetzt mit Hyvä ist es natürlich wieder superspannend und man spürt den frischen Wind, was ein Stück daran anknüpft, wie es früher einmal war.

Warum hast Du Hyva_Admin entwickelt?

Mit Einführung von Magento 2 habe ich mich von der Frontend-Programmierung ein wenig abgewendet. Das hat mir alles irgendwie keinen Spaß mehr gemacht. Und anstatt eine neue Lösung auszuprobieren, habe ich mich notfalls einfach mit dem bestehenden Angebot durchgebissen.

Und dann habe ich auf der Reacticon gesehen, was Willem (Anm. Willem Wigman, Entwickler von hyvä themes, siehe auch dieser Blogbeitrag) mit Hyvä entwickelt hat – der ja auch aus Frust über das “unpraktische” Magento 2-Frontend überhaupt erst den Schritt zur Eigenentwicklung gemacht hat.

Ich hab dann Willem angeschrieben und ihm gesagt, wie toll und inspirierend ich seinen Vortrag fand – und hab meine Begeisterung auch auf Twitter geteilt. Kurze Zeit später haben wir dann miteinander gesprochen und das Ganze hat mich dazu inspiriert, mich gezielt um den Admin-Bereich zu kümmern und einen Prototyp zu entwickeln.

Die Grids, mit denen ich mich dann beschäftigt habe, wollte ich im Übrigen schon seit Magento 1 bauen – und mit Magento 2 dann noch viel mehr –, aber ich hatte immer das Gefühl, dass das zu groß, zu viel für mich ist. Und habe immer wieder gedacht: “Ich kann das alleine nicht, soll Magento das doch machen”. Aber das Gespräch mit Willem hat mir schließlich einen Schubs gegeben und ich habe kurzerhand angefangen.

Natürlich für den Bereich, in dem ich mich mehr zu Hause fühle, also dem Admin-Bereich. Das übrigens auch aus dem Wunsch heraus, wieder mehr in der Frontend-Entwicklung zu machen. Ich baue darauf, dass dieser Bereich auch wieder mehr Spaß machen und insgesamt besser wird, muss aber gestehen, dass ich selbst auch erst einmal wieder richtig reinkommen musste.

Hyvä-Grid eines DemoshopsHyvä-Grid eines Demoshops | Quelle: Vinai Kopp

Was ist das Besondere an Hyva_Admin?

Seit Magento 2 arbeite ich fast ausschließlich im Backend, in Bereichen, die weder für Kunden noch für Administratoren sichtbar sind, aber für Administratoren doch eine gewisse Sichtbarkeit brauchen. Deswegen war für mich klar, dass, wenn ich etwas baue, das eher was für Admins sollte.

Funktionierende Benutzeroberflächen zu bauen ist immer wieder ein bisschen “dasselbe in grün”. Immer wieder braucht man Liste von Dingen, die man filtert, aussucht, sortiert, exportiert, importiert und und und. Oder man hat Formulare, bei denen irgendetwas konfiguriert, oder angelegt, oder kontrolliert wird. Diese Dinge zu bauen, ist bisher immer ein wenig umständlich gewesen und bei Magento 2 auch immer ein wenig “over the top”. Ich mag einfach vieles nicht, was dort gebaut wurde, denn es ist zwar flexibel, aber für mich auch schwer zu erlernen. Vielleicht auch deshalb, weil ich einfach bei vielen Dingen den Sinn dahinter nicht verstehe und es zudem nur eine sehr mangelhafte Dokumentation dafür gibt. So sehr ich mich auch bemüht habe, ich bin einfach damit nicht warm geworden und Standards zu erledigen, ist immer lästiger geworden.

Deswegen wollte ich etwas entwickeln, mit dem ich diese Arbeiten erledigen kann, denn 80 % meiner Zeit baue ich immer wieder ähnliche Dinge in der Benutzeroberfläche. Warum sollten diese Dinge also immer wieder umständlich neu gebaut werden? Warum nicht das Ganze so einfach wie möglich machen, sodass es schnell, aber auch gleichzeitig gut geht? Ich möchte ja keine schlechte Arbeit abliefern, sondern etwas Gutes, das mir gleichzeitig auch Spaß macht. Und das dafür sorgt, dass ich mich auf Sachen konzentrieren kann, die ich spannender finde als “Grundarbeiten”, nämlich Probleme lösen.

Die Idee hinter Hyva_Admin ist daher, große Mengen Code auf ein Minimum zu reduzieren. Also im Zweifelsfall vielleicht 2-3 Zeilen Code anstelle von 500 Zeilen. Und das Programmieren läuft dabei fast wie von selbst, denn ich als Nutzer sehe genau, was möglich ist und mache keinerlei Tippfehler, denn alles wird mir vorgeschlagen. Ausgangspunkt sollte sein, dass man mit einem fast leeren Blatt anfängt – nur mit Inhalten, die mich bei meiner Arbeit unterstützen – und ich von da aus alles ganz schnell und einfach runterschreiben kann. Es geht also ganz klar um Effizienz: Ich bin als Programmierer schneller und auch das Ergebnis meiner Arbeit ist schneller.

Beispiel-Code bei Hyva_AdminBeispiel-Code bei Hyva_Admin | Quelle: Vinai Kopp

Gibt es noch “Baustellen”?

Eine Haupt-Baustelle, wenn man das so nennen kann, ist die Entwicklung von Formularen. Automatische Formularerstellung bei vorhandenen Repositories und Datenmodellen bzw. ORM- und Ressourcenmodelle stehen dabei ganz weit oben auf meiner To-do-Liste. Vermutlich werden sich im Laufe der nächsten Wochen noch ein paar weitere auftun, aber eigentlich ist mein Plan, dass ich in wenigen Monaten meine kontinuierliche Arbeit an Hyva_Admin als abgeschlossen ansehe.

Was sind Deine Pläne hinsichtlich Hyva_Admin?

Ich bin der festen Überzeugung, dass jeder lieber interessante Arbeiten verrichtet, als lästige Aufgaben bearbeitet. Grids zu bauen ist für mich persönlich tatsächlich eher lästig, obwohl es sicherlich Entwickler gibt, die das super finden. Meins ist es nicht, daher werde ich auch immer weiter versuchen, andere Lösungen für Standard-Aufgaben zu finden.

Mit diesem Ansatz möchte ich auch gerne den “Nachwuchs” unterstützen und zeigen, dass man Routine-Aufgaben schnell erledigen und sich dann durch spannendere Themen ganz neue Interessensbereiche erschließen kann.

Deswegen habe ich versucht, jeden meiner Schritte nachvollziehbar zu kommentieren und dokumentieren, damit Entwickler schnell mit Hyvä Amin zurechtkommen. Auf dem Plan stehen aber noch Videos, um diesen Ansatz zusätzlich zu unterstützen, denn einige lernen einfach lieber und daher auch besser, wenn sie die Inhalte per Video konsumieren können. Mein Ziel wäre, dass Jeder nach einer Stunde Dokumentation lesen bzw. Video schauen, alles weiß, was er wissen muss, um Standard-Anwendungen umgehend mit Hyva_Admin umzusetzen.

Hyvä Admin Logo

Übrigens ist Hyva_Admin komplett unabhängig von Hyvä (Frontend) themes – weder gibt es eine technische noch eine Lizenz-technische Abhängigkeit. Das bedeutet natürlich gleichzeitig, dass Hyva_Admin auch für Magento 2-Shops eingesetzt werden kann, die ein anderes Frontend einsetzen. Und Hyva_Admin ist Open Source und frei verfügbar auf GitHub und damit steht auch der Weiterentwicklung durch die Community nichts mehr im Weg.

Und hier setzt direkt noch ein weiterer Plan bzw. Wunsch an: Ich möchte, dass die Community selbständiger wird. Dahingehend, dass sie sich zutraut, Änderungen einfach selbst in Angriff zu nehmen und nicht zu warten bis Adobe die Ideen und Vorschläge vielleicht umsetzt. Dieses Mindset war bei Magento 1 damals sehr viel stärker vertreten, sicherlich auch aufgrund der Notwendigkeit, da das Unternehmen viel kleiner war. Ich glaube jedoch, dass eine stärkere, selbstbewusstere Community nicht nur der Firma, sondern auch Magento als gesamtes Ökosystem sehr guttun würde und es damit stark, robust, vielfältig und nachhaltig werden würde.

Noch eine letzte Frage: Warum ein “Pu, der Bär”-Zitat bei Hyva_Admin?

Es gibt eine Tradition im Umfeld von Clojure Programmen, kleine Zitate zu veröffentlichen. Ich finde die Idee sehr schön und freu mich immer darüber, diese zu lesen, deswegen habe ich ebenfalls damit angefangen. Die Zitate sind üblicherweise viel kürzer, dieses ist nun ein besonders langes, denn Winnie-the-Pooh nimmt von frühester Kindheit einen besonderen Platz bei mir ein. Und ich fand dieses Zitat mit seiner Geschichte über ein neues Haus, für Hyva_Admin sehr passend.


Veröffentlicht am 15.03.2021 | NM