Andreas Hanke Geschäftsführer

„Das Wissen und die Erfahrung unserer Mitarbeiter sind das Fundament unseres Hauses“

Andy_wide

Alexandra Specht Key Account Managerin

„Seit 1995 sind wir auf dem Markt und jedes Jahr werden es mehr zufriedene Kunden, die unsere Dienstleistungen schätzen“

Nana_wide

Werner Eberling Principal Consultant

„Technologie-Hypes kommen und gehen, fundamentale Prinzipien der Software-Entwicklung halten Systeme stabil und zukunftssicher“

Slide3

Thomas Haug Principal Consultant

„Die Vermessung von Software und die Visualisierung der Ergebnisse hilft uns, strukturelle Probleme aufzudecken“

Thomas_wide

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. Ein Hauptziel eines Refactorings ist es, eine bestehende Software wieder wartbar zu machen. Gutes, effizientes Refactoring ist eine 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 vermeidet man sogar Fehler die, bei komplett manuell durchgeführtem Refactoring, nahezu unvermeidlich sind.

Dieser Kurs beinhaltet eine Einführung in die Methoden des Refactoring und bietet anhand von Beispielen die Gelegenheit sie auszuprobieren und einzuüben. Obwohl aktueller integrierter Entwicklungsumgebungen (IDEs) Refactoring schon unterstützen, wird im dieser Kurs das Schwerpunkt auf das Hintergrundwissen und die Fähigkeit sie manuell durchzuführen gelegt.

Inhalt:

  • Einführung in das 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 Methodenaufrufen; Generalisierung; Entscheidungshilfe: Refactoring oder Neuentwicklung?
  • Refactoring und Tests
  • Softwaregestütztes Refactoring in der Praxis