am 14. Januar 2010
So erstmal ein paar Worte in eigener Sache. Wir sind nämlich so Web 2.0, dass wir jetzt eine eigene Facebook Seite haben. Neidisch? Wahrscheinlich nicht! Trotzdem könnt ihr gerne Fan werden. Könnt mich auch gerne adden, wenn ihr schon dabei seid. Obwohl, es darf mich nur jemand adden, der mindestens 42 Artikel von mir gelesen hat. Ist dann familiärer. Amilio hat übrigens auch eine Seite spendiert bekommen, da könnt ihr aber auch gerne den Twitter Account hinzufügen, falls ihr gerne über die netten Bildchen informiert werden wollt. Und wer will nicht ab und zu mal lachen/weinen/…. Genug aber jetzt über uns.
Heute wollen wir mal wieder eine Regel besprechen, mit der ich eigentlich die letzten Jahre ziemlich gut gefahren bin. Die Pfadfinderregel. Helft alten Omas über die Straße! Fertig. Nein eigentlich geht es um eine andere, die Jungs und Mädels haben da nämlich was über den Zeltplatz erzählt, was man sich merken sollte. Aber holen wir doch mal ein paar Zeilen aus.
Wir kennen alle Code, der unsere Vorgänger verbockt haben. Legacy Code, den man am liebsten nicht anfassen will. Um ihn neu zu schreiben fehlt einem aber die Zeit. Kennen wir alle, brauche ich glaube ich nicht drauf einzugehen. Stile ändern sich eben und Programmierer lernen dazu. Wir haben also die Situation, dass wir zum Beispiel eine Methode erweitern sollen. Diese Methode ist eine Milliarde Zeilen lang (ich habe solche Methoden gesehen, “ungelogen”). Was machen. Der erste Ansatz ist: ich schaue mir die Stelle an, wo es ungefähr rein muss, schreibe da noch eine Zeile Code rein – unendlich plus eins ist schließlich immer noch unendlich – und tue so, als ob nie was gewesen wäre. Hab ich oft genug selbst so gemacht. Zumindest der alte Nils.
Die Pfadfinderregel, die ich meine lautet: Hinterlasse den (Zelt-)Platz immer schöner, als du ihn vorgefunden hast. Und das können wir hier auch anwenden. Wenn dich schon neue Funktionalität reinprogrammiere, dann bitte schön in eine separate Methode. Und wenn ich schon dabei bin, dann kann ich mir einen kleinen Teil der Methode vornehmen. Einen, den ich verstehe. Ich muss ja einen Teil verstehen, denn sonst sollte ich die Methode gar nicht anfassen. Ok wir nehmen also einen kleinen Teil, den wir verstehen und Refactorn ihn. Meistens wird es sich wohl um “Extract Method” handeln.
Das schöne daran ist, dass der Code nicht schlechter wird. Im Gegenteil, peut á peut verbessert er sich. Ok, es gibt Projekte, das muss ich hunderte von Jahren so handeln, damit man etwas mitbekommt, aber zumindest ich fühle mich als Weltverbesserer, wenn ich den Code sauberer hinterlasse, als ich ihn vorgefunden habe. Und Zeit kostet es auch nicht wirklich, zumindest nicht im Gegensatz zum Einarbeiten in die Methode.