RAD-Systeme wie Delphi verleiten dazu, Konzepte wie die Schichtentrennung außen vor zu lassen und Business-Code bunt gemischt mit GUI-Code in verschiedenste Ereignishandler zu verstreuen. Entwickelt sich die Software weiter oder muss an ein sich änderndes Umfeld angepasst werden, wird gerne aus Zeitgründen auf dabei erforderliche Refactorings verzichtet. 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. Selbst dann, wenn eine konsequente Schichtenarchitektur nicht gewünscht war oder ist, lassen sich Komponenten wie eine Reporting Engine oder Datenbank- oder Gridkomponenten nicht mehr tauschen.
Der Workshop beginnt mit einem Überblick über die Grundlagen, den SOLID-Prinzipien, Unit-Tests 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 Methoden und Vorgehensmuster 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 Rezepten aus dem Workshop letztendlich auch Änderungen an Legacy Systemen so vorgenommen werden, dass diese Erweiterungen testbar sind.
Letzter Termin
04.05.2017 bis 05.05.2017
Nächster Termin
Steht noch nicht fest.
Agenda
- SOLID-Prinzipien, Design for Testability
- Schichtenarchitekturen und Seams
- Patterns und Anti-Patterns
- Design Patterns für testbaren Code
- Unittests, Mocks und Dummies
- Probleme finden – von Code Smells zu Metriken
- Refactorings in Delphi und Modelmaker
- Refactorings planen und durchführen
- Testabsicherung von Refactorings
- Refactoring von nicht-testbaren Methoden und Klassen
- Globale Variablen ersetzen
- Datenmodule zerlegen
Teilnehmervoraussetzungen
- Sicherer Umgang mit Delphi
- Gute Kenntnisse objektorientierter Entwicklung, sicherter Umgang mit Interfaces, Generics
- Inhalte aus Kurs Advanced OOP mit Delphi
Zusätzliche Hinweise
Zum direkten Nachvollziehen der Beispiele und für Übungen wird ein Laptop mit einer Delphi-Version zwischen mindestens Delphi XE2 und der aktuellen Delphi Version empfohlen. Als Betriebssystem kann Windows 7/8/10 verwendet werden.