Code Refactoring
Geschwafel
Tags: Beruf, programmierenRefactoring wird hauptsächlich auf unschöne Stellen im Code (siehe Code-Smell) angewandt. Dabei wird der Quelltext eines Computerprogramms umgestaltet, wobei die tatsächliche Programmfunktion unverändert bleiben soll.
Eine kleine Anekdote aus meinem Arbeitsleben: Zur Zeit beschäftige ich mich vornehmlich mit dem Code-Refactoring unter der Prämisse neue Erweiterungen für zukünftige Ergänzungen zu implementieren. Refactoring ist in meinen Augen eigentlich eine denkbar unangenehme Aufgabe. Früher oder später hat man sich den aktuellen Source-Tree soweit zerhauen, das kein Stück mehr auf’s andere paßt. Dabei den Überblick zu behalten und nicht den Fehler zu machen, Funktionalitäten aus versehen bei der Re-Implementierung zu übersehen ist nicht ganz einfach.
Fast mehr als die Hälfte der Woche sprühte es vor roten Kreuzen in meinem eclipse-Projekt und der aktuelle Stand läßt mich nur unbefriedigend ins Wochenende gehen, da ich jetzt schon weiß, das ich den roten Faden, den ich bis vorhin noch hatte, am Dienstag erstmal mühsam suchen muss. Abgesehn von den restlichen Aufgaben, die einen in diesem Prozess eh schon fortwährend ablenken.
Code-Refactoring from scratch wäre ja ganz nett – verfehlt aber bei mir konsequent den Sinn, da ich aus Terminüberschneidungen ausstehende Implementierungen bereits existierender/benötigter Funktionalitäten immer mal wieder zurück stellen muss. Der Job bringt es eben so mit sich, das man nicht seine gesamte Zeit auf eine Aufgabe aufwenden kann.
Natürlich – wer sinnvoll und ausgiebig konzeptionell planen und entwickeln kann, dem stellen sich – zumindest weitaus seltener – eben diese Probleme nicht. Aber wir leben nunmal nicht in einer Welt mit unendlich Zeit und ohne Störfaktoren. So gibt man sich eben den Gegebenheiten hin und reißt gelegentlich auch mal ganze – oder zumindest sehr große – Konstrukte ein um sie neu aufzubauen.

image found @neulehrer.wordpress.com
Aber immerhin durfte ich in weiten Teilen dabei auch Abwärtskompatibilität kappen und so schon mal einige Zeilen Code-Müll dem Papierkorb zuführen. Ist ja auch mein (adoptiertes) “Baby” – mit dem ich schon während der Ausbildung beginnen durftemusstekonnte und das nun intern unter dem süffisanten Projektnamen “Eierlegendewollmilchsau” läuft.
Derzeit grübel ich doch sehr stark, wie man so’n tolles Refactoring strukturierter angehen könnte. Vielleicht kennt da ja jemand hilfreiche Tipps, wie man in paar Tausend Zeilen Code nicht den Überblick verliert? Grade in Hinblick auf eclipse wäre es spannend.



