Linting einführen ohne Team-Frust: Regeln, Auto-Fix, CI.
Linting einführen: Wie man Codestil-Regeln im Team durchsetzt, ohne dass alle ausrasten
Ein Linter ist das friedlichste Werkzeug zur Durchsetzung von Codestil – weil er nicht urteilt, sondern nur meldet.
Warum Linting oft so viel Widerstand erzeugt
Weil es sich anfühlt wie Kontrolle. "Muss ich jetzt wirklich nach deinem Stil schreiben?" – Dieser Gedanke kommt, wenn Linting top-down eingeführt wird, ohne das Team einzubinden.
Die Lösung: Das Team entscheidet gemeinsam die Regeln. Dann akzeptiert es sie auch.
Welche Linter für welchen Stack
PHP: PHP_CodeSniffer, PHP-CS-Fixer, PHPStan (Levels 1-8, progressiv strenger). JavaScript/TypeScript: ESLint (mit airbnb-config, standard oder custom Config). CSS/SCSS: Stylelint. Twig/Blade: keine direkten Linter, aber Prettier mit Plugin-Unterstützung.
Progressive Einführung in bestehenden Projekten
Bestehende Codebase hat 500 Linting-Fehler? Nicht versuchen, alle auf einmal zu fixen. Strategie: Baseline setzen (aktuelle Fehler ignorieren), neue Regeln nur für neue/geänderte Files durchsetzen, mit der Zeit die Baseline reduzieren.
eslint --ignore-path .eslintignore – mit einer initialen Ignore-Liste, die schrittweise kürzer wird.
Auto-Fix nutzen
Viele Linting-Fehler können automatisch behoben werden. eslint --fix, php-cs-fixer fix – das spart Zeit und nimmt viel Friktion. Was nicht auto-fixbar ist, muss manuell bearbeitet werden – da lohnt es sich, sparsam mit Regeln zu sein.
CI-Integration
Linting im CI-Pipeline macht es verbindlich. Kein Merge ohne grünen Lint-Check. Das nimmt die Diskussion aus dem Code-Review – der Linter hat entschieden, nicht der Reviewer.
Checkliste Linting
Linter für alle verwendeten Sprachen konfiguriert
Regeln im Team abgestimmt (nicht oktroyiert)
Progressive Einführung in Bestandsprojekten (Baseline)
Auto-Fix in Editor-Integration aktiv (Prettier, php-cs-fixer)
CI blockiert bei Linting-Fehlern
Pre-Commit Hook als letztes Sicherheitsnetz
Linting-Setup für euer Projekt?
markom.digital richtet Linting-Konfigurationen ein – pragmatisch, ohne Over-Engineering.