Es gibt schier unzählige Quellen, die einem beibringen, wie man ordentlichen Code schreibt. Leider gibt es viel weniger Quellen, die einem helfen wie man nicht so ordentlichen Code aufräumt.

Dies ist einigermaßen irritierend, da die meisten von uns wohl ein vielfaches der Zeit mit existierendem Code arbeiten, der trotz aller Mühen irgendwie nicht wirklich perfekt ist.

In diesem Vortrag werde ich mit den Fingern an der Tastatur Java Legacy Code aufräumen und dabei die zu Grunde liegenden Prinzipien und Ideen erläutern. Es werden klassische Refactorings gezeigt, aber auch auf Legacy Code speziell zugeschnittene Techniken, wie die Mikado Methode. Und wenn das Refactoring so einfach wird, dass wir uns nicht 100% darauf konzentrieren müssen, werden die Rahmenbedingungen erläutert unter denen man solch ein Refactoring durchführen kann oder sollte.

Wie man mit Legacy Code effizient umgeht war für mich eine der wichtigsten Lektionen in meiner Karriere, weil es

  1. extrem oft in Projekten gebraucht wird
  2. eine Situation die vorher mit Unwohlsein, oder sogar Angst verbunden war in etwas verwandelt hat, was Spaß macht und ungemein befriedigend ist.

Ich hoffe eine ähnliche Entwicklung bei dem einen oder anderen Zuhörer auslösen zu können.

Um den Vortrag kompakt halten zu können, werden die für die Session benötigten Tests schon fertig sein.

Jens Schauder T-Systems onsite services GmbH, Deutschland

Jens Schauder ist Softwareentwickler aus Leidenschaft. In Zeitschriftenartikeln, seinem Blog, Konferenzvorträgen oder seiner Mitarbeit bei der JUG Ostfalen versucht er die Welt der Softwareentwicklung ein klein wenig besser zu machen. Besonders wichtig ist ihm dabei die Vielseitigkeit der Softwareentwicklung: Vom Fachwissen, über Programmiersprachen, Bibliotheken und Tools bis zu Vorgehensmodellen. Alles gehört dazu und kann verbessert werden. Seine meisten Vorträge drehen sich um die Themen Scala, Clean Code und Testen. Seit 2012 arbeitet Jens Schauder für die T¬Systems on site services GmbH als Executive Consultant. Neben der Software Entwicklung gehört der Aufbau und Verbreitung von Wissen zu seinen wesentlichen Aufgaben. In seiner Freizeit arbeitet er an Degraph einer Bibliothek zur Visualisierung und dem Test von Package Abhängigkeiten.