Durch Refactoring von Legacy Code zu Clean Code

Stefan Lieser als Trainer beim Refactoring Workshop

Ich unterstütze Sie darin, die Kontrolle über Ihren Legacy Code zurückzugewinnen!

Wenn Sie

  • keine automatisierten Tests für Ihren Code haben,
  • Ihren Code kaum noch ändern, weil Sie ihn nicht mehr verstehen,
  • mit vielen Bugs in Ihrem Code zu kämpfen haben,
  • zu viel Zeit brauchen, um neue Features zu ergänzen,
  • Refactoring der Codebasis viel zu lange dauert,

dann ist Ihnen Ihre Codebasis wohl ausser Kontrolle geraten. Lernen Sie hier Schritt für Schritt, wie Sie die Kontrolle mit System zurückgewinnen.

Was ist Ihre Nummer 1 Herausforderung im Umgang mit Legacy Code?

Refactoring

Refactoring von Legacy Code ist notwendig, um die Kontrolle zurückzugewinnen. Die Schritte zurück zur Wandelbarkeit des Codes sind im Prinzip einfach. Doch viele Teams haben Angst, den bestehenden Legacy Code zu verändern, weil sie die Konsequenzen ihrer Änderungen nicht überblicken können. Sie haben es wahrscheinlich erlebt, dass ihr Produkt instabil wurde, haben so vielleicht bereits ihre Kunden verärgert. Ferner stellt sich die Frage, wo sie anfangen sollen, wie lange das wohl dauern wird, was das alles kosten soll. Und ganz praktisch sind die eigentlich einfachen Schritte dann im realen Projekt doch nicht so leicht, wie man es sich gedacht hatte.

Genau hier setze ich an. Es geht weniger darum, einfache Refactorings zu erklären oder den Einstieg in das automatisierte Testen zu schaffen. Sondern es geht darum, wie all diese Techniken konkret Schritt für Schritt auf Legacy Code angewendet werden, mit dem Ziel, wieder beweglich zu werden.

Legacy Code

Mit dem Begriff Legacy Code bezeichne ich Quellcode, der nicht „nach den Regeln der Kunst“ erstellt wurde. Typischerweise fehlen automatisierte Tests. Ferner wird gegen wichtige Prinzipien verstoßen, wie etwa DRY – Don’t Repeat Yourself oder SRP – Single Responsibility Principle. Wir orientieren uns dabei an der Clean Code Developer Initiative, in der mein Kollege Ralf Westphal und ich wichtige Prinzipien und Praktiken zusammengetragen haben.

Mit den folgenden Beiträgen können Sie loslegen

Artikelserie zu einfachen Refactorings

Teil 1
Einfache vs. komplexe Refactorings
Ziel von Refactorings
Die Lesbarkeit verbessern – Rename Refactoring
Die Lesbarkeit verbessern – Introduce Variable

Teil 2
Das Abstraktionsniveau anheben – Extract Class from Parameters
Aspekte trennen – Extract Method

Teil 3
if-Anweisungen vereinfachen – Extract Method
Eingaben sichtbar machen – Introduce Parameter

Teil 4
Abhängigkeiten reduzieren – Extract Method und Introduce Parameter
Aspekte trennen – Move To Another Type

Teil 5
Die Testbarkeit verbessern – Internal Test Constructor
Abhängigkeiten reduzieren – Extract Interface

Artikelserie zu komplexen Refactorings

Komplexe Refactorings an Legacy Code – Teil 1

Komplexe Refactorings an Legacy Code – Teil 2

[Video] Komplexe Refactorings mit der Mikado Methode angehen

[Video] Die Mikado Methode – Ablauf

Cheatsheet zur Mikado Methode

Aktuelle Termine

 

herbstcampus logo

Der diesjährige Herbstcampus in Nürnberg findet statt vom 30. August bis 1. September statt. Ich habe das Vergnügen, am 30. August einen Tagesworkshop zu halten. Thema: Wandelbarkeit wieder herstellen – Komplexe Refactorings umsetzen. Am Tag darauf, also am 31. August halte ich einen Vortrag zum gleichen Thema.

.NET Developer Conference

Am 6. Dezember gibt es in Köln eine weitere Gelegenheit, einen Vortrag zum Refactoring zu hören. Im Rahmen der Dotnet Developer Conference spreche ich über das Refactoring von C# Legacy Code.