Linting-as-Architecture

Aus devops.straight8.de
Zur Navigation springenZur Suche springen

Linting-as-Architecture bezeichnet einen modernen Ansatz in der Softwareentwicklung, bei dem architektonische Regeln und Strukturvorgaben (z. B. "Domain A darf nicht auf Domain B zugreifen") nicht nur in Dokumenten festgehalten, sondern als automatisierte Regeln in einem Linter (z. B. ESLint, ArchUnit) formuliert werden. [1][2][3][4]

Diese Regeln werden so konfiguriert, dass sie sofort anschlagen ("feuern"), wenn ein Entwickler gegen sie verstößt. [5]

Hier sind die Kernaspekte im Detail:

1. Architekturregeln als Linter-Regeln[Bearbeiten]

[6]

Statt Architekturverletzungen erst im Review zu entdecken, werden sie in Regeln übersetzt, die der Code-Analyse-Tool (Linter) versteht. [7]

  • Beispiele:
    • Keine zirkulären Abhängigkeiten: Regel, die verhindert, dass Modul A Modul B importiert, wenn B bereits A importiert.
    • Schichtenarchitektur-Erzwingung: Regel, die verbietet, dass die Präsentationsschicht (UI) direkt auf die Datenbank zugreift.
    • Verbotene Imports: Regel, die den Import veralteter Bibliotheken oder bestimmter Verzeichnisse blockiert. [8][9][10][11]

2. "Sofortiges Feuern" im Editor (IDE)[Bearbeiten]

  • Feedback-Loop: Sobald ein Entwickler einen Code schreibt, der die Regel verletzt, wird die Zeile im Editor (z. B. VS Code) sofort rot unterstrichen.
  • Vorteil: Der Entwickler korrigiert den Fehler, bevor er den Code speichert oder commitet. [12][13][14][15][16]

3. "Sofortiges Feuern" in der CI (Continuous Integration)[Bearbeiten]

  • Quality Gate: Die gleichen Regeln laufen in der CI/CD-Pipeline (z. B. bei jedem Git-Push oder Merge Request).
  • Vorteil: Sollte der Entwickler die Warnung im Editor übersehen haben, verhindert der Linter, dass der fehlerhafte Code überhaupt in den Hauptzweig (Main/Master) gemergt wird. [17]

Vorteile dieses Ansatzes[Bearbeiten]

  • Frühe Fehlererkennung: Architekturfehler werden Sekunden nach dem Schreiben erkannt, nicht erst Tage später.
  • Automatisierung: Die Einhaltung der Architektur muss nicht mehr manuell in Code Reviews überwacht werden.
  • Lerneffekt: Entwickler lernen durch die direkten Linter-Meldungen sofort, welche Strukturregeln gelten.
  • Konsistenz: Ein hoher technischer Standard wird über das gesamte Team hinweg erzwungen. [18][19][20][21]

Kurz gesagt: Linting-as-Architecture macht Architekturregeln durch Code-Analyse-Tools erzwingbar und im Entwicklungsprozess absolut transparent. [22][23]

Einzelnachweise[Bearbeiten]