Was ist ein Linter? Kurz gesagt, ein Linter ist ein Tool, mit dem Sie Ihren Code verbessern können. Das Konzept von Linter ist nicht exklusiv für JavaScript. Trotzdem würde ich sagen, dass die Mehrheit der Leute, die versuchen, etwas über Linter zu lernen, an denen interessiert ist, die auf JavaScript (oder allgemeiner auf dynamisch typisierte Sprachen) abzielen.)

Im heutigen Beitrag beantworten wir die Titelfrage und vieles mehr. Wir beginnen mit der Definition des Begriffs “ Linter.,“Sie werden verstehen, was dieses Ding ist und wie es entstanden ist. Dann sprechen wir über die Vorteile von Lintern und sprechen über die verschiedenen Arten von Schecks, die sie anbieten.

Abschließend zeigen wir Ihnen einige Beispiele von Lintern, die Ihnen zur Verfügung stehen, geben einige praktische Tipps zum Einstieg und schließen einige abschließende Überlegungen ab.

Los geht ‚ s.

Was Ist ein Linter? Einen Kurzen Überblick

beginnen wir mit der Definition, was ein linter ist. Wie Sie in der Einleitung gelesen haben, ist ein Linter ein Tool, mit dem Sie Ihren Code verbessern können. Aber auf welche Weise macht es das?, Die Antwort lautet: Indem Sie Ihren Quellcode analysieren und nach Problemen suchen.

Der Begriff Linter stammt von einem Tool namens „lint“, das C-Quellcode analysiert. Der Informatiker Stephen C. Johnson entwickelte dieses Dienstprogramm 1978, als er bei Bell Labs arbeitete.

Sowohl das ursprüngliche Lint-Tool als auch frühere ähnliche Dienstprogramme hatten das Ziel, den Quellcode zu analysieren, um Compiler-Optimierungen zu erstellen. Im Laufe der Zeit fügten Lint-ähnliche Tools viele andere Arten von Überprüfungen und Überprüfungen hinzu.,

Wie wir jedoch während der Einführung erwähnt haben, sind Linter nicht auf kompilierte Sprachen beschränkt. Im Gegenteil: Wir könnten sagen, dass Linter für interpretierte Sprachen viel wertvoller sind, da es während der Entwicklungszeit keinen Compiler gibt, der Fehler erkennt.

Vorteile von Linting

Sie haben gerade gelernt, die definition von linter. Sie wissen jetzt auch, wann und von wem diese Art von Werkzeug erfunden wurde. Sie haben wahrscheinlich zumindest eine allgemeine Vorstellung davon, was ein Linter für Ihren Code tun kann., Aber in praktischer Hinsicht, was sind die Vorteile, die diese Art von Werkzeug bieten kann? Hier sind einige:

  • Weniger Fehler in der Produktion
  • Lesbarer, wartbarer und konsistenter Code
  • Weniger Diskussionen über Codestil und ästhetische Auswahl bei Codeüberprüfungen
  • Objektive Messung der Codequalität
  • Sicherer und performanter Code

Der nächste Abschnitt behandelt einige der Arten von Überprüfungen, die Linter bereitstellen. Nachdem Sie es gelesen haben, werden Sie verstehen, wie Linter die oben genannten Vorteile bieten.,

Arten von Prüfungen Linter Bieten

Wie Sie gerade gelesen haben, analysierte das ursprüngliche Lint-Tool Code, um Optimierungen für Compiler zu ermöglichen, aber im Laufe der Zeit wurden fortgeschrittenere und vollständigere Tools veröffentlicht. Heutzutage haben wir unzählige verschiedene Liner, die viele Arten von Kontrollen bieten. Lassen Sie uns schnell einige von ihnen durchgehen.

Syntaxfehler

Die grundlegendste und wichtigste Art von Überprüfungen, die ein Linter durchführen kann, sind Syntaxfehlerüberprüfungen, wenn es um JavaScript und andere interpretierte Sprachen geht., Entwickler sollten nicht einmal Code an die Hauptzeile senden, ohne Syntaxüberprüfungen zu bestehen.

