Linting ist eine Art statischer Codeanalyse zur Identifizierung potenzieller Codebasisfehler. Linters analysieren Code auf Syntaxfehler und Stilprobleme. Der Prozess kann dabei helfen, Fehler zu vermeiden, die Lesbarkeit zu verbessern, Best Practices durchzusetzen und Zeit zu sparen.
Linting ist eine Standardpraxis in der Softwareentwicklung. Obwohl kein Linter in die Standardbibliothek von Go integriert ist, gibt es im Go-Ökosystem viele Linting-Tools von Drittanbietern. Dazu gehören die Pakete GolangCI Lint, Go Meta Linter und Staticcheck.
Das GolangCI Lint-Paket
Das golangci-lint-Paket ist ein leistungsstarker und flexibler Linter für Go, der Ihnen helfen kann, Codefehler zu identifizieren und zu beheben. Die Benutzerfreundlichkeit, Erweiterbarkeit und der umfassende Satz integrierter Linters des Pakets machen es zu einer beliebten Wahl für viele Go-Entwickler.
GolangCI Lint analysiert den Go-Quellcode und gibt Feedback zu potenziellen Fehlern, Sicherheitsproblemen und Codierungsstilverletzungen mit Funktionalität für Hochleistungsanalyse und Continuous Integration (CI) Unterstützung.
Führen Sie diesen Terminalbefehl im Arbeitsverzeichnis Ihres Projekts aus, um das Golangci-lint-Paket zu installieren:
Gehen Sie zur Installation von github.com/golangci/golangci-lint/cmd/[email protected]
Ihre Go-Version muss 1.19 oder höher sein, damit der Befehl das Paket installieren kann. Sie können auch die überprüfen golangci-lint-Installationen Seite für andere verfügbare Installationsmethoden.
Der Befehl installiert GolangCI als CLI-Tool auf Ihrem System. Sie können die Installation mit diesem Befehl überprüfen:
golangci-lint --version
Der Befehl sollte die installierte Version von golangci-lint anzeigen.
Konfiguration des Linters
Linter sind sehr vielseitig, also um einen Linter zu installieren, müssen Sie den Linter für Ihr Projekt konfigurieren.
Der golangci-lint Werkzeug verwendet YAML-Dateien für die Konfiguration. Sie geben die Einstellungen Ihres Linters in der YAML-Datei an, die das Paket lesen soll.
Mit diesem Befehl können Sie eine Standardkonfigurationsdatei erstellen:
golangci-lint config > .golangci.yml
Der Befehl erstellt eine neue Datei mit dem Namen .golangci.yml in Ihrem aktuellen Verzeichnis. Sie können mit der Bearbeitung dieser Datei fortfahren, um den Linter für Ihr Projekt zu konfigurieren.
Hier ist der Inhalt der .golangci.yml Datei, wenn Sie den Befehl ausführen:
Die Datei enthält Informationen über die golangci-lint Tool und die Optionen, die Sie verwenden können, um Ihren Listungsprozess zu konfigurieren.
Sie müssen die Datei bearbeiten, um die Linting-Regeln für Ihr Programm hinzuzufügen. Die vollständige Liste der verfügbaren Linter finden Sie auf der golangci-lint Linters Dokumentationsseite. Oder Sie können die ausführen Linter helfen Befehl, um die Linters auf Ihrer Befehlszeile anzuzeigen:
golangci-lint hilft Linters
Der Befehl gibt alle Linters aus, die für die von Ihnen installierte Version des Pakets verfügbar sind.
Läuft den Linter
Hier ist eine Demonstration des Lintings des folgenden „Hello, World!“ Programm, das die verwendet net/http Paket:
Paket hauptsächlich
importieren (
"fmt"
"net/http"
)FunkHandler(mit http. ResponseWriter, r *http. Anfrage) {
fmt. Fprintf (w, "Hallo Welt!")
}
Funkhauptsächlich() {
http. HandleFunc("/", Hundeführer)
http. ListenAndServe(":8080", Null)
}
Dieses Programm definiert a Handler Funktion, die Writer- und Request-Instanzen aus der annimmt http Pakete ResponseWriter Und Anfrage Strukturtypen. Der Handler Funktion schreibt „Hello, World!“ dem Kunden auf Anfrage.
Der hauptsächlich Funktion mountet die / Weg zum Handler Funktion und die ListenAndServe Die Funktion startet den Server am localhost-Port 8080.
Der ListenAndServe Die Funktion gibt einen Fehler zurück, aber das Programm ignoriert ihn. Diese Konfiguration stellt sicher, dass der Linter das Problem hervorhebt:
Linters-Einstellungen:
Totcode:
# alle Testdateien ignorieren
Skip-Dateien: "_test\\.go$"
Govet:
# Shadowing-Check deaktivieren
Check-Shadowing: FALSCH
Golint:
# Fehler bei exportierten Funktionsnamen ignorieren
ausschließen-verwenden-Standard-exportiert: WAHR
# Ignoriere Fehler über Unterstriche in Paket Namen
ausschließen-nutzlose-benennung: WAHR
gosec:
# Gosec-Tests deaktivieren, da sie langsam sind und produzieren können FALSCH Positives
Prüfungen: FALSCH
ungebraucht:
# unbenutzte Funktionsargumente melden, aber keine unbenutzten Variablen
check-exportiert: WAHR
Häkchen: WAHR
Check-Tests: WAHR
Nachdem Sie diese Linter-Konfiguration festgelegt haben, können Sie den Linter mit der ausführen laufen Befehl:
golangci-lint ausführen
# Äquivalent, läuft alle Programme
golangci-lint laufen ./...
Alternativ können Sie bestimmte Dateien linten, indem Sie den Dateinamen oder Pfad nach der angeben laufen Befehl:
golangci-lint start dir1 dir2/... dir3/file1.go
Hier ist das Ergebnis der Ausführung des Linters gegen das Programm:
Der golangci-lint Das Tool ist vielseitig und Ihre Konfiguration hängt von Ihrem Projekt ab.
Sie können Ihre JavaScript-Projekte mit ESLint linten
Linting ist eine beliebte Softwareentwicklungsaufgabe, und die meisten Programmiersprachen und IDEs bieten Tools für Linting-Programme. Für JavaScript ist ESLint der beliebteste Linter.
Eslint bietet mehrere Linting-Regeln, die Industriestandards in den CLI-, IDE- und Texteditor-Tools entsprechen, was das Linting-Tool zu einer großartigen Wahl für JavaScript-Entwickler macht.