Mein aktuelles Side-Project
Seit dem Sommer bin ich dabei, mir mein eigenes Blog-System zu programmieren. Ich programmiere es in einer Programmiersprache, die ich bisher nur für private Projekte verwendet habe, aber die für den Anwendungsfall perfekt ist. Sie ist einfach, es gibt viele Bibliotheken, die mir helfen die Funktionen, die ich bauen will, einfacher umzusetzen und sie ist schnell. Ich mag einfache und übersichtliche Dinge, die nur das machen, was sie auch machen sollen und das gut.
Seit zwei, drei Monaten, mal jeden Tag, mal nur alle paar Tage, manchmal nur eine halbe Stunde, manchmal auch den halben Tag, werkel ich nun also an diesem System. Am Anfang habe ich zwischen den Zuständen geschwankt zu denken, dass das ja recht einfach sein sollte und ich das Projekt bestimmt bald fertig habe – und ob ich das Projekt wohl abbrechen werde? Mittlerweile, ich meine mich dem Ziel zu nähern, denke ich kein bisschen mehr daran aufzugeben, sondern eher daran, welche Funktion ich noch einbauen werde, bevor ich es auch wirklich produktiv nutzen werden und es mein momentanes, eher komplexes System ersetzen kann. Unterstützung für ActivityPub und Webmentions direkt integrieren oder erstmal weiterhin als extra Dienste?
Und ganz wichtig dabei ist mir auch die Qualität. Ich bin mir durchaus bewusst, dass der Code den ich schreibe, bestimmt gegen die ein oder andere Konvention verstößt (wobei das bei dieser Programmiersprache eher nicht so eng ist, es gibt viele verschiedene Möglichkeiten etwas umzusetzen), aber dennoch achte ich darauf, dass er so effizient wie möglich arbeitet. Ich habe mehrere Implementierungen durchprobiert und mir wahrscheinlich etliche Stunden den Kopf darüber zerbrochen, wie ich das Caching effizienter gestalten kann, damit die Datenbank so selten wie möglich angesprochen wird und auch eine Seite nur so oft wie möglich generiert werden muss. Bis ich nun bei einer ziemlich performanten und ich glaube auch recht passablen Lösung angekommen bin. Und der Code dafür ist sogar recht kurz.
Was ich aber auch feststelle ist, dass mich dieses Projekt momentan ziemlich in den Bann zieht. Manchmal bin ich abgelenkt und denke an mein Projekt statt die Sache, an die ich eigentlich gerade denken sollte. Nach der Arbeit, bei der ich 8 Stunden vorm Rechner sitze und viel Zeit mit Programmieren verbringe, setze ich mich noch weitere Stunden an meine Software und entwickel weiter. Ich kann es kaum abwarten das Programm endlich fertigzustellen und einzusetzen. Ist das ein Problem weil ich so zu viel Zeit vor dem Bildschirm verbringe? Oder ist das gar nicht schlimm, weil die Tage momentan eh wieder kürzer werden, eine zweite Coronawelle gerade in vollem Gange ist und man so nicht mal ein schlechtes Gewissen haben muss, soviel Zeit drinnen zu verbringen? Außerdem, ist dies nicht eine super Möglichkeit um viele neue Sachen zu lernen (ich fühl mich etwa deutlich sicherer im Umgang mit SQL und SQLite) und seine Zeit produktiv statt passiv zu verwenden?
Ich muss immer wieder daran denken, wie ich mit meiner eigenen Software die ganzen Probleme, die ich mit meinem aktuellen System habe, beseitigen kann. Wie das Posten eines Artikels auf meinem Blog mit der neuen Software nur noch wenige Millisekunden dauert, während es aktuell rund 20 Sekunden dauert. Welche neuen Funktionen ich ohne große Workarounds realisieren kann. Und wie simple alles sein wird.
Das ist seit langer Zeit wieder ein Side-Project (so pflegt man unter Entwicklern zu sagen) für das ich richtig brenne und Ausdauer habe, mehr als nur einen Prototypen zu erstellen! Und eventuell können letztendlich auch andere von dem Projekt profitieren, da ich versuche alles so flexibel und konfigurierbar wie möglich zu halten und den Quellcode selbstverständlich öffentlich zugänglich mache.
Bestimmt kommen weitere Posts zu diesem Projekt wenn es dann endlich einen nutzbaren Zustand erreicht hat. 😄
Tags: Erfahrungen, Gedanken, Programmieren