Heinrich Schiller  11.10.2018 18:38

Release, heinerCMS Version 0.8.1

Es hat (viel) länger gedauert als zunächst beabsichtigt, aber nun ist eine neue Version meiner CMS-Software erschienen. Wegen täglichen Umständen dauert die Entwicklung momentan halt eben länger. Umso mehr freut es mich das es wieder soweit ist, denn diese Version ist etwas "besonderes". Zunächst sei gesagt, dass die Entwicklung nur in meiner Freizeit stattfindet. Da die Software noch eher einen Alpha-Stand besitzt, ist der Entwicklungszyklus eigentlich sehr schnell. Releases erscheinen in der Regel einmal die Woche, manchmal auch in 2 Wochen. Das ist das erste Mal das es jetzt zwei Monate gedauert hat. Jedoch ist es keinesfalls ausgeschlossen das es nicht wieder passieren kann.

Wenn die Releases so schnell erscheinen, ist die Anzahl der neuen Features zum Zeitpunkt des neuen Release natürlich begrenzt. Auch kann es Releases geben die erst einmal gar keine neuen Features bringen. Mal werden die externen Bibliotheken erneuert, mal wird am Untergrund geschraubt und so weiter. Aber es passiert immer etwas und ich versuche lieber ein Feature zum Release fertig zu machen, statt vieles Anfangen und zum Ende eines Release-Zeitpunkts nichts zu haben. Genau das habe ich mit der jetzigen Version nicht gemacht, weshalb sich alles so verzögert hatte.

Da ich die Software allein schreibe und der Code mit der Zeit wächst, entstand bei mir der Wunsch die Software intern zu säubern und zu so verbessern. Ich habe heinerCMS ursprünglich aus einem anderem Projekt geforkt und wollte mit ihr lediglich der Frage nachgehen, ob es schwierig wäre die prozedural entwickelte Software in eine Objekt Orientierte Software umzuwandeln. Letztendlich habe ich dieses Thema verschoben, die Software wird prozedural bleiben. Vieles aus der ursprünglichen Software ist lediglich per Copy & Paste entwickelt und etwas abgeändert. Selbst die Datenbank-Tabellen.

Für die Version 0.8.0 habe ich mir vorgenommen die Datenbank Struktur zu ändern und nur diese. Das Problem bei altem Layout war, das die Tabellen sich bis auf wenige Eigenschaften sehr ähnelten. Wollte ich ein neues Feature, wie die neue Mainpage, musste eventuell eine neue Tabelle her. Die Papierkorbfunktion und das Dashboard waren sehr kompliziert gelöst, weil es über alle (gleichen) Tabellen abgefragt werden mussten. Und so wuchs neben dem Code auch die Datenbank selbst. Alles in allem, vielleicht alles vermeidbare Probleme.

Die fast gleichen Tabellen und ihre Merkmale habe ich in einer neuen Tabelle zusammen gefasst und um ein paar zusätzliche Spalten ergänzt. Da ich eben Content produziere, werden die Einträge über den "content_type" identifiziert. So habe ich jetzt Artikel, Downloads, Links, Pages und Mainpage als Typen. Möchte ich eine neue Funktion wie News, Upload oder Foto-Galerie implementieren, regle ich das über den "content_type" und muss keine extra Tabelle anlegen. Für zusätzliche Optionen gibt es noch das "flag". Hier kann ich zum Beispiel einen Artikel späterem löschen markieren, oder dafür sorgen das der Artikel besonders hervorgehoben wird. Zum Beispiel auf der Mainpage.

Ich weiß nicht warum, aber ich fand das es allein für ein Release zu wenig war. Außerdem wollte ich die neue Struktur gleich sofort ausprobieren und so habe ich den Papierkorb wieder aufgemacht. Also schonmal 2 Features, obwohl ich wusste das schon der Umbau groß sein dürfte. Allein den Umbau habe ich in 2 Wochen nicht bewältigt, da ich privat schon eingespannt war. Neben dem Umbau haben auch neue Features ihre Zeit in Anspruch genommen und letztendlich wäre alles schneller, wenn ich meinen alten Prinzipien treu geblieben wäre und lieber ein "fertiges" Feature ablieferte, als viele Features aber den Release Zyklus zu verlängern.

Man lernt halt nie aus :)

Nichts desto Trotz bin ich froh das Release endlich gemacht zu haben. Das alte funktioniert nach wie vor, alte deaktivierte Funktionen kehren langsam zurück und neue Funktionen sollten sich jetzt einfacher realisieren lassen. Bisher habe ich mehr in meinem Wordpress-Blog geschrieben, jetzt möchte ich mehr mein CMS nutzen. Einfach um die Software weiter auszubauen und an mich anzupassen. Für Release 0.9.0 plane ich jetzt ein Backup-Funktion für die SQLite-Datenbank. Einfach weil hier auf dem Webspace, heinerCMS mit SQLite läuft.

 Hoffentlich dauert das nächste Release nicht so lange.