Eine Möglichkeit, dies zu erreichen, besteht darin, Pre-Commit-Hooks zu verwenden, die verhindern, dass Benutzer ihren Code pushen, wenn die Linter-Überprüfung anzeigt, dass Probleme mit dem Code vorliegen.

Einhaltung von Code-Standards

Eine weitere wichtige Art der Überprüfung, die Linters bietet, ist die Einhaltung von Codierungsstandards. Manche Leute mögen dies als rein ästhetisches Anliegen abtun, aber sie würden sich irren., Ein einziger konsistenter Codierungsstil ist vorteilhaft, um die kognitive Belastung durch Lesen, Verstehen und Beibehalten von Code zu verringern. Eine Codebasis mit einem konsistenten Codestil ist leichter zu verstehen, und die Entwickler, die sie verwenden, werden weniger Fehler einführen.

Deshalb gibt es Linter, die sich auf die Überprüfung von Codebasen auf die Einhaltung von Codestilen spezialisiert haben. Einige Tools sind eigensinnig, dh sie verfügen über einen vordefinierten Satz von Regeln und Konventionen, die nicht geändert werden können., Auf der anderen Seite gibt es Tools, die hochgradig konfigurierbar sein können, sodass der Benutzer das Tool an seine bevorzugten Codierungsstile anpassen kann.

Mögliche Probleme (alias Code-Gerüche)

Code-Gerüche sind Anzeichen dafür, dass etwas mit Ihrem Code nicht stimmt. Es ist erstaunlich nützlich, ein Tool zu haben, um diese Zeichen automatisch zu erkennen, damit Sie sie bei Bedarf weiter untersuchen können.

Zum Beispiel betrachten viele Leute—einschließlich mir-lange Funktionen als Code-Geruch. Sie können also Ihren Linter so konfigurieren, dass er Funktionen erkennt, die länger als eine bestimmte Anzahl von Zeilen sind.,

Ein weiterer häufig zitierter Code-Geruch ist Code, der zu komplex ist. Aber wir sprechen nicht subjektiv über Komplexität, sondern sehr objektiv. Zyklomatische Komplexität ist eine nützliche Codemetrik, die die Anzahl möglicher Ausführungspfade innerhalb einer Funktion darstellt. Linter können die zyklomatische Komplexität Ihrer Funktionen berechnen und solche kennzeichnen, die höher als ein bestimmter Schwellenwert sind.

Sicherheitsprüfungen

Zuletzt haben wir Sicherheit, die ohne Zweifel die kritischste Facette einer modernen Anwendung ist, insbesondere einer Web-App., Machen Sie es falsch, und die Folgen können katastrophal sein, nicht nur in Bezug auf Geld und Ruf, sondern auch rechtliche (denken Sie an die DSGVO und ähnliche Vorschriften.)

Glücklicherweise ist dies ein weiterer Bereich, in dem Linter hilfreich sein können, da es Tools gibt, die wichtige Sicherheitsprüfungen bieten.

Statische Analyse verstehen

Wir haben erklärt, was Linter sind und warum sie nützlich sind. Außerdem haben wir die wichtigsten Arten von Lintern abgedeckt. Sie sind jetzt bereit, einige Beispiele für Linting-Tools für eine Vielzahl von Anwendungen und Zielprogrammiersprachen kennenzulernen.,

Bevor wir dort ankommen, nehmen wir jedoch einen kurzen Exkurs, um über statische Analysen zu sprechen, da dieser Begriff im nächsten Abschnitt erscheint und wir ihn noch nicht definiert haben.

Also, was ist statische Analyse? Sie können sich statische Analysen als Pre-Run-Debug vorstellen. Statische Analyse besteht aus der Verwendung von Tools, die Ihren Quellcode auf der Suche nach Fehlern, mangelnder Einhaltung von Regeln oder Konventionen oder anderen potenziellen Problemen analysieren.

