Linting je typ statické analýzy kódu pro identifikaci potenciálních chyb kódové základny. Linters analyzuje kód na syntaktické chyby a problémy se stylem. Tento proces může pomoci předejít chybám, zlepšit čitelnost, prosadit osvědčené postupy a ušetřit čas.
Lining je standardní postup při vývoji softwaru. Přestože standardní knihovna Go nemá žádný linter, v ekosystému Go existuje mnoho nástrojů pro linting od jiných výrobců. Patří mezi ně balíčky GolangCI Lint, Go Meta Linter a Staticcheck.
Balíček GolangCI Lint
Balíček golangci-lint je výkonný a flexibilní linter pro Go, který vám může pomoci identifikovat a opravit chyby kódu. Snadné použití, rozšiřitelnost a komplexní sada vestavěných linterů z něj činí oblíbenou volbu pro mnoho vývojářů Go.
GolangCI Lint analyzuje zdrojový kód Go a poskytuje zpětnou vazbu ohledně potenciálních chyb, bezpečnostních problémů a porušení stylu kódování s funkcí pro vysoce výkonnou analýzu a kontinuální integraci (CI) Podpěra, podpora.
Spusťte tento příkaz terminálu v pracovním adresáři vašeho projektu a nainstalujte balíček Golangci-lint:
nainstalujte github.com/golangci/golangci-lint/cmd/[email protected]
Vaše verze Go musí být 1.19 nebo novější, aby příkaz mohl balíček nainstalovat. Můžete také zkontrolovat instalace golangci-lint stránku pro další dostupné způsoby instalace.
Příkaz nainstaluje GolangCI do vašeho systému jako nástroj CLI. Instalaci můžete ověřit pomocí tohoto příkazu:
golangci-lint --verze
Příkaz by měl zobrazit verzi golangci-lint, kterou jste nainstalovali.
Konfigurace Linteru
Linters jsou velmi univerzální, takže chcete-li nainstalovat linter, budete muset nakonfigurovat linter pro váš projekt.
The golangci-lint použití nástroje soubory YAML pro konfiguraci. V souboru YAML určíte nastavení vašeho linteru, aby se balíček mohl číst.
Výchozí konfigurační soubor můžete vytvořit pomocí tohoto příkazu:
konfigurace golangci-lint > .golangci.yml
Příkaz vytvoří nový soubor s názvem .golangci.yml ve vašem aktuálním adresáři. Můžete pokračovat v úpravě tohoto souboru a nakonfigurovat linter pro váš projekt.
Zde je obsah .golangci.yml soubor, když spustíte příkaz:
Soubor obsahuje informace o golangci-lint nástroj a možnosti, které můžete použít ke konfiguraci procesu zápisu.
Chcete-li přidat pravidla lintingu pro váš program, budete muset soubor upravit. Úplný seznam dostupných linterů naleznete na golangci-lint Linters dokumentační stránku. Nebo můžete spustit help linters příkaz k zobrazení linterů na příkazovém řádku:
golangci-lint help linters
Příkaz vypíše všechny Lintery dostupné pro verzi balíčku, který jste nainstalovali.
Spuštění Linteru
Zde je ukázka lincování následujícího „Ahoj, světe!“ program, který používá net/http balík:
balík hlavní
import (
"fmt"
"net/http"
)funcpsovod(w http. ResponseWriter, r *http. Žádost) {
fmt. Fprintf (w, "Ahoj světe!")
}
funchlavní() {
http. HandleFunc("/", manipulant)
http. Poslouchejte a servírujte (":8080", nula)
}
Tento program definuje a psovod funkce, která přijímá instance Writeru a požadavku z http balíčky ResponseWriter a Žádost typy struktur. The psovod funkce píše "Ahoj, světe!" klientovi na vyžádání.
The hlavní funkce připojí / cesta k psovod funkce a ListenAndServe funkce spustí server na portu localhost 8080.
The ListenAndServe funkce vrátí chybu, ale program ji ignoruje. Tato konfigurace zajistí, že linter zvýrazní problém:
linters-nastavení:
mrtvý kód:
# ignorovat všechny testovací soubory
přeskakovat soubory: "_test\\.go$"
govet:
# zakázat kontrolu stínování
kontrolní stínování: Nepravdivé
golint:
# ignorovat chyby o exportovaných názvech funkcí
vyloučit-použití-výchozí- exportováno: skutečný
# ignorovat chyby týkající se podtržítek v balík jména
vyloučit-neužitečné-jmenování: skutečný
gosec:
# zakázat testy gosec, protože jsou pomalé a mohou produkovat Nepravdivé pozitiva
testy: Nepravdivé
nepoužitý:
# hlásí nepoužité argumenty funkcí, ale ne nepoužívané proměnné
šekově exportováno: skutečný
check-blank: skutečný
kontrolní testy: skutečný
Po nastavení této konfigurace linter můžete spustit linter pomocí běh příkaz:
golangci-lint běh
# ekvivalentní, spouští všechny programy
golangci-lint run ./...
Případně můžete lint konkrétní soubory zadáním názvu souboru nebo cesty za běh příkaz:
golangci-lint spustit dir1 dir2/... dir3/file1.go
Zde je výsledek spuštění linter proti programu:
The golangci-lint nástroj je všestranný a vaše konfigurace se bude lišit v závislosti na vašem projektu.
Své projekty v JavaScriptu můžete posílat pomocí ESLint
Linting je oblíbeným úkolem vývoje softwaru a většina programovacích jazyků a IDE poskytuje nástroje pro programy na vytváření linek. Pro JavaScript je ESLint nejoblíbenější linter.
Eslint poskytuje několik pravidel liningu, která se řídí průmyslovými standardy v nástrojích CLI, IDE a textovém editoru, díky čemuž je nástroj lining skvělou volbou pro vývojáře JavaScriptu.