Wie automatisiert man seinen Coding-Stil? Ein kurzer Leitfaden zu Code-Formatierung, Pre-commit und CI
Von Idego Group

Code dient als Kommunikation zwischen Entwicklern. Während wir Programmiersprachen verwenden, um Computer zu instruieren, kommuniziert Code auch mit Kollegen – sowohl aktuellen als auch zukünftigen Teammitgliedern. Dieser Leitfaden untersucht die Automatisierung von Code-Formatierungs- und Stilprüfungen zur Verbesserung der Übersichtlichkeit.
Wie Robert C. Martin in Clean Code anmerkt, wird Code viel häufiger gelesen als geschrieben, mit einem Verhältnis von mehr als 10 zu 1. Die Verbesserung der Lesbarkeit verbessert direkt die Wartbarkeit, beschleunigt das Onboarding, verhindert Code-Degradierung und vereinfacht die Entwicklungsarbeit insgesamt.
Der Leitfaden demonstriert die Verwendung von Black, einem Open-Source-Python-Formatter, für automatisiertes Code-Styling. Die Installation ist über pip unkompliziert, und die grundlegende Nutzung erfordert einen einzigen Befehl, um ein gesamtes Verzeichnis zu formatieren.
Pre-commit, ein Framework zur Verwaltung von Git-Hooks, automatisiert Formatierungsprüfungen vor Commits. Nach Installation und Konfiguration können Entwickler konsistente Standards in ihrem Team etablieren. Das Framework ist sprachunabhängig und funktioniert in verschiedenen Projekttypen.
Beim Versuch, unformatierten Code zu committen, löst pre-commit einen Fehler aus und formatiert die Dateien automatisch. Ein zweiter Commit-Versuch gelingt mit dem ordnungsgemäß formatierten Code.
Zur zusätzlichen Durchsetzung können Continuous-Integration-Pipelines pre-commit-Prüfungen bei Merge-Requests ausführen und verhindern, dass schlecht formatierter Code in Hauptbranches gelangt.
Ein praktischer Aspekt: Repository-weite Formatierungs-Commits verschleiern die Änderungshistorie in git blame. Git 2.23+ unterstützt das Ignorieren spezifischer Commits durch .git-blame-ignore-revs-Dateien, wodurch eine genaue Attributionshistorie erhalten bleibt.