Racing Manager ist nun Open Source
Ich habe die Auszeit diese Woche genutzt und meinen alten Source Code vom Racing Manager ausgemistet und veröffentlicht. Bei Interesse kann nun jeder meinen Code studieren und seine eigene Instanz aufsetzen.
Racing Manager ist nun Open Source
Aufgrund der Anfrage eines Lesers habe ich die letzten Tage genutzt um mir einen virtuellen LAMP Server aufzusetzen und den Code meines Racing Manager Spiels zu reviewen, zu testen und so weit wie möglich auszumisten. Nach fast 4 Jahren war es gar nicht so einfach wieder rein zu kommen. Das Ergebnis findest du auf meiner GitHub Seite.
Schwierigkeiten
Ich habe den Code 4 Jahre lang nicht gesehen, deshalb wusste ich kaum noch wie das Programm läuft. Außerdem habe ich ganz vergessen welche Anforderungen man benötigt um die fertige Applikation zu hosten, deshalb war der erste Schritt das Setup einer Testumgebung. Dafür habe ich mir einen LAMP Server mit aktueller Software (Debian 10 und PHP 7.3) nach der Anleitung von technology-blog erstellt. Daran setzt man schon einige Stunden.
Legacy Code
Auf dem erstellten Server habe ich den Code und eine leere Datenbank kopiert und zuerst einmal ging gar nichts. Die spannende Aufgabe ist herauszufinden, welche Abhängigkeiten (welche PHP Module) gebraucht werden und diese nachträglich zu installieren. Als nächstes mussten Fehler beseitigt werden, da es keine „korrekte“ leere Datenbank für die Erweiterungen im Code der letzten Jahre gab. Wieder einige Stunden arbeit und zu letzt war nach ein großer Brocken alles was man nicht unmittelbar für die App braucht auszumisten. Auf einem Webserver lagern sich in einigen Jahren ganz schön viele Daten in Ordner und Unterordnern an.
Archivierung
Obwohl der Code lediglich 4 Jahre alt ist, gibt es für viele Bibliotheken schon so neue Versionen, dass diese nicht mehr kompatibel sind. Das heißt: will man diese updaten, dann entsteht großer Aufwand für Codeänderungen. Zum Glück war und ist der PHP Code schon 7.3 kompatibel, weshalb große Änderungen ausgeblieben sind. Die letzten Tage habe ich aber gelernt wie wichtig die Archivierung von Code und Infrastruktur ist, nachdem man ein Projekt abgeschlossen hat. Ich habe nun eine virtuelle Maschine auf der mein Code läuft, die kann ich wenn ich will auch jederzeit in der Cloud hosten. Zusätzlich habe ich den Code soweit angepasst, damit er mit den aktuellen Bibliotheken auch auf einem üblichen Webhoster läuft…zumindest in den aktuellen Versionen Stand April 2020.
Fazit
Den Racing Manager zu archivieren und für die Öffentlichkeit als Open Source Projekt verfügbar zu machen war ein Aufwand von mehreren Arbeitstagen. Ich hoffe der eine oder andere von euch hat dadurch einen Nutzen und kann etwas mit dem Code anfangen. Aus heutiger Sicht muss ich sagen: ich könnte den PHP Code viel schöner schreiben, aber wie das bei so Legacy Code Projekten ist…nachher ist man immer schlauer und besser. Wenn jemand das Projekt besser umsetzen kann….bitte! Alles Notwendige an Information ist nun verfügbar.