Linting er en type statisk kodeanalyse til at identificere potentielle kodebasefejl. Linters analyserer kode for syntaksfejl og stilproblemer. Processen kan hjælpe med at forhindre fejl, forbedre læsbarheden, håndhæve bedste praksis og spare tid.
Linting er en standard praksis inden for softwareudvikling. Selvom der ikke er indbygget linter i Gos standardbibliotek, findes der mange tredjeparts linting-værktøjer i Go-økosystemet. Disse inkluderer GolangCI Lint-, Go Meta Linter- og Staticcheck-pakkerne.
GolangCI Lint-pakken
Golangci-lint-pakken er en kraftfuld og fleksibel linter til Go, der kan hjælpe dig med at identificere og rette kodefejl. Pakkens brugervenlighed, udvidelsesmuligheder og omfattende sæt indbyggede linters gør den til et populært valg for mange Go-udviklere.
GolangCI Lint analyserer Go-kildekoden og giver feedback om potentielle fejl, sikkerhedsproblemer og overtrædelser af kodningsstil med funktionalitet til højtydende analyse og kontinuerlig integration (CI) support.
Kør denne terminalkommando i dit projekts arbejdsmappe for at installere Golangci-lint-pakken:
installer github.com/golangci/golangci-lint/cmd/[email protected]
Din Go-version skal være 1.19 eller nyere for at kommandoen kan installere pakken. Du kan også tjekke golangci-lint installationer side for andre tilgængelige installationsmetoder.
Kommandoen installerer GolangCI på dit system som et CLI-værktøj. Du kan bekræfte installationen med denne kommando:
golangci-lint --version
Kommandoen skal vise den version af golangci-lint, du har installeret.
Konfiguration af Linter
Linters er meget alsidige, så for at installere en linter, skal du konfigurere linteren til dit projekt.
Det golangci-lint værktøj bruger YAML-filer til konfiguration. Du skal angive din linters indstillinger i YAML-filen, så pakken kan læses.
Du kan oprette en standardkonfigurationsfil ved hjælp af denne kommando:
golangci-lint config > .golangci.yml
Kommandoen opretter en ny fil med navnet .golangci.yml i dit nuværende bibliotek. Du kan fortsætte med at redigere denne fil for at konfigurere linter til dit projekt.
Her er indholdet af .golangci.yml fil, når du kører kommandoen:
Filen indeholder oplysninger om golangci-lint værktøj og de muligheder, du kan bruge til at konfigurere din noteringsproces.
Du bliver nødt til at redigere filen for at tilføje fnugreglerne for dit program. Du kan finde den fulde liste over tilgængelige linters på golangci-lint linters dokumentationsside. Eller du kan køre hjælpe linters kommando for at se linters på din kommandolinje:
golangci-lint hjælpelinters
Kommandoen udsender alle de linters, der er tilgængelige for den version af pakken, du har installeret.
Kørsel af Linter
Her er en demonstration af fnug af følgende "Hej, verden!" program, der bruger net/http pakke:
pakke vigtigste
importere (
"fmt"
"net/http"
)funchandler(w http. ResponseWriter, r *http. Anmodning) {
fmt. Fprintf (w, "Hej Verden!")
}
funcvigtigste() {
http. HandleFunc("/", handler)
http. LytOgServe(":8080", nul)
}
Dette program definerer en handler funktion, der tager skribent- og anmodningsinstanser fra http pakkens ResponseWriter og Anmodning strukturtyper. Det handler funktion skriver "Hej, verden!" til kunden på forespørgsel.
Det vigtigste funktion monterer / rute til handler funktion, og ListenAndServe funktionen starter serveren på localhost-porten 8080.
Det ListenAndServe funktion returnerer en fejl, men programmet ignorerer den. Denne konfiguration sikrer, at linter fremhæver problemet:
linters-indstillinger:
dødkode:
# ignorer alle testfiler
spring over filer: "_test\\.go$"
govet:
# deaktiver skyggetjek
check-shadowing: falsk
golint:
# ignorer fejl om eksporterede funktionsnavne
udelukke-brug-Standard-eksporteret: rigtigt
# ignorer fejl om understregninger i pakke navne
ekskluder-ubrugelig-navngivning: rigtigt
gosec:
# deaktiver gosec-tests, da de er langsomme og kan producere falsk positive
tests: falsk
ubrugt:
# rapporter ubrugte funktionsargumenter, men ikke ubrugte variable
check-eksporteret: rigtigt
tjek blank: rigtigt
check-tests: rigtigt
Efter at have indstillet denne linter-konfiguration, kan du køre linteren med løb kommando:
golangci-lint løb
# tilsvarende, kører alle programmer
golangci-lint run ./...
Alternativt kan du fnug specifikke filer ved at angive filnavnet eller stien efter løb kommando:
golangci-lint run dir1 dir2/... dir3/file1.go
Her er resultatet af at køre linter mod programmet:
Det golangci-lint værktøjet er alsidigt, og din konfiguration vil variere baseret på dit projekt.
Du kan fnug dine JavaScript-projekter med ESLint
Linting er en populær softwareudviklingsopgave, og de fleste programmeringssprog og IDE'er giver værktøjer til linting-programmer. Til JavaScript er ESLint den mest populære linter.
Eslint leverer flere linting-regler, der følger industristandarder i CLI-, IDE- og tekstredigeringsværktøjerne, hvilket gør linting-værktøjet til et godt valg for JavaScript-udviklere.