Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Refactoring von Legacy Code Michael Kokonowskyj Thomas Schissler artiso AG.

Ähnliche Präsentationen


Präsentation zum Thema: "Refactoring von Legacy Code Michael Kokonowskyj Thomas Schissler artiso AG."—  Präsentation transkript:

1 Refactoring von Legacy Code Michael Kokonowskyj Thomas Schissler artiso AG

2

3 Aufwand für neue Features Probleme in Legacy Code Risiko durch Veränderung Nutzung neuer Technologie n & Methoden

4 Ziele moderner Architektur WartbarErweiterbarTestbar

5

6 Häufige Lösung - Greenfield

7 Refactoring – Renovierung des Codes

8

9 Anti-Patterns Redundanzen UI-Componenten (z.B. Message-Boxen) im Code verwenden Zugriffe auf Ressourcen (z.B. Files) nicht isolierbar Zu viel Funktionalität in einer Methode Starke Bindung zwischen Klassen

10 Trennung -Daten - Orchestrierung -Logik Oberstes Ziel: Entkopplung Sackgassen- methoden Komponenten- orientierung IoC Interfaces MVVM / MVC Single Responsibilit y POCOs

11 Single Responsibility Methoden sollten nur ein Funktionalität implementieren Es sollte genau einen Grund geben, eine Methode zu ändern Tests können diese atomare Logik gut abprüfen

12 Abhängigkeiten zu Ressourcen Problem: Wie kontrollieren wir die Abhängigkeiten von Methoden Warum ist das überhaupt problematisch? – Infrastrukturabhängigkeiten – Destruktive Tests – Hoher Initialisierungsaufwand – Simulation von Testfällen oft schwierig

13 Komponentenorientierte Architektur Data Contract Operation Contract

14 Contracts Data Contract Operation Contract

15 Implementierung Komponente

16 Klassische Struktur SplitLine DB ReadData Recognize Integrations- Test SplitDigit Recognize Digit Unit-Test Integrations- Test

17 Entkoppelte Struktur durch Orchestrierung SplitLine DB Unit-Test ReadData Recognize Integrations-Test Unit-Test SplitDigit Recognize Digit Unit-Test Integrations- Test

18 Inversion of Control (IoC) Constructor Injection

19

20 Refactoring Best Practices Kleine Schritte – Häufig lauffähige Stände anstreben – Mit einfachen und schnellen Ergebnissen beginnen (Pfadfinder-Regel) – Aus kleinen Bereichen lernen statt alles auf ein Mal umstellen Testautomatisierung sofort mit umsetzen – Überprüfung der Refaktoring-Ziele – Sicherheit Patterns extrahieren – Für neue Funktionen lernen und im gesamten Team kommunizieren – Einheitliche Strukturen

21 Visualisierung Kandidaten zu identifizieren Komplexität abzuschätzen Fortschritt transparent machen Notwendige Anpassungen erkennen Code Maps / Dependency Graph / Layer Diagramm / Code Metrics

22 Demo

23

24 Die Mikado-Methode Refactoring-Ziel definieren Refactoring implementieren Fehler? Fehler dokumentieren Änderungen rückgängig machen Nächste Anpassung identifizieren Anpassungen übernehmen Ziel erreicht? Fertig Start Nein Ja Nein

25 Die Mikado-Methode Grid ersetzen Export Speichern- Methode Neu berechnen Validierung

26

27 Zusammenfassung Unit-Testing ist essentiell Refactoring muss gewollt werden, von allen Beteiligten Refactoring ist eine kontinuierliche Aufgabe Refactoring ist eine Investition, lohnt sich aber Dem Greenfield-Impuls wiederstehen, Refactoring heute starten!

28

29 Kontakt Vielen Dank für ihre Aufmerksam -keit Thomas Schissler artiso solutions GmbH Oberer Wiesenweg 25 D Blaustein /


Herunterladen ppt "Refactoring von Legacy Code Michael Kokonowskyj Thomas Schissler artiso AG."

Ähnliche Präsentationen


Google-Anzeigen