Katalog
concept#Softwaretechnik#Governance#Qualitätssicherung

Code-Formatierung

Konventionen und Regeln zur einheitlichen Formatierung von Quellcode zur Verbesserung von Lesbarkeit und Wartbarkeit.

Code-Formatierung legt einheitliche Regeln für Einrückungen, Zeilenumbrüche, Leerzeichen und Namenskonventionen fest, um Quellcode lesbar und wartbar zu halten.
Etabliert
Niedrig

Klassifikation

  • Niedrig
  • Technisch
  • Design
  • Fortgeschritten

Technischer Kontext

GitHub/GitLab CI PipelinesEditor-Plugins (VSCode, JetBrains)Pre-commit Hook-Tools

Prinzipien & Ziele

Priorisiere Lesbarkeit über persönliche Präferenzen.Automatisiere Formatierung dort, wo möglich.Trenne Stiländerungen von funktionalen Änderungen in Reviews.
Umsetzung
Team, Domäne

Use Cases & Szenarien

Kompromisse

  • Automatisches Reformatting kann Commit-Historie verschmutzen.
  • Inkonsistente Anwendung führt zu Merge-Konflikten.
  • Unzureichende Kommunikation führt zu Widerstand im Team.
  • Automatisches Formatieren beim Commit oder vor dem Merge erzwingen.
  • Styleguide dokumentiert und leicht auffindbar machen.
  • Stil-Änderungen in eigenen Commits getrennt von funktionalen Änderungen halten.

I/O & Ressourcen

  • Existierender Quellcode
  • Styleguide oder Coding Conventions
  • Formatter-Tool und EditorConfig
  • Einheitlich formatierter Code
  • Automatisierte CI-Checks
  • Dokumentierter Styleguide

Beschreibung

Code-Formatierung legt einheitliche Regeln für Einrückungen, Zeilenumbrüche, Leerzeichen und Namenskonventionen fest, um Quellcode lesbar und wartbar zu halten. Sie reduziert Diskussionen in Code-Reviews, erleichtert automatisches Formatting und CI-Checks. Gilt für Stilregeln, Editor-Settings und formatter-Tools im Entwicklungsprozess. Anwendungsbereich reicht von individuellen Projekten bis zu organisationsweiten Styleguides.

  • Verbesserte Lesbarkeit und schnellere Code-Reviews.
  • Geringere Diskussionen über Stil in Pull Requests.
  • Einfachere Automatisierung und Tool-Integration.

  • Kann nicht alle stilistischen Präferenzen abdecken.
  • Initialer Aufwand zur Konfiguration und Durchsetzung.
  • Bei zu starker Restriktion mögliche Entwicklerfrustration.

  • Anzahl Stil-Commits

    Messen wie viele Commits primär Formatierungsänderungen enthalten.

  • PR-Diskussionsdauer

    Durchschnittliche Zeit, die für Stil-Diskussionen in Pull Requests aufgewendet wird.

  • CI-Format-Fehlerquote

    Anteil der Builds, die wegen Formatierungsfehlern scheitern.

Python-Projekt mit PEP8 und Black

Nutzen von Black zur automatischen Formatierung entsprechend PEP8-Konventionen.

Web-Frontend mit Prettier

Prettier als Standard-Formatter für JavaScript/TypeScript/HTML in CI und Editor.

C++-Projekt mit clang-format

Automatisches Reformatting in der Build-Pipeline, konsistente Code-Basis über Teams.

1

Analyse des aktuellen Codebestands und Identifikation von Abweichungen.

2

Auswahl und Konfiguration eines geeigneten Formatters und EditorConfig.

3

Integration von Formatierung in Pre-commit Hooks und CI-Pipeline.

4

Kommunikation der Regeln, Schulung und inkrementelles Anwenden auf Codebasis.

⚠️ Technische Schulden & Engpässe

  • Große Backlog-Aufgaben zur Reformatierung alter Module.
  • Inkonsistente Historie durch späteres massives Reformatting.
  • Technische Schulden durch nicht unterstützte Formatter-Versionen.
Legacy-CodeUnterschiedliche Entwickler-EditorenUnklare Stilregeln
  • Durchsetzung eines projektspezifischen Stils, der Tools inkompatibel macht.
  • Vollständiges Reformatieren ganzer Repositories in einem Commit ohne Review.
  • Ignorieren funktionaler Änderungen, weil Format-Checks fehlschlagen.
  • Formatter-Konfigurationen, die unvorhersehbare Änderungen erzeugen.
  • Nicht versionierte Editor-Settings führen zu Inkonsistenzen.
  • Zu frühe Durchsetzung ohne Abstimmung mit Stakeholdern.
Grundlegende Kenntnisse der verwendeten ProgrammierspracheVerständnis von CI/CD-KonfigurationenErfahrung mit Formatter-Tools
Lesbarkeit des CodesAutomatisierbarkeit in CI/CDKonsistenz über Module und Teams
  • Bestehende Codebasis mit vielen Style-Abweichungen
  • Begrenzte CI-Ressourcen für zusätzliche Prüfungen
  • Sprach- oder Plattform-spezifische Formatter-Unterschiede