Lining je typ analýzy statického kódu na identifikáciu potenciálnych chýb kódovej základne. Linters analyzuje kód pre syntaktické chyby a problémy so štýlom. Tento proces môže pomôcť predchádzať chybám, zlepšiť čitateľnosť, presadiť osvedčené postupy a ušetriť čas.
Lining je štandardnou praxou pri vývoji softvéru. Hoci v štandardnej knižnici Go nie je zabudovaný žiadny linter, v ekosystéme Go existuje veľa nástrojov na linter od tretích strán. Patria sem balíčky GolangCI Lint, Go Meta Linter a Staticcheck.
GolangCI Lint Package
Balíček golangci-lint je výkonný a flexibilný linter pre Go, ktorý vám môže pomôcť identifikovať a opraviť chyby kódu. Jednoduché použitie, rozšíriteľnosť a komplexná sada vstavaných linter z neho robia obľúbenú voľbu pre mnohých vývojárov Go.
GolangCI Lint analyzuje zdrojový kód Go a poskytuje spätnú väzbu o potenciálnych chybách, bezpečnostných problémoch a porušenie štýlu kódovania s funkciou pre vysokovýkonnú analýzu a nepretržitú integráciu (CI) podpora.
Spustite tento príkaz terminálu v pracovnom adresári vášho projektu a nainštalujte balík Golangci-lint:
nainštalujte si github.com/golangci/golangci-lint/cmd/[email protected]
Vaša verzia Go musí byť 1.19 alebo novšia, aby príkaz nainštaloval balík. Môžete tiež skontrolovať inštalácie golangci-lint na stránke s ďalšími dostupnými spôsobmi inštalácie.
Príkaz nainštaluje GolangCI do vášho systému ako nástroj CLI. Inštaláciu môžete overiť pomocou tohto príkazu:
golangci-lint --verzia
Príkaz by mal zobraziť verziu golangci-lint, ktorú ste nainštalovali.
Konfigurácia Linter
Linters sú veľmi všestranné, takže ak chcete nainštalovať linter, budete musieť nakonfigurovať linter pre váš projekt.
The golangci-lint použitie nástroja súbory YAML na konfiguráciu. V súbore YAML zadáte nastavenia vášho linteru, aby sa balík mohol čítať.
Predvolený konfiguračný súbor môžete vytvoriť pomocou tohto príkazu:
golangci-lint config > .golangci.yml
Príkaz vytvorí nový súbor s názvom .golangci.yml vo vašom aktuálnom adresári. Môžete pokračovať v úprave tohto súboru a nakonfigurovať linter pre váš projekt.
Tu je obsah .golangci.yml súbor pri spustení príkazu:
Súbor obsahuje informácie o golangci-lint nástroj a možnosti, ktoré môžete použiť na konfiguráciu procesu záznamu.
Ak chcete pridať pravidlá lintovania pre váš program, musíte súbor upraviť. Úplný zoznam dostupných linterov nájdete na golangci-lint Linters dokumentačnú stránku. Alebo môžete spustiť help linters príkaz na zobrazenie linterov na príkazovom riadku:
golangci-lint help linters
Príkaz vypíše všetky Lintery dostupné pre verziu balíka, ktorý ste nainštalovali.
Spustenie Linteru
Tu je ukážka lemovania nasledujúceho textu „Ahoj, svet!“ program, ktorý používa net/http balík:
balík Hlavná
importovať (
"fmt"
"net/http"
)funcpsovod(w http. ResponseWriter, r *http. žiadosť) {
fmt. Fprintf (w, "Ahoj, svet!")
}
funcHlavná() {
http. HandleFunc("/", manipulant)
http. Počúvaj a podávaj (":8080", nula)
}
Tento program definuje a psovod funkcia, ktorá preberá inštancie Writer a request z http balíkov ResponseWriter a Žiadosť typy štruktúr. The psovod funkcia píše "Ahoj, svet!" klientovi na požiadanie.
The Hlavná funkcia pripojí / cesta k psovod funkcie a Počúvajte a podávajte funkcia spúšťa server na porte localhost 8080.
The Počúvajte a podávajte funkcia vráti chybu, ale program ju ignoruje. Táto konfigurácia zabezpečí, že linter zvýrazní problém:
linters-nastavenia:
mŕtvy kód:
# ignorovať všetky testovacie súbory
preskočiť súbory: "_test\\.go$"
govet:
# zakázať kontrolu tieňovania
check-shadowing: falošný
golint:
# ignorovať chyby týkajúce sa názvov exportovaných funkcií
vylúčiť-použitie-predvolená- exportované: pravda
# ignorovať chyby týkajúce sa podčiarkovníkov v balík mená
vylúčiť-neužitočné-pomenúvanie: pravda
gosec:
# zakázať testy gosec, pretože sú pomalé a môžu produkovať falošný pozitíva
testy: falošný
nepoužité:
# hlási nepoužité argumenty funkcií, ale nie nepoužívané premenné
šekovo exportované: pravda
check-blank: pravda
kontrolné testy: pravda
Po nastavení tejto konfigurácie linter môžete spustiť linter pomocou behať príkaz:
golangci-lint beh
# ekvivalent, spustí všetky programy
golangci-lint beh ./...
Prípadne môžete lint špecifické súbory zadaním názvu súboru alebo cesty za behať príkaz:
golangci-lint spustiť dir1 dir2/... dir3/file1.go
Tu je výsledok spustenia linter proti programu:
The golangci-lint nástroj je všestranný a vaša konfigurácia sa bude líšiť v závislosti od vášho projektu.
Svoje projekty v JavaScripte môžete pospájať pomocou ESLint
Linting je populárna úloha pri vývoji softvéru a väčšina programovacích jazykov a IDE poskytuje nástroje pre programy na linting. Pre JavaScript je ESLint najobľúbenejší linter.
Eslint poskytuje viacero pravidiel liningu, ktoré sa riadia priemyselnými štandardmi v nástrojoch CLI, IDE a textových editoroch, vďaka čomu je nástroj lining skvelou voľbou pre vývojárov JavaScriptu.