Lint Your Go programos su GolangCI Lint paketu

Lint Your Go programos su GolangCI Lint paketu
Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius. Skaityti daugiau.

Linting yra statinio kodo analizės tipas, skirtas nustatyti galimas kodų bazės klaidas. „Linters“ analizuoja kodą dėl sintaksės klaidų ir stiliaus problemų. Šis procesas gali padėti išvengti klaidų, pagerinti skaitomumą, taikyti geriausią praktiką ir sutaupyti laiko.





Lining yra standartinė programinės įrangos kūrimo praktika. Nors įprastoje „Go“ bibliotekoje nėra įmontuoto linterio, „Go“ ekosistemoje yra daug trečiųjų šalių šlifavimo įrankių. Tai apima „GolangCI Lint“, „Go Meta Linter“ ir „Staticcheck“ paketus.





DIENOS VAIZDO ĮRAŠO PAGALBA

„GolangCI Lint“ paketas

  GolangCI Lint logotipas, mėlynas goferis, laikantis skydą su ant jo nupiešta klaida

Golangci-lint pakuotė yra galingas ir lankstus „Go“ įtaisas, galintis padėti nustatyti ir ištaisyti kodo klaidas. Paketo naudojimo paprastumas, išplečiamumas ir išsamus įmontuotų įdėklų rinkinys daro jį populiariu daugelio „Go“ kūrėjų pasirinkimu.





„GolangCI Lint“ analizuoja „Go“ šaltinio kodą ir pateikia grįžtamąjį ryšį apie galimas klaidas, saugos problemas ir kodavimo stiliaus pažeidimus, naudodamas didelio našumo analizės ir nuolatinio integravimo (CI) palaikymą.

Vykdykite šią terminalo komandą savo projekto darbo kataloge, kad įdiegtumėte „Golangci-lint“ paketą:



 go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.51.1 

Kad komanda įdiegtų paketą, jūsų Go versija turi būti 1.19 arba naujesnė. Taip pat galite patikrinti golangci-lint įrenginiai puslapyje, kuriame rasite kitų galimų diegimo būdų.

Komanda įdiegs „GolangCI“ jūsų sistemoje kaip CLI įrankį. Įdiegimą galite patikrinti naudodami šią komandą:





 golangci-lint --version 

Komanda turėtų rodyti jūsų įdiegtą golangci-lint versiją.

kaip sužinoti, kas tave užblokavo „Facebook“

„Linter“ konfigūravimas

Linters yra labai universalus , todėl norėdami įdiegti linterį, turėsite sukonfigūruoti linterį savo projektui.





The golangci-lint įrankių naudojimas YAML failai konfigūravimui . YAML faile nurodysite savo linterio nustatymus, kad paketas būtų perskaitytas.

Galite sukurti numatytąjį konfigūracijos failą naudodami šią komandą:

 golangci-lint config > .golangci.yml 

Komanda sukuria naują failą pavadinimu .golangci.yml dabartiniame kataloge. Galite tęsti šio failo redagavimą, kad sukonfigūruotumėte savo projekto liniją.

Čia yra turinio .golangci.yml failą, kai paleidžiate komandą:

  Golangci-lint YAML failo naudojimo instrukcijos

Faile yra informacijos apie golangci-lint įrankį ir parinktis, kurias galite naudoti norėdami konfigūruoti įtraukimo į sąrašą procesą.

facebook prisijungimo prisijungti prie kito vartotojo

Turėsite redaguoti failą, kad pridėtumėte savo programos brūkšnelių taisykles. Visą galimų linierių sąrašą galite rasti adresu golangci-lint Linters dokumentacijos puslapį. Arba galite paleisti padėti linteriai komandą, kad pamatytumėte linteres komandų eilutėje:

 golangci-lint help linters 

Komanda išveda visus jūsų įdiegto paketo versijos „Linters“.

  Rezultatas paleidus pagalbos komandą Golangci-lint

„Linter“ bėgimas

Pateikiame „Sveikas, pasauli! programa, kuri naudoja net/http paketas:

 package main 

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, world!")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

Ši programa apibrėžia a prižiūrėtojas funkcija, kuri paima rašytoją ir užklausa pavyzdžius iš http paketas ResponseWriter ir Prašymas struktūrų tipai. The prižiūrėtojas funkcija rašo 'Sveikas, pasauli!' klientui paprašius.

The pagrindinis funkcija pritvirtina / maršrutas į prižiūrėtojas funkcija ir KlausykIr Tarnaukite funkcija paleidžia serverį per localhost prievadą 8080 .

The KlausykIr Tarnaukite funkcija grąžina klaidą, bet programa ją ignoruoja. Ši konfigūracija užtikrins, kad linteris išryškins problemą:

 linters-settings: 
  deadcode:
    # ignore all test files
    skip-files: "_test\.go$"
  govet:
    # disable shadowing check
    check-shadowing: false
  golint:
    # ignore errors about exported function names
    exclude-use-default-exported: true

    # ignore errors about underscores in package names
    exclude-useless-naming: true
  gosec:
    # disable gosec tests, since they are slow and can produce false positives
    tests: false
  unused:
    # report unused function arguments, but not unused variables
    check-exported: true
    check-blank: true
    check-tests: true

Nustatę šią liniuotės konfigūraciją, galite paleisti liniją naudodami paleisti komanda:

 golangci-lint run 

# equivalent, runs all programs
golangci-lint run ./...

Arba galite susieti konkrečius failus, nurodydami failo pavadinimą arba kelią po paleisti komanda:

  golangci-lint run dir1 dir2/... dir3/file1.go

Štai programos linter paleidimo rezultatas:

  rezultatas paleidus linter http programoje

The golangci-lint įrankis yra universalus, o jūsų konfigūracija skirsis atsižvelgiant į jūsų projektą.

kodėl mano youtube programa neveikia

Savo „JavaScript“ projektus galite sujungti naudodami ESLint

Linavimas yra populiari programinės įrangos kūrimo užduotis, o daugumoje programavimo kalbų ir IDE yra įrankiai, skirti linijavimo programoms. „JavaScript“ atveju ESLint yra populiariausias „Linter“.

„Eslint“ pateikia kelias klijavimo taisykles, kurios atitinka pramonės standartus CLI, IDE ir teksto rengyklės įrankiuose, todėl linijavimo įrankis yra puikus pasirinkimas „JavaScript“ kūrėjams.