Ich habe mich endlich mal dazu durchgerungen den Quellcode für clockrotz auf GitHub zu veröffentlichen. Es handelt sich dabei um ein kleines Tool um mir das Leben einfacher zu machen, wenn es um Benachrichtigungen mit zukunftscharakter geht.

Ich hatte in der Vergangenheit ziemlich oft das Bedürfnis mir selbst zu einem bestimmten Termin eine E-mail zu schicken, aber ich hatte keine wirklich handliche Lösung für das Problem parat.

Das Tool ist in Go geschrieben und zwischendrin war ich mal versucht das ganze in Rust neuzuschreiben. Ich halte mir diese Möglichkeit weiterhin offen. Wäre ein guter Vergleich bzgl. der Möglichkeiten. Bei Go haben mich am Ende dann schon ein paar Kleinigkeiten gestört. Tests schreiben fühlt sich beispielsweises immer etwas ungelenk an — das ist aber sicherlich eine Sache der Wahrnehmung. Mit dem Unit-Test-Geraffal in Java komme ich persönlich schneller und hübscher ans Ziel.

Coverage ist mittlerweile noch ziemlich schlecht — ich habe schon darüber nachgedacht Coverage aus Integrationstests (TBD ;-)) zu generieren. D.h. ich würde einen Setup für den Kram in einem Container laufen lassen und dann einige Anwendungsfälle automatisiert durchlaufen lassen. Softwaretests für richtige Tools sind auf jeden Fall komplizierter zu realisieren als für irgendwelche Libraries oder andersartige Komponenten…

Ich verwende clockrotz jetzt schon seit Mai und sollte daher die gröbsten Fehler überwunden haben.

Für die Zukunft sollte ich beherzigen meine Projekte von Tag 0 an öffentlich zu entwickeln, sonst eiere ich da immer monate- oder jahrelang rum — da hat dann niemand was von.

Was für mich besonders an diesem Projekt war: Ich habe erst die Dokumentation geschrieben. Also das ganze README.asciidoc existiert von Anfang an. Die Software danach dann zu schreiben war sehr angenehm, da ich immer wusste, wo ich hin muss. Das ist auch besonders hilfreich, wenn man man ein paar Wochen was anderes macht, und dann weiterarbeiten möchte. Kein großes Gerate, was denn jetzt als nächstes ansteht. Und die Dokumentation für die Benutzer ist immer korrekt.

Definitiv ein besserer Ansatz als das leider so häufige Löschen von brennenden Misthaufen.

Oh, und das ASCIIDoc-Rendering von GitHub ist nicht so hübsch, wie das, was aus asciidoctor rausfällt. Dang!