Bralci, kot ste vi, pomagajo podpirati MUO. Ko opravite nakup prek povezav na našem spletnem mestu, lahko zaslužimo partnersko provizijo. Preberi več.

Linting je vrsta statične analize kode za prepoznavanje morebitnih napak kodne baze. Linters analizira kodo za sintaksne napake in težave s slogom. Postopek lahko pomaga preprečiti napake, izboljša berljivost, uveljavi najboljše prakse in prihrani čas.

Linting je standardna praksa pri razvoju programske opreme. Čeprav v standardno knjižnico Go ni vgrajenega linterja, v ekosistemu Go obstaja veliko orodij za linting tretjih oseb. Ti vključujejo pakete GolangCI Lint, Go Meta Linter in Staticcheck.

Paket GolangCI Lint

Paket golangci-lint je zmogljiv in prilagodljiv linter za Go, ki vam lahko pomaga prepoznati in popraviti napake kode. Zaradi enostavne uporabe, razširljivosti in celovitega nabora vgrajenih linterjev je paket priljubljena izbira za številne razvijalce Go.

GolangCI Lint analizira izvorno kodo Go in zagotavlja povratne informacije o morebitnih napakah, varnostnih težavah in kršitve sloga kodiranja s funkcionalnostjo za visoko zmogljivo analizo in neprekinjeno integracijo (CI) podporo.

instagram viewer

Zaženite ta terminalski ukaz v delovnem imeniku vašega projekta, da namestite paket Golangci-lint:

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

Za ukaz za namestitev paketa mora biti vaša različica Go 1.19 ali novejša. Preverite lahko tudi instalacije golangci-lint stran za druge razpoložljive načine namestitve.

Ukaz bo namestil GolangCI v vaš sistem kot orodje CLI. Namestitev lahko preverite s tem ukazom:

golangci-lint --različica

Ukaz bi moral prikazati različico golangci-lint, ki ste jo namestili.

Konfiguracija Linterja

Linters so zelo vsestranski, zato boste morali za namestitev linterja konfigurirati linter za svoj projekt.

The golangci-lint uporabe orodja Datoteke YAML za konfiguracijo. Nastavitve vašega linterja boste določili v datoteki YAML za branje paketa.

Privzeto konfiguracijsko datoteko lahko ustvarite s tem ukazom:

golangci-lint config > .golangci.yml

Ukaz ustvari novo datoteko z imenom .golangci.yml v vašem trenutnem imeniku. Lahko nadaljujete z urejanjem te datoteke, da konfigurirate linter za svoj projekt.

Tukaj je vsebina .golangci.yml datoteko, ko zaženete ukaz:

Datoteka vsebuje podatke o golangci-lint orodje in možnosti, ki jih lahko uporabite za konfiguracijo postopka vnosa na seznam.

Datoteko boste morali urediti, da dodate pravila lintinga za svoj program. Celoten seznam razpoložljivih linterjev najdete na golangci-lint Linters stran z dokumentacijo. Lahko pa zaženete pomoč linters ukaz za ogled linterjev v vaši ukazni vrstici:

golangci-lint pomoč linters

Ukaz prikaže vse Linterje, ki so na voljo za različico paketa, ki ste ga namestili.

Zagon Linterja

Tukaj je predstavitev lintinga naslednjega "Hello, World!" program, ki uporablja net/http paket:

paket glavni

uvoz (
"fmt"
"net/http"
)

funkvodja(w http. ResponseWriter, r *http. Prošnja) {
fmt. Fprintf (w, "Pozdravljen, svet!")
}

funkglavni() {
http. HandleFunc("/", vodja)
http. ListenAndServe(":8080", nič)
}

Ta program določa a vodja funkcija, ki sprejme primerke zapisovalca in zahteve iz http paketi ResponseWriter in Prošnja vrste struktur. The vodja funkcija napiše "Hello, World!" naročniku na zahtevo.

The glavni funkcija namesti / pot do vodja funkcijo in ListenAndServe funkcija zažene strežnik na vratih lokalnega gostitelja 8080.

The ListenAndServe funkcija vrne napako, vendar jo program ignorira. Ta konfiguracija bo zagotovila, da bo linter izpostavil težavo:

linters-nastavitve:
mrtva koda:
# ignoriraj vse testne datoteke
preskočne datoteke: "_test\\.go$"
govet:
# onemogoči preverjanje senčenja
preverjanje senčenja: lažno
golint:
# prezri napake o izvoženih imenih funkcij
izključi-uporabi-privzeto-izvoženo: prav

# ignoriraj napake o podčrtajih v paket imena
izključi-neuporabno-poimenovanje: prav
gosec:
# onemogoči gosec teste, ker so počasni in lahko proizvedejo lažno pozitivne
testi: lažno
neuporabljeno:
# poroča o neuporabljenih argumentih funkcije, vendar ne o neuporabljenih spremenljivkah
čekovno izvoženo: prav
prazen ček: prav
kontrolni testi: prav

Ko nastavite to konfiguracijo linterja, lahko zaženete linter z teči ukaz:

golangci-lint run

# enakovredno, izvaja vse programe
golangci-lint run ./...

Druga možnost je, da določene datoteke lintirate tako, da navedete ime datoteke ali pot za teči ukaz:

 golangci-lint zaženi dir1 dir2/... dir3/file1.go

Tukaj je rezultat izvajanja linterja proti programu:

The golangci-lint orodje je vsestransko in vaša konfiguracija se bo razlikovala glede na vaš projekt.

Svoje JavaScript projekte lahko lintate z ESLint

Linting je priljubljena naloga pri razvoju programske opreme in večina programskih jezikov in IDE ponuja orodja za programe za linting. Za JavaScript je najbolj priljubljen linter ESLint.

Eslint ponuja več pravil za linting, ki sledijo industrijskim standardom v CLI, IDE in orodjih za urejevalnik besedila, zaradi česar je orodje za linting odlična izbira za razvijalce JavaScript.