Isotope-Nachrichten

Die Zukunft von Isotope, Teil 1

Mit einer kleinen Blog-Serie wollen wir einen ersten Einblick in die Zukunft von Isotope für Contao 5 geben.

Ende November wurde das Minimal-Ziel des Fundraisings erreicht, seither arbeiten wir an Ideen, Konzepten und natürlich auch am Code. Aktuell findet das noch privat statt, die neue Version wird aber genauso Open Source und unter derselben Lizenz sein wie bisher.

Things You Should Never Do

Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand.

So geht es uns Entwickler:innen. Software ist chaotisch, schon nach kurzer Zeit würde man alles anders machen. Hätte man die Zeit und könnte nochmals von vorne beginnen, wär alles schön und bunt. Dabei vergessen wir aber einen wichtigen Punkt:

The idea that new code is better than old is patently absurd. Old code has been used. It has been tested. Lots of bugs have been found, and they’ve been fixed. There’s nothing wrong with it.

Diese Aussagen stammt von einem 25-jährigen Blog-Post von Joel Spolsky, unter anderem Miterfinder von Stack Overflow.

Things We Will Not Do

Beim Fundraising wurde folgendes festgehalten:

Wir erfinden nicht alles neu, es wird kein Migrationstool oder ähnliches benötigt. Schnittstellen werden sich ändern, sodass Erweiterungen angepasst werden müssen. Auch Templates werden an Contao 5 angepasst.

Die Backend-Datenstruktur von Isotope hat sich bewährt. Die Produkte, Produktsammlungen, Zahlungs- und Versandmethoden, Dokumente oder Galerien machen auch heute noch genauso viel Sinn wie vor 15 Jahren. Auch die Weiterentwicklung von Contao ergibt hier keine signifikanten Änderungen. Bei der Integration mit Drittsystemen ist oft herausfordernd, dass Isotope zu flexibel ist, aber davon wollen wir natürlich nicht weg.

Things We Must Do

Isotope ist bisher eine Erweiterung im Stil von Contao 3, welche damals über die Erweiterungs­verwaltung und nicht mit Composer installiert wurde. Natürlich muss die neue Version ein Contao Bundle sein. Wir brauchen Dependency Injection auf allen Ebenen und echte Services. Wir brauchen neue Wege für Dinge, welche mit Haste 4 gestorben sind. Und Tests, zumindest für die wichtigsten Sachen, wären auch nicht verkehrt.

Bei der Backend-Datenstruktur dreht sich in Isotope 2 alles um TypeAgents, ein bisschen ähnliches wie Single Table Inheritance, was es bei Contao so vermutlich nur in Isotope gibt. Die Idee war gut, ist aber leider inkompatibel mit Dependency Injection. Aber der Code, welcher in diesen TypeAgents lebt, ist bewährt und soll mehrheitlich bleiben (siehe oben). Eine Alternative dafür ist auf dem Weg, mehr dazu dann in Teil 2.

Things That Didn't Age Well

Und dann gibt es noch die Dinge, die in die Tonne gehören. Die Such- und Filterfunktion der Produktlisten führt unter Umständen zu Millionen von Datenbank-Einträgen. Der Bestellprozess ist starr und lässt sich kaum bis gar nicht an eigene Bedürfnisse anpassen. Auch mit den Regeln bin ich unglücklich, da sie potentiell einen ziemlichen Einfluss auf die Performance haben.

Für diese Dinge werden wir neuen Lösungen finden, damit wurde im März begonnen. 30'000€ reichen für mindestens 30 Tage, bei einem Tag pro Woche wären das mindestens 7 Monate. Und wir möchten ja mehr als das Minimum tun, es braucht also noch etwas Geduld. Aktuell können wir noch kein verlässliches Release-Datum benennen.

Über Andreas Schempp

Andreas hat zu Zeiten von Ötzi Isotope eCommerce weiterentwickelt und schliesslich die Rolle des Hauptentwicklers übernommen. Sein Fokus liegt auf Code-Zeilen weshalb du wenig von ihm lesen wirst. Beruflich muss er sich mit Yanick bei terminal42 herumschlagen.

Einen Kommentar schreiben

Was ist die Summe aus 4 und 9?