Linting on teatud tüüpi staatiline koodianalüüs võimalike koodibaasi vigade tuvastamiseks. Linters analüüsib koodi süntaksivigade ja stiiliprobleemide osas. Protsess võib aidata vältida vigu, parandada loetavust, jõustada parimaid tavasid ja säästa aega.
Linting on tarkvaraarenduse tavapraktika. Kuigi Go standardsesse teeki pole sisse ehitatud linterit, on Go ökosüsteemis palju kolmandate osapoolte linteerimistööriistu. Nende hulka kuuluvad GolangCI Lint, Go Meta Linter ja Staticcheck paketid.
GolangCI Lint pakett
Golangci-lint pakend on Go jaoks võimas ja paindlik linter, mis aitab teil koodivigu tuvastada ja parandada. Paketi kasutusmugavus, laiendatavus ja terviklik sisseehitatud linterite komplekt muudavad selle paljude Go arendajate jaoks populaarseks valikuks.
GolangCI Lint analüüsib Go lähtekoodi ja annab tagasisidet võimalike vigade, turvaprobleemide ja kodeerimisstiili rikkumised suure jõudlusega analüüsi ja pideva integreerimise (CI) funktsioonidega toetus.
Käivitage see terminali käsk oma projekti töökataloogis, et installida pakett Golangci-lint:
installige github.com/golangci/golangci-lint/cmd/[email protected]
Teie Go versioon peab olema 1.19 või uuem, et käsk saaks paketi installida. Samuti saate kontrollida golangci-lint paigaldused leht muude saadaolevate installimeetodite jaoks.
Käsk installib GolangCI teie süsteemi CLI tööriistana. Installimist saate kontrollida selle käsuga:
golangci-lint --versioon
Käsk peaks kuvama teie installitud golangci-lint versiooni.
Linteri seadistamine
Linterid on väga mitmekülgsed, nii et linteri paigaldamiseks peate linteri oma projekti jaoks konfigureerima.
The golangci-lint tööriista kasutused YAML-failid konfigureerimiseks. Paketi lugemiseks määrate oma linteri sätted YAML-failis.
Vaikekonfiguratsioonifaili saate luua selle käsuga:
golangci-lint config > .golangci.yml
Käsk loob uue faili nimega .golangci.yml teie praeguses kataloogis. Saate jätkata selle faili redigeerimist, et konfigureerida oma projekti linter.
Siin on selle sisu .golangci.yml faili, kui käivitate käsu:
Fail sisaldab teavet selle kohta golangci-lint tööriist ja valikud, mida saate oma loendiprotsessi konfigureerimiseks kasutada.
Peate faili redigeerima, et lisada oma programmile linteerimisreeglid. Saadaolevate linterite täieliku loendi leiate veebisaidilt golangci-lint Linters dokumentatsiooni leht. Või võite käivitada abi linterid käsk, et vaadata oma käsureal olevaid linte:
golangci-lint abi linterid
Käsk väljastab kõik teie installitud paketi versiooni jaoks saadaolevad Linterid.
Linteri jooksmine
Siin on järgmise teksti "Tere, maailm!" programm, mis kasutab net/http pakett:
pakett peamine
importida (
"fmt"
"net/http"
)funckäitleja(w http. ResponseWriter, r *http. taotlus) {
fmt. Fprintf (w, "Tere, Maailm!")
}
funcpeamine() {
http. HandleFunc("/", töötleja)
http. ListenAndServe(":8080", null)
}
See programm määratleb a käitleja funktsioon, mis võtab sisse kirjutaja ja pärib eksemplare http paketi omad ResponseWriter ja Taotlus struktuuri tüübid. The käitleja funktsioon kirjutab "Tere, maailm!" kliendile soovi korral.
The peamine funktsioon kinnitab / marsruut käitleja funktsioon ja Kuula ja teeninda funktsioon käivitab serveri localhosti pordis 8080.
The Kuula ja teeninda funktsioon tagastab vea, kuid programm ignoreerib seda. See konfiguratsioon tagab, et linter tõstab probleemi esile:
linteri seadistused:
surnud kood:
# ignoreeri kõiki testfaile
vahelejätmise failid: "_test\\.go$"
govet:
# keela varjutamise kontroll
tšekivarju: vale
golint:
# ignoreerida vead eksporditud funktsioonide nimede kohta
kasutamise välistamine-vaikimisi- eksporditud: tõsi
# ignoreerige allkriipsudega seotud vigu pakett nimed
välista-kasutu-nimetamine: tõsi
gosec:
# keelake Goseci testid, kuna need on aeglased ja võivad toota vale positiivsed
testid: vale
kasutamata:
# teatab kasutamata funktsiooni argumentidest, kuid mitte kasutamata muutujatest
tšekk eksporditud: tõsi
tühi tšekk: tõsi
kontrolltestid: tõsi
Pärast selle linteri konfiguratsiooni seadistamist saate linteri käivitada jooksma käsk:
golangci-lint jooksma
# samaväärne, käivitab kõik programmid
golangci-lint jooks ./...
Teise võimalusena saate konkreetseid faile lintida, määrates pärast faili nime või tee jooksma käsk:
golangci-lint run dir1 dir2/... dir3/file1.go
Siin on linteri programmi vastu käitamise tulemus:
The golangci-lint tööriist on mitmekülgne ja teie konfiguratsioon sõltub teie projektist.
Saate oma JavaScripti projekte ESLintiga lintida
Linting on populaarne tarkvaraarenduse ülesanne ning enamik programmeerimiskeeli ja IDE-sid pakuvad tööriistu programmide lintimiseks. JavaScripti jaoks on ESLint kõige populaarsem linter.
Eslint pakub CLI-s, IDE-s ja tekstiredaktori tööriistades mitmeid lintmisreegleid, mis järgivad tööstusharu standardeid, muutes linastamistööriista JavaScripti arendajatele suurepäraseks valikuks.