Linting este un tip de analiză statică a codului pentru identificarea potențialelor erori de bază de cod. Linters analizează codul pentru erori de sintaxă și probleme de stil. Procesul poate ajuta la prevenirea erorilor, la îmbunătățirea lizibilității, la aplicarea celor mai bune practici și la economisirea de timp.
Liningul este o practică standard în dezvoltarea de software. Deși nu există nici un linter încorporat în biblioteca standard Go, multe instrumente terțe de listing există în ecosistemul Go. Acestea includ pachetele GolangCI Lint, Go Meta Linter și Staticcheck.
Pachetul GolangCI Lint
Pachetul golangci-scame este un linter puternic și flexibil pentru Go, care vă poate ajuta să identificați și să remediați erorile de cod. Ușurința de utilizare a pachetului, extensibilitatea și setul complet de linters încorporate îl fac o alegere populară pentru mulți dezvoltatori Go.
GolangCI Lint analizează codul sursă Go și oferă feedback cu privire la erori potențiale, probleme de securitate și încălcări ale stilului de codare cu funcționalitate pentru analiză de înaltă performanță și integrare continuă (CI) a sustine.
Rulați această comandă de terminal în directorul de lucru al proiectului pentru a instala pachetul Golangci-lint:
instalați github.com/golangci/golangci-lint/cmd/[email protected]
Versiunea dvs. Go trebuie să fie 1.19 sau mai recentă pentru ca comanda să instaleze pachetul. De asemenea, puteți verifica instalatii golangci-lint pagina pentru alte metode de instalare disponibile.
Comanda va instala GolangCI pe sistemul dvs. ca instrument CLI. Puteți verifica instalarea cu această comandă:
golangci-lint --version
Comanda ar trebui să afișeze versiunea de golangci-lint pe care ați instalat-o.
Configurarea Linter
Linters sunt foarte versatile, deci pentru a instala un linter, va trebui să configurați linter-ul pentru proiectul dvs.
The golangci-lint utilizările instrumentului Fișiere YAML pentru configurare. Veți specifica setările linter-ului în fișierul YAML pentru ca pachetul să fie citit.
Puteți crea un fișier de configurare implicit folosind această comandă:
golangci-lint config > .golangci.yml
Comanda creează un fișier nou numit .golangci.yml în directorul dvs. curent. Puteți continua să editați acest fișier pentru a configura linter-ul pentru proiectul dvs.
Iată conținutul .golangci.yml fișier când rulați comanda:
Fișierul conține informații despre golangci-lint instrument și opțiunile pe care le puteți utiliza pentru a vă configura procesul de înregistrare.
Va trebui să editați fișierul pentru a adăuga regulile de listing pentru programul dvs. Puteți găsi lista completă a linterurilor disponibile pe golangci-lint Linters pagina de documentație. Sau poți rula ajuta linters comandă pentru a vizualiza linterurile pe linia de comandă:
golangci-lint ajuta linters
Comanda afișează toate Linters disponibile pentru versiunea pachetului pe care l-ați instalat.
Conducerea Linter
Iată o demonstrație a liniștii următoarei „Hello, World!” program care utilizează net/http pachet:
pachet principal
import (
"fmt"
"net/http"
)funcmanipulator(w http. ResponseWriter, r *http. Cerere) {
fmt. Fprintf (w, "Salut Lume!")
}
funcprincipal() {
http. HandleFunc("/", handler)
http. ListenAndServe(":8080", zero)
}
Acest program definește a manipulator funcție care preia instanțele writer și solicită de la http pachetelor ResponseWriter și Cerere tipuri de structuri. The manipulator funcția scrie „Hello, World!” către client la cerere.
The principal funcția montează / traseul spre manipulator funcția, iar ListenAndServe funcția pornește serverul pe portul localhost 8080.
The ListenAndServe funcția returnează o eroare, dar programul o ignoră. Această configurație se va asigura că linter evidențiază problema:
setări linters:
cod mort:
# ignora toate fișierele de testare
skip-files: „_test\\.go$”
govet:
# dezactivează verificarea umbririi
check-shadowing: fals
golint:
# ignora erorile despre numele funcțiilor exportate
exclude-utilizare-Mod implicit-exportat: Adevărat
# ignora erorile legate de caracterele de subliniere în pachet nume
exclude-numire-inutilă: Adevărat
gosec:
# dezactivați testele gosec, deoarece sunt lente și pot produce fals pozitive
teste: fals
nefolosit:
# raportați argumentele funcției neutilizate, dar nu variabilele neutilizate
cec-exportat: Adevărat
bif-alb: Adevărat
teste de verificare: Adevărat
După setarea acestei configurații linter, puteți rula linter-ul cu alerga comanda:
golangci-lint run
# echivalent, rulează toate programele
golangci-lint run ./...
Ca alternativă, puteți scame anumite fișiere specificând numele fișierului sau calea după alerga comanda:
golangci-lint run dir1 dir2/... dir3/file1.go
Iată rezultatul rulării linter-ului împotriva programului:
The golangci-lint instrumentul este versatil, iar configurația dvs. va varia în funcție de proiect.
Vă puteți scăpa proiectele JavaScript cu ESLint
Linting este o sarcină populară de dezvoltare de software, iar majoritatea limbajelor de programare și IDE-uri oferă instrumente pentru programele de lining. Pentru JavaScript, ESLint este cel mai popular linter.
Eslint oferă mai multe reguli de listing care urmează standardele din industrie în instrumentele CLI, IDE și editor de text, făcând instrumentul de listing o alegere excelentă pentru dezvoltatorii JavaScript.