am 11. Oktober 2008
Heute möchte ich über eines meiner Lieblingsregeln beim Programmieren reden, besonders da ich damit so oft schon mit anderen aneinander geraten bin. Aber vielleicht erkläre ich einfach erstmal worum es hier geht. You ain’t gonna need it – Du wirst es eh nicht brauchen. Sollte man also eine Methode entwickeln die man momentan nicht braucht, nur weil es gerade gut rein passen würde und irgendwann bestimmt mal hilfreich sein wird? Nein! Wir programmieren nur Sachen, die wir auch tatsächlich benötigen. Wer weiß denn schon, was wir in ein paar Wochen oder Monaten brauchen? Vielleicht haben wir Glück und die Anforderung ist ähnlich mit dem, was wir implementiert haben. Aber was wenn nicht? Dann müssen wir und in die Methode und wahrscheinlich auch in die ganze Klasse wieder einarbeiten, um sie zu refaktorisieren. Also lassen wir doch einfach die Finger von uns machen es nur bei Bedarf, wenn die Anforderungen und der Kontext der Funktion klar sind.
Natürlich gibt es auch ein starkes Gegenargument gegen dieses Verhalten. Es wird immer einfacher sein diese Methode zu implementieren, wenn man gerade mitten in der Thematik steckt. Aber wie oft hat man eine Methode geschrieben, die dann nie zum Einsatz kam. Und diesem toten Code gilt es zu verhindern. Nicht umsonst gibt es Tools, die einem Stellen im Code anzeigen, die nie verwendet werden, denn so ein Code ist nicht sehr hilfreich bei der Wartung einer Anwendung.
Ich weiß, dass sich die Geister bei diesem Programmierparadigma scheiden. Ich werde es auf jeden Fall weiter betreiben, da ich in der Vergangenheit immer sehr gut mit gefahren bin.