TodoOrDie: die beste und gleichzeitig schlimmste Idee, die ich je hatte.
Ich habe todoordie gebaut, weil ich genug von meinem eigenen Unsinn habe
Warum todoordie? Weil ich meine eigenen jämmerlichen Ausreden satt hatte. Ihr kennt sie alle – diese TODO-Kommentare, die ihr in euren Code streut wie Feenstaub, mit dem festen Vorsatz, „später“ daran zu arbeiten? Spoiler: „Später“ ist ein mythologischer Ort, den es nicht gibt. Das ist wie zu sagen, dass du endlich deine Sockenschublade organisieren wirst – niedlich, aber niemals Realität.
Also hörte ich auf, mich selbst zu belügen, und baute todoordie, ein Paket, das im Grunde „TU ES ODER STIRB!“ in meine vernachlässigten TODOs brüllt.
Warum das die beste und gleichzeitig schlimmste Idee war, die ich je hatte.
Was ist todoordie überhaupt?
todoordie ist mein persönlicher Code-Babysitter. Es ist ein PHP-Paket, das diese traurigen kleinen TODO-Kommentare in tickende Zeitbomben verwandelt. Du setzt eine Deadline oder eine Bedingung – und wenn du das Problem bis dahin nicht gefixt hast, wirft es dir einen Fehler ins Gesicht wie ein passiv-aggressiver Kollege. Ich habe ähnliche Tools in anderen Sprachen gesehen und dachte mir: „PHP verdient es, genauso zu leiden.“ Und voilà, hier sind wir.
Warum habe ich dieses Monster erschaffen?
Stell dir vor: Du steckst bis zum Hals in Code, schreibst // TODO: Fix das später, fühlst dich produktiv – und drei Monate später ist der Kommentar immer noch da, grinst dich an wie ein Geist aus einem schlechten Horrorfilm. Vergessene TODOs häufen sich, und genau so entsteht technischer Schuldenmüll. Und ich bin es leid, mir einzureden, dass ich das „irgendwann“ schon erledigen werde. „Irgendwann“ ist die Lüge, mit der wir uns besser fühlen, wenn wir Pizza zum Frühstück essen.
Ich habe todoordie gebaut, um der nervige Fitness-Kumpel zu sein, den ich nie wollte – nur dass es mich nicht zu Liegestützen zwingt, sondern mich dazu bringt, meinen Code aufzuräumen. Deadlines? Bedingungen? Alles dabei. Es ist weniger ein Tool und mehr eine Lebensentscheidung für Leute, die sich selbst genug hassen, um Dinge wirklich zu erledigen.
Wie benutzt man todoordie? (Weil du es wissen willst)
Zuerst musst du das Chaos in dein Leben einladen. Öffne dein Terminal und tippe:
composer require vangelis183/todoordie
Zack! Willkommen in der Accountability-Hölle. Glückwunsch, es gibt kein Zurück.
Anstatt eines traurigen // TODO: Ich mach das irgendwann, kannst du jetzt Folgendes schreiben:
use Vangelis\TodoOrDie;
TodoOrDie::check("Fix diese Funktion, die so hässlich ist, dass dein Code weint", new DateTime('2024-12-31'));
Wenn du das Monster nicht bis Silvester 2024 reparierst, crasht todoordie deine Party mit einem Fehler. Es ist wie ein Neujahrsvorsatz, nur dass du ihn diesmal wirklich einhalten musst – oder eben stirbst.
Du kannst auch Bedingungen festlegen:
TodoOrDie::check("Hör auf, diese veraltete API zu nutzen, bevor sie dich beißt", function() {
return Config::get('app.version') > '2.0';
});
Wenn deine App Version 2.0 erreicht und du immer noch an dieser alten API hängst wie an deiner Kindheitsdecke, wird todoordie dich gnadenlos wachrütteln.
Anpassung (Weil ich kein kompletter Sadist bin)
Ich verstehe es – niemand will, dass die Produktion wegen eines TODO-Fehlers explodiert. Deshalb habe ich sichergestellt, dass todoordie in kritischen Umgebungen nicht komplett eskaliert. Standardmäßig gibt es in Produktionsumgebungen nur Warnungen aus, anstatt alles zu crashen. Es ist wie deine Mutter, die dich ständig daran erinnert, dein Zimmer aufzuräumen – nervig, aber nicht das Ende der Welt.
Du kannst es aber nach Belieben anpassen:
TodoOrDie::check("Refaktoriere das, bevor es ein Eigenleben entwickelt", new DateTime('2024-06-01'), ['production' => 'warn']);
Siehst du? Es hat dein Rücken. Du kannst auch Deadlines und Bedingungen kombinieren, um den maximalen Selbsthass zu spüren:
TodoOrDie::check("Aktualisiere die API-Aufrufe, bevor die Welt untergeht", new DateTime('2024-09-01'), function() {
return Config::get('api.version') === 'v3';
});
Jetzt eskaliert es nur, wenn sowohl die Deadline überschritten ist und die Bedingung wahr wird. Es ist wie ein „Choose Your Own Adventure“-Buch – nur dass das Abenteuer aus Reue besteht.
Kleine Warnung: Das hier ist todoordie, nicht todo_and_happy_rainbows. Teste es, bevor du es produktiv setzt – sonst wird deine Codebasis zur Telenovela.
Das echte Chaos, das ich angerichtet habe
Stell dir vor, du hast diesen kleinen Schatz in deinem Code:
// TODO: Diese Funktion refaktorisieren, bevor sie dich im Schlaf verfolgt
Mit todoordie wird daraus:
TodoOrDie::check("Diese Funktion refaktorisieren, bevor sie dich im Schlaf verfolgt", new DateTime('2024-03-01'));
Wenn März kommt und das Ding immer noch ein Desaster ist, dann verfolgt todoordie dich stattdessen. Verdiente Gerechtigkeit.
Oder du sitzt auf altem Legacy-Code herum:
TodoOrDie::check("Entferne diesen Legacy-Code, der älter ist als das Klapphandy deiner Oma", function() {
return Config::get('app.release') === 'stable';
});
Sobald deine App den stable-Status erreicht, musst du den fossilen Code rausschmeißen – oder die Konsequenzen tragen. Es ist wie Frühjahrsputz, nur mit mehr Flüchen.
Fazit dieses Wahnsinns
Ich habe todoordie gebaut, weil ich mein eigener schlimmster Feind bin. Dieses Paket zwingt mich – und dich – endlich dazu, den Müll aufzuräumen.
Dein zukünftiges Ich wird mich vielleicht hassen, weil es dich zwingt, diesen Bug zu fixen. Aber es wird mir danken, wenn dein Code nicht aussieht wie ein brennender Mülleimer.
Also schnapp dir todoordie auf GitHub unter https://github.com/vangelis183/todoordie und verwandle deine TODOs in „ICH HAB’S GESCHAFFT“-Momente. Dein Code hat es verdient – und ehrlich gesagt, du auch. Irgendwie.