Neue Architektur und Konzepte zu GX v4.5

25. August 2021

Das Release der kommenden Feature-Version GX 4.5 steht demnächst an und aus diesem Anlass möchten wir euch einige Veränderungen hinsichtlich der Software-Architektur und neue Konzepte für die zukünftige Shop-Entwicklung aufzeigen bzw. vorstellen.

Das Warum

Zunächst jedoch ein paar Worte zu dem Warum, um das Ganze etwas greifbarer zu machen (auch für die Nicht-Entwickler ;-)). Wie einige vielleicht wissen, basiert die Gambio Shopsoftware auf einen Fork einer recht alten Version von xt:Commerce. Es ist also so, dass sich unsere Shopsoftware von der Open-Source-Software xt:Commerce abgespalten hat und ihren eigenen Weg gegangen ist.

Dieser Ursprung ist der Grund dafür, warum auch jetzt noch einige Teile unserer Software auf den alten Quellcode von xt:Commerce basieren, welche mit den vielen Jahren eben nicht sehr gut gealtert sind. In der Software-Entwicklung ist es kein ungewöhnliches Leid und wir haben über die Jahre schon häufiger Teile der Basis verbessert. Nun haben wir uns vor knapp einem Jahr dazu entschlossen, einen kompletten Umbruch zu starten und uns komplett von dieser alten Basis zu trennen. Hierbei handelt es sich durchaus um eine anspruchsvolle Zielsetzung, für die wir einige Zeit benötigen werden, jedoch sind die damit verbundenen Vorteile enorm wichtig für die zukünftige Entwicklung der Shopsoftware.

Die Vision

Doch kommen wir von dem Warum nun zu der Vision einer neuen Softwarearchitektur und den neuen Konzepten für die Entwicklung innerhalb der Shopsoftware. Die Basis einer guten Software ist ein Fundament, bestehend aus Konzepten und Regeln, die beschreiben, wie die Software grundsätzlich aufgebaut und weiterentwickelt werden kann. Diese Basis ist vergleichbar mit dem Grundriss eines Gebäudes, das von einem Architekten angefertigt wird. Denn so wie man dem Grundriss eines Gebäudes entnehmen kann, wo welche Leitungen, Fenster, Türen, etc. verlegt werden müssen, so kann man einer Softwarearchitektur entnehmen, wie einzelne Bestandteile zusammenarbeiten und wie man diese Software pflegen und erweitern kann.

Wir haben vor knapp über einem Jahr damit begonnen, eine neue Basis für die Shopsoftware zu entwickeln, wobei wir uns zunächst auf den Gambio Admin beschränkt hatten. Resultate daraus sind z. B. die neuen Adminseiten für die Konfigurationen, Paketdienstleister oder das Dashboard. Alle diese Bereiche arbeiten bereits mit einer neuen Basis, die auch externen Modul-Entwicklern bereits zur Verfügung steht. Wir gehen hierzu in einem neuen Abschnitt (GX4 Tutorials) in der Entwicklerdokumentation genauer ein. Nichtsdestotrotz möchten wir hier ein paar dieser Konzepte grundlegend vorstellen.

Ein allgemeines Framework

In der Entwicklerdokumentation prägen wir den Begriff Application Core, welcher mehr oder minder die Basis für die gesamte Neuentwicklung ist. Über den sogenannten Application Core wird definiert, über welche Seiten (bzw. aufrufbare URLs), Module, Komponenten und Schnittstellen die Shopsoftware verfügt. Diese können sich dabei von Version zu Version oder durch die Installation von Modulen (z.B. über den Gambio Store) verändern, was also bedeutet, dass neue Adminseiten, Komponenten, Schnittstellen hinzukommen. Das Ganze lässt sich mit einem Framework vergleichen, wobei natürlich auch bereits die alten bzw. zuvor bestehenden Schnittstellen und Komponenten als solches bezeichnet werden konnten.

Hierdurch soll es zukünftig einfacher werden, Basis- bzw. Kern-Komponenten wie Caches oder Logging für die Modulentwicklung zu verwenden. Auch der Zugriff auf die Geschäftslogiken und Daten der Shopsoftware sollen einfacher werden. So entwickeln wir Schritt für Schritt neue (meist einheitliche) Schnittstellen, um an diese Informationen zu gelangen oder Geschäftsprozesse anzustoßen, wie zum Beispiel das Anlegen einer Bestellung.

Event-basiertes Reagieren auf Geschäftsprozesse

Im alten System bzw. der alten Architektur war es üblich, bestehende Funktionalitäten durch sogenannte Overloads komplett oder teilweise zu überladen. Dies wurde dann genutzt, um die Ausführung von Geschäftsprozessen maßgeblich und sehr direkt zu beeinflussen.

Dies ist grundsätzlich eine sehr gewagte Form der Erweiterbarkeit, da bei Fehlern in Modulen nicht mehr die fehlerfreie Ausführung unserer eigenen Funktionen gewährleistet werden kann. Ein fehlerhaftes Modul kann schnell die komplette Shopsoftware negativ beeinträchtigen.

Um diesem Fall vorzubeugen, haben wir uns entschlossen, hier auf ein event-basiertes System zurückzugreifen. Dies bedeutet, dass bestimmte Geschäftsprozesse sogenannte Events auslösen, auf die dann Module (sowohl von Gambio als auch von Dritt-Entwicklern) reagieren können. Das erlaubt dann Modulen eigene Geschäftslogiken auszuführen.

Neue Frontend-Technologien

Auch hinsichtlich der Frontend-Technologien wie HTML, CSS und JavaScript haben wir uns für einige Änderungen entschieden. So haben wir für neue Adminseiten ein neues Layout angelegt, dass das alte Design der Adminseiten imitiert. Die zugrundeliegenden Styles und Skripte sind jedoch neu und wir verfolgen das Ziel zukünftig mehr auf ein aktuelles Bootstrap, natives JavaScript über TypeScript und auf Vue.js zu setzen. Jedoch wollen wir hierzu derzeit noch nicht zu weit ins Detail gehen.

Ausblick

Wir hoffen, dass euch dieser kleine Einblick in die aktuelle Shopentwicklung gefallen hat und schauen auch mit großer Freude auf die zukünftigen Fortschritte, die wir bei der Überarbeitung der Shopsoftware machen werden. Es sollte jedoch auch für euch verständlich sein, dass es sich hierbei um ein recht aufwändiges und zeitlich anhaltendes Projekt handelt, das uns alle noch einige Zeit begleiten wird.


Um in Sachen Gambio und E-Commerce auf dem Laufenden zu bleiben, folgt uns bei Instagram

Selbstverständlich findet ihr uns auch bei Facebook

Mit Gambio ganz einfach noch heute den eigenen Onlineshop erstellen

Kostenlos testen