- Ein Beispiel aus der Entwicklung einer Anwendung zur Berichtserstellung, bei der eine
--dry-run-Option hinzugefügt wurde, um das Ausführungsergebnis zu simulieren
- Diese Option gibt aus, welche Aktionen ausgeführt würden, ohne tatsächliche Änderungen vorzunehmen, und ermöglicht so sichere Tests und schnelles Feedback
- Entwickler können damit Konfiguration, Zugänglichkeit und Systemzustand sofort prüfen und sie als alltägliches Verifizierungswerkzeug nutzen
- Als Nachteil wird eine leicht erhöhte Komplexität genannt, da im Code das Flag
dryRun geprüft werden muss
- Bei imperativen Anwendungen ist die
--dry-run-Funktion sehr nützlich; je früher sie im Projekt eingeführt wird, desto höher ist die Entwicklungseffizienz
Hintergrund
- Die neu entwickelte Anwendung zur Berichtserstellung erzeugt an jedem Werktag Berichte, komprimiert sie, lädt sie auf einen sftp-Server hoch, prüft Fehlerantworten und verschickt Benachrichtigungs-E-Mails
- In jedem Schritt erzeugte Dateien und Feedback-Dateien werden in unterschiedliche Verzeichnisse pro Phase verschoben
- Zu Beginn der Entwicklung erinnerte man sich an Subversion und die
--dry-run-Option vieler Linux-Befehle und fügte dieselbe Funktion hinzu
- Diese Option gibt aus, was bei der Ausführung passieren würde, ohne echte Änderungen vorzunehmen
- Bei einer Ausführung mit
--dry-run werden die zu erzeugenden und auszuschließenden Berichte, die zu komprimierenden und zu verschiebenden Dateien sowie die per sftp hoch- und herunterzuladenden Dateien schrittweise ausgegeben
Nutzung und Vorteile
- Eine so nützliche Funktion, dass sie im Entwicklungs- und Testprozess täglich verwendet wird
- Wenn sie zur Zustandsprüfung vor der Ausführung verwendet wird, lassen sich Konfiguration, Zugänglichkeit und Systemzustand sofort überprüfen
- Da keine tatsächlichen Änderungen vorgenommen werden, kann sie sicher ausgeführt werden
- Wenn das Datum der Statusdatei eines Berichts geändert wird, lässt sich sofort prüfen, ob dieser Bericht erzeugt werden würde
- Die eigentliche Berichtserstellung braucht Zeit, aber
--dry-run liefert schnelles Feedback
- Auch beim Testen des Gesamtsystems bietet sie eine schnelle Validierungsschleife
Nachteile
- Da im Code das Flag
dryRun wiederholt geprüft werden muss, entsteht eine leichte Verunreinigung des Codes
- In jedem Hauptschritt wird das Flag geprüft, sodass statt der echten Ausführung nur Logs ausgegeben werden
- Diese Prüfungen reichen jedoch nicht tief hinein, und innerhalb der Logik zur Berichtserstellung ist keine gesonderte Behandlung nötig
- Geprüft wird nur auf der übergeordneten Ebene, die über die Ausführung entscheidet
Fazit
- Anwendungen, die imperativ ausgeführt werden und Ergebnisse erzeugen, passen gut zu einer
--dry-run-Option
- Für reaktive Anwendungen, die auf Nachrichten warten, ist sie dagegen nicht geeignet
- Dass sie früh im Projekt hinzugefügt wurde, half erheblich dabei, die Entwicklungseffizienz zu steigern
- Sie ist nicht in jeder Situation nötig, wird aber im passenden Fall als sehr nützliches Werkzeug bewertet
Noch keine Kommentare.