Zum Inhalt

September 2026

Fünf fast gleiche Skripte sind teurer als eines mit Konfiguration

Ausgangslage

Für eine wiederkehrende Aufgabe existiert ein Skript. Dann kommt ein zweiter Anwendungsfall dazu, und statt das Skript zu verallgemeinern, wird es kopiert und angepasst. Nach einigen Jahren liegen fünf Varianten nebeneinander, die zu achtzig Prozent identisch sind.

Der Aufwand entsteht nicht beim Schreiben, sondern danach. Jede Korrektur muss fünfmal nachgezogen werden, und beim vierten Mal wird eine vergessen. In einem Projekt für einen Großhändler waren es fünf Skripte für den Zugriff auf verschiedene Online-Kataloge. Unterschiedlich waren Adresse, Zugangsdaten, Datenstruktur und Zielverzeichnis. Gleich waren Anmeldung, Fehlerbehandlung, Protokollierung und Wiederholungslogik.

Lösung

Alles, was sich zwischen den Varianten unterscheidet, wandert in eine Konfigurationsdatei. Im Code bleibt nur, was für alle gleich ist. Aus fünf Skripten wird ein Starter und eine INI-Datei je Katalog.

[Katalog]
Name          = Beispiel
Adresse       = https://kataloge.example.org/export
Benutzer      = importdienst
Zielverzeichnis = D:\Import\Beispiel

[Verhalten]
WiederholungenMax = 3
WartezeitSekunden = 20

Das Einlesen in PowerShell bleibt überschaubar:

function Read-Konfiguration {
  param([Parameter(Mandatory)][string] $Pfad)

  $konfiguration = @{}
  $abschnitt     = ''

  foreach ($zeile in Get-Content -Path $Pfad -Encoding UTF8) {
    $zeile = $zeile.Trim()
    if ($zeile -eq '' -or $zeile.StartsWith('#')) { continue }

    if ($zeile -match '^\[(.+)\]$') {
      $abschnitt = $Matches[1]
      $konfiguration[$abschnitt] = @{}
      continue
    }

    if ($zeile -match '^(.+?)\s*=\s*(.*)$') {
      $konfiguration[$abschnitt][$Matches[1].Trim()] = $Matches[2].Trim()
    }
  }

  return $konfiguration
}

Warum INI und nicht JSON. Für Konfigurationen, die eine Fachabteilung pflegt, ist INI oft die bessere Wahl. Nicht weil das Format moderner wäre, sondern weil eine fehlende Klammer nicht die ganze Datei unbrauchbar macht und weil jeder den Aufbau versteht, der einmal eine Windows-Einstellung von Hand geändert hat. Für Konfigurationen, die nur Entwickler anfassen, gilt das Gegenteil: dort ist JSON mit Schema besser.

Das Ergebnis. Der Wartungsaufwand sank um rund achtzig Prozent. Wichtiger war ein anderer Effekt: Ein weiterer Katalog ließ sich anbinden, ohne dass ich gerufen werden musste. Die Fachabteilung legt eine Datei an und trägt vier Werte ein.

Wann sich der Umbau nicht lohnt. Bei zwei Varianten fast nie, denn die Konfigurationsschicht will selbst gepflegt und dokumentiert werden. Ab drei Varianten rechnet es sich meist, ab fünf immer. Und was nicht hineingehört, ist Ablauflogik: Wer Bedingungen und Verzweigungen in INI-Dateien abbildet, baut eine Programmiersprache nach — ohne Werkzeuge und ohne Fehlermeldungen.

Zurück zur Übersicht