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.
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.