Der nächste Abschnitt zeigt Beispiele von Lintern, die nach der Art der von ihnen durchgeführten Überprüfung kategorisiert sind., Einträge, die unter statische Analyse kategorisiert sind, beziehen sich hauptsächlich auf die ersten und dritten Lintertypen, die im obigen Abschnitt aufgeführt sind.

Beispiele für Linter

Lassen Sie uns nun kurz einige Beispiele für Linter erwähnen. Wir zeigen Beispiele für verschiedene Programmiersprachen, kategorisiert nach der Art der Überprüfung, die sie bieten. Denken Sie daran, dass einige Tools möglicherweise mehr als eine Art von Überprüfung anbieten, weshalb einige Tools in mehr als einer Kategorie angezeigt werden.,>

  • StandardJS für JavaScript
  • PHPMD für PHP
  • StyleCop für C#
  • Linters für Sicherheit

    • Gosec für Go
    • Bandit für Python
    • LGTM für mehrere Sprachen, einschließlich JavaScript, Python und C#

    Linters für Codierungskonventionen / Codierungsformatierung

    • Hübscher für JavaScript
    • Rubocop for Ruby
    • StyleCop for C#

    Linters in JavaScript: How to Get Started

    Bevor wir den Artikel abschließen, möchten wir Ihnen eine kurze, aber praktische Anleitung zum Einstieg in das Linting in JavaScript geben., Da wir über JavaScript sprechen, ist es keine Überraschung, dass Sie aus vielen Tools auswählen können. Da wir einen auswählen müssen, gehen wir mit ESLint.

    Installieren von ESLint

    Als erstes: Installieren wir den Linter. ESLint wird über npm installiert, was bedeutet, dass Sie einen Knoten haben müssen.js installiert. Wenn Sie es noch nicht haben, laden Sie es herunter und installieren Sie es, damit wir fortfahren können.

    Mit Knoten.js installiert, wir sind bereit, ESLint über npm zu installieren., the following command:

    1
    npm install eslint –global

    However, this isn’t the approach recommended in their documentation., Stattdessen sollten Sie ESLint wahrscheinlich pro Projekt installieren.,ory for your project:

    1
    mkdir eslint-sample-app

    Then, cd into the directory and run the command below to create a package.,json-Datei (es wird unterwegs benötigt.)

    Npm stellt Ihnen einige Fragen., Drücken Sie einfach die Eingabetaste, um die Standardantwort für alle zu verwenden.,did, by running:

    1
    npm init

    Wenn Sie den obigen Befehl ausführen, fragt ESLint Sie, wofür Sie ihn verwenden möchten., Die Optionen sind: nur Syntax überprüfen, Syntax überprüfen und Probleme finden, Syntax überprüfen, Probleme finden und Codestil erzwingen.

    gehen wir mit der letzten option. Verwenden Sie die Pfeiltasten, um Optionen zu ändern, und geben Sie zur Bestätigung ein. ESLint möchte dann wissen, welche Arten von Modulen Ihr Projekt verwendet. Die Antworten lauten:

    • JavaScript-Module
    • CommonJS-Module
    • Keine dieser

    Wählen Sie JavaScript-Module und fahren Sie fort. Danach werden Sie gefragt, welches Framework Ihr Projekt verwendet., Die Antworten sind wiederum drei:

    • React
    • Vue
    • Keine dieser

    In unserem Fall wählen wir die Option „keine“. Die nächste Frage ist eine „Ja / Nein“ – Frage: Verwendet Ihr Projekt Typescript? Drücken Sie „N“ für Nein. Danach werden Sie gefragt, ob Ihr Code im Browser oder im Knoten ausgeführt wird.

    ESLint fragt Sie dann, wie Sie einen Codestil für Ihr Projekt definieren können. Es bietet Ihnen drei Möglichkeiten: mit einem beliebten Style Guide, Beantwortung von Fragen zu Ihren Stilpräferenzen, oder inspizieren Sie Ihre .js-Dateien. Wählen Sie die erste option., Dann werden Sie aufgefordert, zwischen drei Stilen zu wählen: AirBNB, Standard und Google. Lassen Sie uns für dieses Tutorial Google auswählen.

    ESLint fragt dann, welches Format Sie für Ihre Konfiguration bevorzugen. Wählen Sie YAML. Wenn Sie gefragt werden, ob Sie den ausgewählten Codestil mit npm herunterladen möchten, antworten Sie mit „Ja.“

    Verwenden Sie ESLint, um eine Datei zu überprüfen

    Nachdem der Download abgeschlossen ist, können Sie ESLint verwenden, um eine Datei zu überprüfen. Aber dafür brauchen Sie eine Datei zu überprüfen. Wenn Sie zufällig eine haben .js-Datei irgendwo hängen, kopieren Sie es in Ihr Projektverzeichnis., Alternativ können Sie dieses Repository, das eine einzelne Datei enthält, klonen und für Ihre Tests verwenden.,

    Um die Datei zu überprüfen, verwenden Sie den folgenden Befehl:

    JavaScript

    1

    npx eslint –init

    Dies ist das Ergebnis, das ich durch Ausführen des Befehls erhalte, der auf die Begrüßung abzielt.,js-Datei, die Sie aus dem Repository auf GitHub herunterladen können:

    1

    npx eslint path-to-your-file.,js

    Wie Sie sehen können, habe ich drei Fehler und keine Warnungen.

    Was Ist ein Linter? Ein großartiges Werkzeug für Ihren Toolbelt

    In diesem Beitrag haben wir das Konzept eines Linter-Tools untersucht. Jetzt haben Sie eine solide Vorstellung davon, was Linters sind und warum Sie einen adoptieren sollten., Darüber hinaus haben Sie verschiedene Arten von Linter-Tools und Beispiele für jede Kategorie kennengelernt, die auf mehrere verschiedene Programmiersprachen abzielen.

    Außerdem wissen Sie jetzt, wie Sie mit einem beliebten Linting-Tool für JavaScript beginnen können: ESLint.

    Was sind die nächsten Schritte?, Es gibt verschiedene Dinge, die Sie als nächstes lernen können:

    • Regeln deaktivieren
    • Aktivieren Sie eine Regel als Warnung oder Fehler
    • Linting in Ihren Build-Prozess integrieren
    • Erweiterte Konfigurationsoption
    • Erstellen Sie Ihre benutzerdefinierten Regeln

    Sie können natürlich auch mit anderen Lintern experimentieren. Nur weil wir ESLint für diesen Leitfaden ausgewählt haben, heißt das nicht, dass Sie damit festhalten sollten.

    Vergessen Sie nicht, dass Linting, obwohl es erstaunlich wertvoll ist, nur eine weitere Waffe in Ihrem Arsenal ist., Sie sollten automatisierte Tests, Codeüberprüfungen, Refactoring und viele andere Praktiken, Techniken und Tools nicht vergessen, die Ihnen im endlosen Kampf gegen das Chaos in Ihrer Codebasis zur Verfügung stehen.

    Und unter all den Praktiken, Techniken und Tools, die Sie nutzen können, um Ihre Codebasis zu verbessern, können wir nicht anders, als End-to-End-Tests herauszuarbeiten, die oft übersehen werden Art von Tests. Und das ist eine Schande. Mit dem richtigen Tool, das Ihnen hilft, können hochwertige End-to-End-Tests ein starker Verbündeter in Ihrem Kampf gegen Code-Entropie sein.

    1
    2
    3
    4
    5
    6
    F:\demos\eslint-demo\greeter.,js
    2: 3 Fehler Fehlender JSDoc-Kommentar require-jsdoc
    3: 1 Fehler Diese Zeile hat eine Länge von 86. Maximal erlaubt ist 80 max-len
    10: 4 Fehler Unerwartet ‚this‘ no-invalid-this
    ✖ 3 Probleme (3 Fehler, 0 Warnungen)