Meine ersten Projekte und ihr Code — eine traurige Reise in die Vergangenheit. Teil 1: Twoffein for Windows

Dienstag, der 4. August 2015, 23:48 Uhr. Ich arbeite gerade daran, meine bestehenden Windows Phone-Apps auf Windows 10 zu portieren und auch auf PCs und Tablets verfügbar zu machen. Seit Stunden rattert Visual Studio 2015 tausende Zeilen von C#-Code durch, immer und immer wieder. Eine Änderung hier, ein Bugfix da und das Spiel geht von vorn los, alles muss passen und am Ende perfekt sein. Nebenbei denke ich immer wieder darüber nach, wie ich das alles vereinfachen kann — Codeoptimierungen müssen her, damit Redundanz ausgeschlossen werden kann. Zusätzlich denke ich auch darüber nach, meine beiden „großen“ Projekte, die ich gerade vor mir habe, auf meine VS Online Repo zu laden, damit ich auch von unterwegs aus daran arbeiten kann. Was ich inzwischen vergessen habe: meine alten Projekte befinden sich auch noch dort und so beschließe ich spontan, die Solutions herunterzuladen und noch einmal genauer zu betrachten — so ein Rückblick kann ja nicht schaden. Und plötzlich bin ich gedanklich zwei Jahre in die Vergangenheit gereist.

Januar 2013. Ich habe gerade wieder einmal das Programmieren für mich entdeckt. Bereits vor einigen Jahren schrieb ich mir „meinen eigenen Webbrowser“, welcher im Grunde nichts weiter als der IE6 mit einer noch schlimmeren Oberfläche war. Diesmal soll alles anders werden, ich möchte, dass meine Programme auch genutzt werden, dass sich die Arbeit lohnt. Und ich möchte etwas Sinnvolles erschaffen, das den Usern wirklich hilft. Auf Twitter hatten einige Leute mal eine tolle Idee gehabt — sie haben eine Website entwickelt, auf der man angeben kann, was man gerade trinkt. Dafür erhält man dann Punkte und derjenige mit den meisten Punkten ist eben auf Platz 1 des Rankings. Viele suchen den Sinn dahinter, ich hingegen finde die Idee großartig, allerdings gibt es keinen Client für Windows. Also werde ich das kurzerhand ändern.

TwoffeinWin25

Die Entwicklung der ersten Version dauerte etwa drei Wochen und umfasste um die 120 Zeilen VB.NET-Code, denke ich. Der Screenshot zeigt Version 2.5, die letzte Version war 2.6 Beta 7. Die letzte VS-Solution, die ich noch finden konnte, beinhaltet Version 1.1, diese wiederum beinhaltet insgesamt 179 Zeilen VB.NET-Code und 3 Windows Forms (.NET 4.5). Die letzte Änderung erfolgte am 27. Januar 2013 — wie gesagt, ich habe auch noch im März daran gearbeitet und das Tool ständig mit Updates versorgt, aber die Sources davon existieren eben nicht mehr. So, was konnte das Tool? Alles, was man auch auf twoffein.com konnte. Getränk wählen, optional auswählen, mit wem man dieses gerade trinkt, bestätigen und fertig. Simpel! Aber aus heutiger Sicht eine totale Katastrophe. Die Twoffein-API existiert inzwischen nicht mehr und so throwt das Tool bereits beim Start eine WebException, welche natürlich nicht behandelt wird. Das Tool wurde damals tatsächlich von einigen Personen genutzt und wenn ich mir jetzt vorstelle, dass das bereits damals passiert wäre, hätte das wohl ne Menge Chaos gegeben. Ansonsten muss ich aber sagen, dass der Code gar nicht so verkehrt ist — ja, gut, es ist eben Visual Basic-Code und nicht C#, aber es funktioniert theoretisch — fehlerfrei. Ausnahmen wurden nicht behandelt (nirgendwo!) und die Login-Daten wurden im Roaming-Verzeichnis des PCs gespeichert, aber ansonsten habe ich nicht allzu viel falsch gemacht. Ja, natürlich würde ich heute vieles anders und vor allem einfacher machen, aber wenn man bedenkt, dass ich zu dem Zeitpunkt erst 14 Jahre alt war, geht das denke ich in Ordnung. Es gab sogar einen Updater (allerdings stammt dieser nicht von mir, sondern von Ilja), der auch zweieinhalb Jahre später noch einwandfrei funktioniert. Wenn ich wöllte, könnte ich das Tool also nach wie vor jederzeit updaten. Ich könnte es komplett verwerfen, auf C#-Basis von vorn beginnen, alten Code portieren, Ausnahmen abfangen und, und, und… mache ich aber nicht, denn selbst, wenn Twoffein eines Tages wieder auferstehen sollte, würde ich nicht mehr auf Windows Forms setzen. Abgesehen davon dürften diese 179 Zeilen Code inzwischen sowieso auf keinem Rechner mehr vorhanden sein, der nicht auf den Namen „Nic-PC“ hört.

Nachtrag (08.08.): Ich habe noch einen Screenshot von Version 2.6 Beta 6 gefunden, also der vorletzten Version, bevor das Tool eingestellt wurde. Dieser Screenshot entstand lustigerweise auf meinem Surface mit Windows RT 8, welches ja — wie wir alle wissen — eigentlich keine Win32-Anwendungen von Drittanbietern unterstützte. Eigentlich.
Wie gesagt, so falsch war das Twoffein-Tool letztendlich gar nicht, ich hab deutlich schlimmeres gebracht — aber darauf werde ich in weiteren Teilen noch genauer eingehen und auch einmal meinen Code von damals mit dem von heutigen Projekten vergleichen. Mit anderen Worten: Ich mache genau das, was man als Entwickler nie machen sollte. Ihr werdet sehen, wieso.

twfnwin26beta6
One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.