Es ist oft die Rede von Linting und Static Code Analyzer doch was sind sie genau?
Sollen wir ihnen viel Aufmerksamkeit schenken oder sollen wir sie ignorieren, da sie uns sowieso nichts bringen? Zu all dem liste ich nun mehrere Punkte auf, um zu zeigen, dass Linter viel mehr sind als nur Tools, die den Code etwas einrücken.
Ich bin davon überzeugt, dass jeder eine Art von Linter oder Static Code Analyzer nutzen und sich mit dessen Konfiguration vertraut macht sollte.
Der Begriff Linting kommt von dem englischen Begriff Lint. Es handelt sich hierbei um kleine Fäden, die sich von Kleidung ablösen und dann Rückstände bilden. Ein gutes Beispiel für Lint ist der Rückstand, der in einem Kleidungstrockner ist, der dann beim Reinigen entfernt wird.
Bekannte Linter sind z.B. ESLint in der JavaScript- und PHPStan in der PHP-Welt. In diesem Beitrag werde ich mich mehr auf ESLint konzentrieren, da es viel präsenter in der Welt der Linter ist.
Was machen Static Code Analyzer?
- Code auf syntaktische Korrektheit überprüfen
- Überprüfen, ob der Code gesetzten Kriterien entspricht
Das hört sich wichtig an, jedoch was bringt mir das in der Praxis, wenn ich einen Linter mit einer vollumfänglichen Konfiguration nutze?
- Minimiert während der Entwicklung, das Vorkommen von Bugs und gibt mir somit mehr Zeit für die eigentliche Aufgabe.
- Man erhält frühzeitig Warnungen, wenn Funktionen veraltet sind und kann diese dann ersetzen.
- Der Code bleibt übersichtlich und strukturiert, da er immer meinen gesetzten Kriterien entspricht.
- Es werden einem Funktionen vorgeschlagen, die besser für die Logik geeignet sind.
- Der Code wird sicherer, weil man auf logische Fehler hingewiesen wird und Sicherheitsprobleme frühzeitig lösen kann.
Wir haben uns viel mit der Konfiguration beschäftigt und dazu auch eine eigene Konfiguration veröffentlicht. Diese ist mit Absicht sehr strikt, um den maximalen Benefit von Linting zu haben.
Hier eine kurze Zusammenfassung, was die Konfiguration unter anderem beinhaltet:
- Code Kommentare müssen aussagekräftig geschrieben werden.
- Imports werden sortiert und es wird sichergestellt, das alle exports named exports sind.
- Es wird auf Best-Pratises bei dem Gebrauch von Promises geachtet.
- Datei- und Variablennamen müssen nach einem einheitlichen Stil benannt werden.
- Man erhält Vorschläge für Funktionen, die besser für das Usecase geeignet sind.
- uvm.
Wenn man sich fragt, was es noch so in der Welt von ESLint gibt, empfiehlt es sich einen Blick auf Awesome ESlint zu werfen. Das ist eine Zusammenfassung von vielen Ressourcen rund um ESlint.
Quellen