Linting är en typ av statisk kodanalys för att identifiera potentiella kodbasfel. Linters analyserar kod för syntaxfel och stilproblem. Processen kan hjälpa till att förhindra buggar, förbättra läsbarheten, tillämpa bästa praxis och spara tid.
Linting är en standardpraxis inom mjukvaruutveckling. Även om det inte finns någon linter inbyggd i Gos standardbibliotek, finns många lintingverktyg från tredje part i Go-ekosystemet. Dessa inkluderar paketen GolangCI Lint, Go Meta Linter och Staticcheck.
GolangCI Lint-paketet
Golangci-lint-paketet är en kraftfull och flexibel linter för Go som kan hjälpa dig att identifiera och åtgärda kodfel. Paketets användarvänlighet, töjbarhet och omfattande uppsättning inbyggda linters gör det till ett populärt val för många Go-utvecklare.
GolangCI Lint analyserar Go-källkoden och ger feedback om potentiella buggar, säkerhetsproblem och kodningsstilsöverträdelser med funktionalitet för högpresterande analys och kontinuerlig integration (CI) Stöd.
Kör detta terminalkommando i ditt projekts arbetskatalog för att installera Golangci-lint-paketet:
installera github.com/golangci/golangci-lint/cmd/[email protected]
Din Go-version måste vara 1.19 eller senare för att kommandot ska kunna installera paketet. Du kan också kontrollera golangci-lint installationer sida för andra tillgängliga installationsmetoder.
Kommandot kommer att installera GolangCI på ditt system som ett CLI-verktyg. Du kan verifiera installationen med detta kommando:
golangci-lint --version
Kommandot ska visa den version av golangci-lint som du har installerat.
Konfigurera Linter
Linters är mycket mångsidiga, så för att installera en linter måste du konfigurera lintern för ditt projekt.
De golangci-lint verktyg använder YAML-filer för konfiguration. Du anger din linters inställningar i YAML-filen för att paketet ska läsas.
Du kan skapa en standardkonfigurationsfil med detta kommando:
golangci-lint config > .golangci.yml
Kommandot skapar en ny fil med namnet .golangci.yml i din nuvarande katalog. Du kan fortsätta att redigera den här filen för att konfigurera linter för ditt projekt.
Här är innehållet i .golangci.yml fil när du kör kommandot:
Filen innehåller information om golangci-lint verktyg och alternativen du kan använda för att konfigurera din noteringsprocess.
Du måste redigera filen för att lägga till linting-reglerna för ditt program. Du kan hitta hela listan över tillgängliga linters på golangci-lint linters dokumentationssida. Eller så kan du köra hjälp linters kommando för att se linters på din kommandorad:
golangci-lint hjälp linters
Kommandot matar ut alla Linters som är tillgängliga för den version av paketet du har installerat.
Att köra Linter
Här är en demonstration av att lindra följande "Hello, World!" program som använder net/http paket:
paket huvud
importera (
"fmt"
"net/http"
)funchanterare(w http. ResponseWriter, r *http. Begäran) {
fmt. Fprintf (w, "Hej världen!")
}
funchuvud() {
http. HandleFunc("/", hanterare)
http. Lyssna OchServe(":8080", noll)
}
Detta program definierar en hanterare funktion som tar in skribent- och begärandeinstanser från http paketets ResponseWriter och Begäran strukturtyper. De hanterare funktion skriver "Hej, värld!" till kunden på begäran.
De huvud funktionen monterar / vägen till hanterare funktion och ListenAndServe funktionen startar servern på localhost-porten 8080.
De ListenAndServe funktion returnerar ett fel, men programmet ignorerar det. Denna konfiguration säkerställer att lintern belyser problemet:
linters-inställningar:
dödkod:
# ignorera alla testfiler
hoppa över filer: "_test\\.go$"
govet:
# inaktivera skuggningskontroll
check-shadowing: falsk
golint:
# ignorera fel om exporterade funktionsnamn
exkludera-användning-standard-exporterat: Sann
# ignorera fel om understreck i paket namn
exclude-useless-name: Sann
gosec:
# inaktivera gosec-tester, eftersom de är långsamma och kan producera falsk positiva
tester: falsk
oanvänd:
# rapportera oanvända funktionsargument, men inte oanvända variabler
check-exporterade: Sann
bockblank: Sann
check-test: Sann
Efter att ha ställt in denna linter-konfiguration kan du köra lintern med springa kommando:
golangci-lint run
# motsvarande, kör alla program
golangci-lint run ./...
Alternativt kan du luta specifika filer genom att ange filnamnet eller sökvägen efter springa kommando:
golangci-lint kör dir1 dir2/... dir3/file1.go
Här är resultatet av att köra linter mot programmet:
De golangci-lint verktyget är mångsidigt och din konfiguration kommer att variera beroende på ditt projekt.
Du kan linta dina JavaScript-projekt med ESLint
Linting är en populär uppgift för mjukvaruutveckling, och de flesta programmeringsspråk och IDE: er tillhandahåller verktyg för linting-program. För JavaScript är ESLint den mest populära lintern.
Eslint tillhandahåller flera linting-regler som följer industristandarder i CLI-, IDE- och textredigeringsverktygen, vilket gör linting-verktyget till ett utmärkt val för JavaScript-utvecklare.