Ziele von Linting
Linting verfolgt mehrere zentrale Ziele:
-
Fehler früh erkennen
– Syntaxfehler, ungenutzte Variablen oder fehlerhafte Importe werden sofort sichtbar, bevor sie im Laufzeitbetrieb Probleme verursachen.
-
Code-Konsistenz sicherstellen
– Linter helfen, dass der Code einem einheitlichen Stil folgt (Einrückungen, Benennungskonventionen, Semikolons, Leerzeichen usw.).
-
Lesbarkeit erhöhen
– Ein konsistenter Code-Stil erleichtert es anderen Entwickler:innen, den Code schnell zu verstehen.
-
Best Practices durchsetzen
– Viele Linter enthalten Regeln, die gängige Best Practices und Sicherheitsaspekte berücksichtigen.
-
Produktivität steigern
– Weniger Zeit für Diskussionen über Code-Formatierung, mehr Fokus auf Funktionalität und Architektur.
Merke: Linting überprüft automatisch den Quellcode auf Fehler, Stilabweichungen und Best Practices, sorgt für konsistenten, lesbaren Code, erhöht die Softwarequalität und spart Zeit, indem Probleme früh erkannt werden, bevor sie im Laufzeitbetrieb auftreten.
Wie funktioniert Linting?
Ein Linter analysiert den Quellcode statisch, das heißt ohne ihn auszuführen.
Dabei gibt es zwei Hauptkategorien von Prüfungen:
-
Syntax-Checks
Überprüfung, ob der Code überhaupt lauffähig ist, z. B. Klammern richtig geschlossen sind oder Variablen deklariert wurden.
-
Stil- und Qualitäts-Checks
Prüfung auf Verstöße gegen definierte Regeln, z. B.:
-
Ist die maximale Zeilenlänge überschritten?
-
Werden Variablen in camelCase oder snake_case geschrieben?
-
Gibt es ungenutzte Funktionen oder Variablen?
-
Wurde die Sicherheitsregel „keine eval()-Funktion verwenden“ eingehalten?
Beispiele aus der Praxis
-
JavaScript/TypeScript
-
ESLint ist das Standard-Tool, mit dem sich Projekte auf definierte Regeln trimmen lassen. Es warnt z. B. vor nicht deklarierten Variablen oder ungenutzten Imports.
-
Prettier wird oft zusätzlich genutzt, um reines Code-Formatting automatisch durchzuführen.
-
Python
-
Java
-
C/C++
ESLint für JavaScript
Wie oben bereits angemerkt, ist ein besonders bekanntes und weit verbreitetes Linting-Tool ESLint für Javascript. Auch ich benutze dieses für die Testautomatisierung mit JS. ESLint überprüft nicht nur den Code auf Fehler, sondern lässt sich auch flexibel konfigurieren: Teams können eigene Regeln definieren oder bestehende Regelsets verwenden. In Kombination mit Editoren wie Visual Studio Code werden Verstöße sofort beim Tippen angezeigt, wodurch Entwickler:innen Fehler frühzeitig beheben und gleichzeitig konsistenten, sauberen Code schreiben können.

Integration in den Entwicklungsprozess
Linting lässt sich in verschiedenen Phasen der Entwicklung einbinden:
-
Lokale Entwicklung
– Viele Entwickler:innen konfigurieren ihren Editor oder ihre IDE so, dass Verstöße sofort beim Schreiben angezeigt werden.
-
Pre-Commit Hooks
– Mit Tools wie Husky (JavaScript/Node.js) lassen sich Linting-Checks automatisch vor jedem Git-Commit ausführen.
-
Continuous Integration (CI)
– Linter laufen in Build-Pipelines (z. B. GitHub Actions, GitLab CI, Jenkins) und verhindern, dass fehlerhafter oder uneinheitlicher Code in den Haupt-Branch gelangt.
Vorteile von Linting
-
Höhere Codequalität
-
Einheitliche Standards im Team
-
Frühzeitiges Erkennen von Fehlern
-
Reduzierung technischer Schulden
-
Verbesserte Zusammenarbeit im Team
Grenzen von Linting
-
Kein Ersatz für Tests: Linter können Fehlerquellen aufzeigen, garantieren aber nicht die korrekte Funktionalität.
-
Falsche Positive: Manchmal melden Linter Probleme, die im Kontext unkritisch sind.
-
Einarbeitung nötig: Neue Teammitglieder müssen sich an die Regeln gewöhnen.
Fazit
Linting ist heute ein unverzichtbarer Bestandteil der Softwareentwicklung. Es hilft, sauberen, konsistenten und wartbaren Code zu schreiben, reduziert Fehlerquellen und erleichtert die Zusammenarbeit in Teams. In Kombination mit Tests, Code Reviews und CI/CD-Pipelines trägt Linting erheblich zur Gesamtqualität von Softwareprojekten bei.
Weiterführende Links
https://eslint.org/