Linting on eräänlainen staattinen koodianalyysi mahdollisten koodikantavirheiden tunnistamiseksi. Linters analysoi koodin syntaksivirheiden ja tyyliongelmien varalta. Prosessi voi auttaa estämään virheitä, parantamaan luettavuutta, valvomaan parhaita käytäntöjä ja säästämään aikaa.
Lintaaminen on vakiokäytäntö ohjelmistokehityksessä. Vaikka Go: n vakiokirjastoon ei ole sisäänrakennettu linteriä, Go-ekosysteemissä on monia kolmannen osapuolen lintointityökaluja. Näitä ovat GolangCI Lint-, Go Meta Linter- ja Staticcheck-paketit.
GolangCI Lint -paketti
Golangci-lint-paketti on tehokas ja joustava Go: n linteri, jonka avulla voit tunnistaa ja korjata koodivirheet. Paketin helppokäyttöisyys, laajennettavuus ja kattava sisäänrakennettujen linterien sarja tekevät siitä suositun valinnan monille Go-kehittäjille.
GolangCI Lint analysoi Go-lähdekoodia ja antaa palautetta mahdollisista virheistä, tietoturvaongelmista ja koodaustyylirikkomukset tehokkaan analyysin ja jatkuvan integroinnin (CI) toiminnoilla tuki.
Suorita tämä päätekomento projektisi työhakemistossa asentaaksesi Golangci-lint-paketin:
asenna github.com/golangci/golangci-lint/cmd/[email protected]
Go-versiosi on oltava 1.19 tai uudempi, jotta komento voi asentaa paketin. Voit myös tarkistaa golangci-lint-asennukset sivulta muita käytettävissä olevia asennustapoja.
Komento asentaa GolangCI: n järjestelmääsi CLI-työkaluna. Voit tarkistaa asennuksen tällä komennolla:
golangci-lint --versio
Komennon pitäisi näyttää asentamasi golangci-lint-versio.
Linterin konfigurointi
Linterit ovat erittäin monipuolisia, joten linterin asentamiseksi sinun on määritettävä linteri projektillesi.
The golangci-lint työkalujen käyttötarkoituksia YAML-tiedostot määritystä varten. Määrität linterisi asetukset YAML-tiedostossa, jotta paketti luetaan.
Voit luoda oletusasetustiedoston tällä komennolla:
golangci-lint config > .golangci.yml
Komento luo uuden tiedoston nimeltä .golangci.yml nykyisessä hakemistossasi. Voit jatkaa tämän tiedoston muokkaamista määrittääksesi linterin projektillesi.
Tässä on sen sisältö .golangci.yml tiedosto, kun suoritat komennon:
Tiedosto sisältää tietoja ko golangci-lint työkalu ja vaihtoehdot, joita voit käyttää listausprosessin määrittämiseen.
Sinun on muokattava tiedostoa, jotta voit lisätä ohjelmasi linting-säännöt. Löydät täydellisen luettelon saatavilla olevista lintereista osoitteessa golangci-lint Linters dokumentaatiosivu. Tai voit ajaa apua linters komento nähdäksesi linterit komentorivilläsi:
golangci-lint auttaa linters
Komento tulostaa kaikki Linterit, jotka ovat saatavilla asentamasi paketin versiolle.
Linterin ajaminen
Tässä on esitys seuraavan "Hei, maailma!" ohjelma, joka käyttää net/http paketti:
paketti pää
tuonti (
"fmt"
"net/http"
)funckäsittelijä(w http. ResponseWriter, r *http. Pyyntö) {
fmt. Fprintf (w, "Hei maailma!")
}
funcpää() {
http. HandleFunc("/", käsittelijä)
http. ListenAndServe(":8080", nolla)
}
Tämä ohjelma määrittelee a käsittelijä toiminto, joka ottaa kirjailijan ja pyytää esiintymiä osoitteesta http paketin ResponseWriter ja Pyyntö rakennetyypit. The käsittelijä toiminto kirjoittaa "Hei, maailma!" asiakkaalle pyynnöstä.
The pää toiminto kiinnittää / reittiä kohteeseen käsittelijä toiminto ja KuunteleJaPalvele toiminto käynnistää palvelimen localhost-portissa 8080.
The KuunteleJaPalvele funktio palauttaa virheen, mutta ohjelma jättää sen huomioimatta. Tämä kokoonpano varmistaa, että linteri korostaa ongelman:
linteriasetukset:
deadcode:
# ohita kaikki testitiedostot
ohitustiedostot: "_test\\.go$"
govet:
# poista varjostuksen tarkistus käytöstä
varjostus: väärä
golint:
# ohita vietyjen funktionimien virheet
käyttö-oletuksena- viety: totta
# ohita alaviivojen virheet paketti nimet
jättää pois-turha-nimeäminen: totta
gosec:
# poista Gosec-testit käytöstä, koska ne ovat hitaita ja voivat tuottaa väärä positiivisia
testit: väärä
käyttämätön:
# raportoi käyttämättömät funktion argumentit, mutta ei käyttämättömiä muuttujia
shekki viety: totta
tyhjä sekki: totta
tarkistustestit: totta
Kun olet määrittänyt tämän linterikokoonpanon, voit ajaa linterin käyttämällä juosta komento:
golangci-lint run
# vastaava, suorittaa kaikki ohjelmat
golangci-lint run./...
Vaihtoehtoisesti voit linttaa tiettyjä tiedostoja määrittämällä tiedostonimen tai polun juosta komento:
golangci-lint run dir1 dir2/... dir3/file1.go
Tässä on tulos linterin suorittamisesta ohjelmaa vastaan:
The golangci-lint työkalu on monipuolinen, ja kokoonpanosi vaihtelee projektisi mukaan.
Voit yhdistää JavaScript-projektisi ESLintillä
Lintaaminen on suosittu ohjelmistokehitystehtävä, ja useimmat ohjelmointikielet ja IDE: t tarjoavat työkaluja ohjelmien lintaukseen. JavaScriptille ESLint on suosituin linteri.
Eslint tarjoaa useita linting-sääntöjä, jotka noudattavat alan standardeja CLI-, IDE- ja tekstieditorityökaluissa, mikä tekee linting-työkalusta loistavan valinnan JavaScript-kehittäjille.