Refactoring

Verbesserung von Design und Quellcode bestehender Software

Beschreibung:

Gerade bei großen Software-Projekten führen wachsende Anforderungen, Zeit- und Kostendruck im Laufe der Zeit zu schwer wartbarer, langsamer und nicht erweiterbarer Software. Das Hauptziel eines Refactorings ist es, eine bestehende Software wieder wartbar zu machen. Gutes, effizientes Refactoring ist die Summe kleiner Transformationen, die das Design und die innere Struktur verbessern, ohne dass dabei das Verhalten der Software verändert wird. Dadurch wird der Code wieder verständlich, die Fehlersuche wird erleichtert und die weitere Programmierung beschleunigt.

Refactoring wird oft als langweilige Fleißarbeit empfunden, kann jedoch unter Verwendung entsprechender Software-Werkzeuge deutlich erleichtert und beschleunigt werden. Bei richtiger Anwendung dieser Werkzeuge werden Fehler vermieden, die bei komplett manuell durchgeführtem Refactoring nahezu unvermeidlich sind.

In diesem Kurs bekommen Sie einen Einstieg in die Methoden des Refactorings. Anhand von Beispielen bieten wir Ihnen die Gelegenheit, sie auszuprobieren und einzuüben. Obwohl aktuelle integrierte Entwicklungsumgebungen (IDEs) Refactoring schon unterstützen, legt dieser Kurs den Schwerpunkt auf das Hintergrundwissen und die Fähigkeit, sie manuell durchzuführen.

Inhalt:

  • Einführung in Refactoring
  • Gründe und Ansatzpunkte für Refactoring
  • Arten und Ziele von Refactoring-Maßnahmen
    • Code-Stil
    • Dokumentation
    • Modularisierung, Paketierung
    • Verwendung von Entwurfsmustern (Design Patterns)
    • Schichtentrennung
    • Herauslösen von Aspekten (Logging, Sicherheit, Monitoring, Mehrsprachigkeit)
    • Konfigurierbarkeit
    • Systemarchitektur
    • Programmiersprache
  • Code-Smells
  • Mögliche Transformation
    • Zusammenfassung von Methoden
    • Verschiebung von Objekteigenschaften
    • Datenorganisation
    • Vereinfachung bedingter Ausdrücke und Methodenaufrufe
    • Generalisierung
    • Entscheidungshilfe: Refactoring oder Neuentwicklung?
  • Refactoring und Tests
  • Software-gestütztes Refactoring in der Praxis