Lesere som deg er med på å støtte MUO. Når du foretar et kjøp ved å bruke lenker på nettstedet vårt, kan vi tjene en tilknyttet provisjon. Les mer.

Linting er en type statisk kodeanalyse for å identifisere potensielle kodebasefeil. Linters analyserer kode for syntaksfeil og stilproblemer. Prosessen kan bidra til å forhindre feil, forbedre lesbarheten, håndheve beste praksis og spare tid.

Linting er en standard praksis innen programvareutvikling. Selv om det ikke er noe linter innebygd i Gos standardbibliotek, finnes det mange tredjeparts lintingverktøy i Go-økosystemet. Disse inkluderer pakkene GolangCI Lint, Go Meta Linter og Staticcheck.

GolangCI Lint-pakken

Golangci-lint-pakken er en kraftig og fleksibel linter for Go som kan hjelpe deg med å identifisere og fikse kodefeil. Pakkens brukervennlighet, utvidbarhet og omfattende sett med innebygde linters gjør den til et populært valg for mange Go-utviklere.

GolangCI Lint analyserer Go-kildekoden og gir tilbakemelding på potensielle feil, sikkerhetsproblemer og kodestilbrudd med funksjonalitet for høyytelsesanalyse og kontinuerlig integrasjon (CI) Brukerstøtte.

instagram viewer

Kjør denne terminalkommandoen i prosjektets arbeidskatalog for å installere Golangci-lint-pakken:

installer github.com/golangci/golangci-lint/cmd/[email protected]

Go-versjonen din må være 1.19 eller nyere for at kommandoen skal installere pakken. Du kan også sjekke golangci-lint installasjoner side for andre tilgjengelige installasjonsmetoder.

Kommandoen vil installere GolangCI på systemet ditt som et CLI-verktøy. Du kan bekrefte installasjonen med denne kommandoen:

golangci-lint --versjon

Kommandoen skal vise versjonen av golangci-lint du har installert.

Konfigurering av Linter

Linters er veldig allsidige, så for å installere en linter, må du konfigurere linter for prosjektet ditt.

De golangci-lint verktøyet bruker YAML-filer for konfigurasjon. Du spesifiserer linterens innstillinger i YAML-filen for at pakken skal leses.

Du kan opprette en standard konfigurasjonsfil ved å bruke denne kommandoen:

golangci-lint config > .golangci.yml

Kommandoen oppretter en ny fil med navnet .golangci.yml i din nåværende katalog. Du kan fortsette å redigere denne filen for å konfigurere linter for prosjektet ditt.

Her er innholdet i .golangci.yml fil når du kjører kommandoen:

Filen inneholder informasjon om golangci-lint verktøyet og alternativene du kan bruke til å konfigurere oppføringsprosessen.

Du må redigere filen for å legge til linting-reglene for programmet ditt. Du kan finne hele listen over tilgjengelige linters på golangci-lint linters dokumentasjonsside. Eller du kan kjøre hjelpe linters kommando for å se linters på kommandolinjen:

golangci-lint hjelpelinters

Kommandoen gir ut alle Linters tilgjengelig for versjonen av pakken du har installert.

Kjøre Linter

Her er en demonstrasjon av lining av følgende "Hello, World!" program som bruker net/http pakke:

pakke hoved-

import (
"fmt"
"net/http"
)

funchandler(w http. ResponseWriter, r *http. Be om) {
fmt. Fprintf (w, "Hei Verden!")
}

funchoved-() {
http. HandleFunc("/", handler)
http. ListenAndServe(":8080", null)
}

Dette programmet definerer en handler funksjon som tar inn skribent- og forespørselsforekomster fra http pakkens ResponseWriter og Be om strukturtyper. De handler funksjonen skriver "Hei, verden!" til oppdragsgiver på forespørsel.

De hoved- funksjonen monterer / rute til handler funksjon, og ListenAndServe funksjonen starter serveren på localhost-porten 8080.

De ListenAndServe funksjonen returnerer en feil, men programmet ignorerer den. Denne konfigurasjonen vil sikre at linter fremhever problemet:

linters-innstillinger:
dødkode:
# ignorer alle testfiler
hoppe over filer: "_test\\.go$"
govet:
# deaktiver skyggesjekk
check-shadowing: falsk
golint:
# ignorer feil om eksporterte funksjonsnavn
ekskluder-bruk-misligholde-eksportert: ekte

# ignorer feil om understreking i pakke navn
ekskluder-ubrukelig-navngivning: ekte
gosec:
# deaktiver gosec-tester, siden de er trege og kan produsere falsk positive
tester: falsk
ubrukt:
# rapporter ubrukte funksjonsargumenter, men ikke ubrukte variabler
sjekke-eksportert: ekte
sjekk blank: ekte
sjekk-tester: ekte

Etter å ha angitt denne linter-konfigurasjonen, kan du kjøre linteren med løpe kommando:

golangci-lint løp

# tilsvarende, kjører alle programmer
golangci-lint run ./...

Alternativt kan du lo spesifikke filer ved å spesifisere filnavnet eller banen etter løpe kommando:

 golangci-lint run dir1 dir2/... dir3/fil1.go

Her er resultatet av å kjøre linter mot programmet:

De golangci-lint verktøyet er allsidig, og konfigurasjonen din vil variere basert på prosjektet ditt.

Du kan linte JavaScript-prosjektene dine med ESLint

Linting er en populær programvareutviklingsoppgave, og de fleste programmeringsspråk og IDE-er gir verktøy for linting-programmer. For JavaScript er ESLint den mest populære linteren.

Eslint tilbyr flere linting-regler som følger industristandarder i CLI-, IDE- og tekstredigeringsverktøyene, noe som gjør linting-verktøyet til et godt valg for JavaScript-utviklere.