Was ist Legacy Code?

Legacy Code bezieht sich auf bestehende Quellcodes in Software, die als veraltet angesehen werden oder in einer Programmiersprache geschrieben wurden, die heute nicht mehr (häufig) verwendet wird. Oft wird dieser Begriff verwendet, um Code zu beschreiben, der schwer zu verstehen, zu warten oder zu ändern ist, weil er nicht den aktuellen Programmierstandards oder entsprechenden Best Practices entspricht. Legacy Code ist oft in kritischen Anwendungen oder Systemen vorhanden, die weiterhin betrieben werden müssen, obwohl sie möglicherweise nicht mehr vollständig dokumentiert oder von den ursprünglichen Entwickler:innen unterstützt werden.

Merkmale von Legacy Code

1. Mangelnde Dokumentation

Legacy Code ist oft schlecht oder gar nicht dokumentiert, was es schwierig macht, ihn zu verstehen und zu bearbeiten.

2. Veraltete Technologien

Der Legacy Code könnte in einer Programmiersprache geschrieben sein, die nicht mehr weit verbreitet ist, oder er könnte auf veralteten Technologien oder Frameworks basieren.

3. Fehlende Tests

Häufig ist Legacy Code nicht mit automatisierten Tests abgedeckt, was Änderungen riskant und fehleranfällig macht.

4. Schwer zu ändern

Aufgrund seiner Komplexität oder schlechten Strukturierung kann es sehr schwierig sein, Änderungen an Legacy Code vorzunehmen, ohne neue Fehler zu verursachen.

Beispiele für Legacy Code

1. Veraltete Unternehmenssoftware

Ein Unternehmen verwendet seit Jahrzehnten eine selbst entwickelte Software, die in einer veralteten Programmiersprache wie COBOL geschrieben wurde. Die Software erfüllt weiterhin wichtige Aufgaben, aber jeder Versuch, sie zu aktualisieren oder zu erweitern, ist zeitaufwändig und riskant.

2. Ungepflegter Open-Source-Code

Ein Open-Source-Projekt, das über viele Jahre gewachsen ist, aber dessen Codebasis inzwischen chaotisch und unübersichtlich geworden ist. Da die ursprünglichen Entwickler:innen das Projekt verlassen haben, ist es schwierig, neue Funktionen hinzuzufügen oder Fehler nachhaltig zu beheben.

3. Anwendungen ohne Tests

Ein weiteres Beispiel besteht in einem Webservice, der über Jahre hinweg kontinuierlich gewachsen ist, aber nie automatisierte Tests implementiert hat. Jede Änderung oder Erweiterung des Codes birgt das Risiko, unerwartete Fehler zu verursachen.

Strategien im Umgang mit Legacy Code

  • Refactoring
    Eine gängige Strategie besteht darin, den Code schrittweise zu verbessern, indem man ihn umstrukturiert und dabei den Funktionsumfang beibehält.
  • Testabdeckung erhöhen
    Automatisierte Tests können nachträglich hinzugefügt werden, um sicherzustellen, dass der Legacy Code stabil bleibt, wenn Änderungen vorgenommen werden.
  • Modularisierung
    Der Code kann in kleinere, besser verständliche Module aufgeteilt werden, die leichter zu warten und zu testen sind.

Fazit zu Legacy Code

Legacy Code ist eine Herausforderung, mit der sich viele Entwickler:innen in der Softwareindustrie konfrontiert sehen. Trotz seiner Schwierigkeiten ist er oft unverzichtbar, da er in kritischen Systemen eingesetzt wird. Mit den richtigen Strategien und einem durchdachten Ansatz können Entwickler:innen jedoch die Risiken mindern und den Legacy Code schrittweise modernisieren, um ihn wartbarer und zukunftssicherer zu gestalten.

Sie haben Probleme mit Legacy Code? Unsere Expert:innen können Ihnen helfen! Kontaktieren Sie uns für ein unverbindliches Erstgespräch.

Blogartikel

Was tun für besseren Code? Lest Bücher!
IT-Beratung

Was tun für besseren Code? Lest Bücher!

Unser Autor und Softwareentwickler Andrés beschäftigt sich schon viele Jahre mit Codequalität und Clean Code. Um eine hohe ...

Mehr lesen
Refactoring – die Kunst der Software-Optimierung
Softwareentwicklung

Refactoring – die Kunst der Software-Optimierung

Gute und vor allem funktionale Software zu produzieren ist alles andere als eine triviale Angelegenheit! Es bedarf einiges an ...

Mehr lesen
Software-Modernisierung – Ein Muss für jedes Unternehmen
Softwareentwicklung

Software-Modernisierung – Ein Muss für jedes Unternehmen

Bei den Tools, mit denen man im Arbeitsalltag hantiert ist man darauf angewiesen, dass sie stets die notwendige Funktionalität ...

Mehr lesen

Ihr Wissensdurst ist noch nicht gestillt?

Zu den Wissens-Ressourcen