Softwaresanierung und Refactoring

Die Intensivtrainings rundum DevOps-Technologien

25 Apr 2016
9:00 - 17:00

Softwaresanierung und Refactoring

25 Apr 2016
9:00 - 17:00

Auch wenn Software nicht rostet und kein Putz abbröckeln kann, so unterliegt sie doch in der Regel dauernden Änderungen und Anpassungen und kann dadurch zum Sanierungsfall werden. Sei es, dass Funktionalitäten der Software ergänzt, geändert oder gestrichen werden oder dass sich einfach das Umfeld von benutzten Komponenten oder das Betriebssystem ändert. Gerne wird aus Zeitgründen auf dabei erforderliche Refactorings verzichtet und mit der Zeit wird es immer schwieriger Änderungen umzusetzen oder die Software zu warten und alte Fehler zu beheben, ohne dabei neue zu produzieren. RAD-Systeme wie Delphi verleiten zudem dazu, Konzepte wie die Schichtentrennung außen vor zu lassen und Business-Code bunt gemischt mit GUI-Code in verschiedenste Ereignishandler zu verstreuen. Das Ergebnis ist ein System, dessen Abhängigkeiten Tests extrem erschweren oder gar unmöglich machen und dessen Reaktion auf Änderungen nur schlecht abgeschätzt werden können.

Es gibt nicht das „eine“ Rezept, um im Handumdrehen aus jedem System, das durch Änderungen aus dem Ruder gelaufen ist oder noch nie testbar war, eine testbare und damit wartbare Anwendung zu machen. Aber es gibt sehr wohl hilfreiche Prinzipien, die bei Refactorings beachtet werden sollten und es gibt Rezepte und Vorgehensmuster, wie Sie Code Schritt für Schritt testbar machen, die unterschiedlichsten Abhängigkeiten auflösen und Klassen entkoppeln können.

Der Workshop beginnt mit einem Überblick über die Grundlagen, den SOLID-Prinzipien, Unittests und Schichtenarchitektur sowie Patterns und Anti-Patterns, insbesondere für die Entkopplung von Schichten. An einer kleinen RAD-Beispielanwendung wird dann im Laufe des Workshops gezeigt, wie Refactorings eingesetzt werden, um den Code sukzessive testbar zu machen. In Demos und Übungen werden Wege und Methoden erarbeitet, um Code durch Anwendung von OOP-Konzepten und Design Patterns zu strukturieren. Es werden verschiedene Wege gezeigt Abhängigkeiten zwischen Klassen oder von globalen Variablen aufzuheben oder temporär zu kapseln und testbar zu machen. So können mit den Praxistipps und Rezepten aus dem Workshop letztendlich auch Änderungen an Legacy Systemen so vorgenommen werden, dass diese Erweiterungen testbar sind.

Agenda

Basics:

  • SOLID-Prinzipien
  • Schichtenarchitekturen und Seams
  • Patterns und Anti-Patterns
  • Unittests, Mocks und Dummies
  • Probleme finden – von Code Smells zu Metriken

Refactorings:

  • Einfache Refactorings
  • Refactorings in Delphi und Modelmaker
  • Refactorings planen und durchführen
  • Design for Testability
  • Refactoring von nicht-testbaren Klassen
  • RAD/Legacy Code testbar erweitern
  • Design Patterns für testbaren Code

 

Teilnehmervoraussetzungen
Sicherer Umgang mit Delphi und Kenntnisse objektorientierter Entwicklung

Zusätzliche Hinweise
Zum direkten Nachvollziehen der Beispiele und für Übungen wird ein Laptop mit einer Delphi-Version zwischen mindestens Delphi 2010 und der aktuellen Delphi Version empfohlen.