Luta dina Go-program med GolangCI Lint-paketet

Luta dina Go-program med GolangCI Lint-paketet
Läsare som du hjälper till att stödja MUO. När du gör ett köp med hjälp av länkar på vår webbplats kan vi tjäna en affiliate-provision. Läs mer.

Linting är en typ av statisk kodanalys för att identifiera potentiella kodbasfel. Linters analyserar kod för syntaxfel och stilproblem. Processen kan hjälpa till att förhindra buggar, förbättra läsbarheten, tillämpa bästa praxis och spara tid.





Linting är en standardpraxis inom mjukvaruutveckling. Även om det inte finns någon linter inbyggd i Gos standardbibliotek, finns många lintingverktyg från tredje part i Go-ekosystemet. Dessa inkluderar paketen GolangCI Lint, Go Meta Linter och Staticcheck.





MAKEUSE AV DAGENS VIDEO

GolangCI Lint-paketet

  GolangCI Lint-logotyp, en blå gopher som håller en sköld med en bugg ritad på den

Golangci-lint-paketet är en kraftfull och flexibel linter för Go som kan hjälpa dig att identifiera och åtgärda kodfel. Paketets användarvänlighet, töjbarhet och omfattande uppsättning inbyggda linters gör det till ett populärt val för många Go-utvecklare.





GolangCI Lint analyserar Go-källkoden och ger feedback om potentiella buggar, säkerhetsproblem och överträdelser av kodningsstil med funktionalitet för högpresterande analys och stöd för kontinuerlig integration (CI).

hur tar jag bort ios 14 beta

Kör detta terminalkommando i ditt projekts arbetskatalog för att installera Golangci-lint-paketet:



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

Din Go-version måste vara 1.19 eller senare för att kommandot ska kunna installera paketet. Du kan också kontrollera golangci-lint installationer sida för andra tillgängliga installationsmetoder.

Kommandot kommer att installera GolangCI på ditt system som ett CLI-verktyg. Du kan verifiera installationen med detta kommando:





 golangci-lint --version 

Kommandot ska visa den version av golangci-lint som du har installerat.

Konfigurera Linter

Linters är mycket mångsidiga , så för att installera en linter måste du konfigurera lintern för ditt projekt.





De golangci-lint verktyg använder YAML-filer för konfiguration . Du anger din linters inställningar i YAML-filen för att paketet ska läsas.

Du kan skapa en standardkonfigurationsfil med detta kommando:

 golangci-lint config > .golangci.yml 

Kommandot skapar en ny fil med namnet .golangci.yml i din nuvarande katalog. Du kan fortsätta att redigera den här filen för att konfigurera linter för ditt projekt.

Här är innehållet i .golangci.yml fil när du kör kommandot:

  Användningsinstruktioner för Golangci-lint YAML-fil

Filen innehåller information om golangci-lint verktyg och alternativen du kan använda för att konfigurera din noteringsprocess.

Du måste redigera filen för att lägga till linting-reglerna för ditt program. Du kan hitta hela listan över tillgängliga linters på golangci-lint linters dokumentationssida. Eller så kan du köra hjälp linters kommando för att se linters på din kommandorad:

hur man hittar wifi -lösenord på telefonen
 golangci-lint help linters 

Kommandot matar ut alla Linters som är tillgängliga för den version av paketet du har installerat.

  resultat av att köra hjälpkommandot på Golangci-lint

Att köra Linter

Här är en demonstration av att lindra följande 'Hello, World!' program som använder net/http paket:

 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)
}

Detta program definierar en hanterare funktion som tar in skribent- och begärandeinstanser från http paketets ResponseWriter och Begäran strukturtyper. De hanterare funktion skriver 'Hej, värld!' till kunden på begäran.

De huvud funktionen monterar / vägen till hanterare funktion och ListenAndServe funktionen startar servern på localhost-porten 8080 .

De ListenAndServe funktion returnerar ett fel, men programmet ignorerar det. Denna konfiguration säkerställer att lintern belyser problemet:

 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

Efter att ha ställt in denna linter-konfiguration kan du köra lintern med springa kommando:

 golangci-lint run 

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

Alternativt kan du luta specifika filer genom att ange filnamnet eller sökvägen efter springa kommando:

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

Här är resultatet av att köra linter mot programmet:

  resultat av att köra linter på ett http-program

De golangci-lint verktyget är mångsidigt och din konfiguration kommer att variera beroende på ditt projekt.

Du kan linta dina JavaScript-projekt med ESLint

Linting är en populär uppgift för mjukvaruutveckling, och de flesta programmeringsspråk och IDE:er tillhandahåller verktyg för linting-program. För JavaScript är ESLint den mest populära lintern.

Eslint tillhandahåller flera linting-regler som följer industristandarder i CLI-, IDE- och textredigeringsverktygen, vilket gör linting-verktyget till ett utmärkt val för JavaScript-utvecklare.