Lint Your Go programok a GolangCI Lint csomaggal

Lint Your Go programok a GolangCI Lint csomaggal
Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

A Linting a statikus kódelemzés egy fajtája a lehetséges kódbázishibák azonosítására. Linters elemzi a kódot szintaktikai hibák és stílusproblémák keresésére. A folyamat segíthet megelőzni a hibákat, javítani az olvashatóságot, betartatni a legjobb gyakorlatokat, és időt takaríthat meg.





A szöszölés bevett gyakorlat a szoftverfejlesztésben. Bár a Go szabványos könyvtárába nincs beépítve linter, sok harmadik féltől származó linting eszköz létezik a Go ökoszisztémában. Ide tartozik a GolangCI Lint, a Go Meta Linter és a Staticcheck csomag.





MAKEUSEOF A NAP VIDEÓJA

A GolangCI Lint csomag

  GolangCI Lint logó, egy kék gopher, aki pajzsot tart, amelyre egy bogár van rajzolva

A golangci-lint csomag egy erőteljes és rugalmas linter a Go-hoz, amely segíthet azonosítani és kijavítani a kódhibákat. A csomag egyszerű használhatósága, bővíthetősége és átfogó beépített linterkészlete sok Go fejlesztő számára népszerű választássá teszi.





A GolangCI Lint elemzi a Go forráskódját, és visszajelzést ad a lehetséges hibákról, biztonsági problémákról és a kódolási stílus megsértéseiről, a nagy teljesítményű elemzés és a folyamatos integráció (CI) támogatásával.

Futtassa ezt a terminálparancsot a projekt munkakönyvtárában a Golangci-lint csomag telepítéséhez:



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

A csomag telepítéséhez a parancsnak 1.19-es vagy újabb verziójúnak kell lennie. Azt is ellenőrizheti a golangci-lint telepítések oldalt az egyéb elérhető telepítési módokért.

A parancs CLI-eszközként telepíti a GolangCI-t a rendszerére. A telepítést ezzel a paranccsal ellenőrizheti:





 golangci-lint --version 

A parancsnak a telepített golangci-lint verzióját kell megjelenítenie.

A Linter konfigurálása

A linterek nagyon sokoldalúak , tehát a linter telepítéséhez be kell állítania azt a projekthez.





A golangci-lint eszközhasználatok YAML fájlokat a konfigurációhoz . Meg kell adnia a linter beállításait a YAML-fájlban, hogy a csomag elolvasható legyen.

Ezzel a paranccsal létrehozhat egy alapértelmezett konfigurációs fájlt:

 golangci-lint config > .golangci.yml 

A parancs létrehoz egy új nevű fájlt .golangci.yml az aktuális könyvtárában. Folytathatja ennek a fájlnak a szerkesztését a linter konfigurálásához a projekthez.

Íme a tartalma a .golangci.yml fájl a parancs futtatásakor:

  Golangci-lint YAML fájl használati utasítás

A fájl információkat tartalmaz a golangci-lint eszközt és a listázási folyamat konfigurálásához használható lehetőségeket.

Szerkesztenie kell a fájlt, hogy hozzáadhassa a programhoz tartozó vonalzási szabályokat. Az elérhető linterek teljes listáját megtalálja a golangci-lint Linters dokumentációs oldal. Vagy futtathatja a segít linters parancsot a parancssorban lévő linterek megtekintéséhez:

 golangci-lint help linters 

A parancs megjeleníti a telepített csomag verziójához elérhető összes Lintert.

  a help parancs Golangci-lint futtatásának eredménye

A Linter futtatása

Íme egy bemutató a következő „Helló, világ!” szöveg beszúrásáról. program, amely a net/http csomag:

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

Ez a program meghatározza a kezelő függvény, amely beveszi az írót és a kérést a http csomagok ResponseWriter és Kérés struktúra típusok. A kezelő A függvény ezt írja: „Hello, World!” kérésére az ügyfélnek.

értesít az instagram, amikor képernyőképet készít egy dm -ről

A fő- függvény rögzíti a / útvonalat a kezelő funkciót, és a ListenAndServe függvény elindítja a szervert a localhost porton 8080 .

A ListenAndServe függvény hibát ad vissza, de a program figyelmen kívül hagyja. Ez a konfiguráció biztosítja, hogy a linter kiemelje a problémát:

 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

Miután beállította ezt a linter konfigurációt, futtathatja a lintert a fuss parancs:

 golangci-lint run 

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

Alternatív megoldásként a fájl nevét vagy elérési útját megadva szöszölhet bizonyos fájlokat fuss parancs:

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

Íme a linter futtatásának eredménye a program ellen:

  a linter futtatásának eredménye egy http programon

A golangci-lint Az eszköz sokoldalú, és a konfiguráció a projekttől függően változhat.

Az ESLint segítségével beillesztheti JavaScript-projektjeit

A linting egy népszerű szoftverfejlesztési feladat, és a legtöbb programozási nyelv és IDE eszközöket biztosít a programok lintinghez. A JavaScript esetében az ESLint a legnépszerűbb linter.

Az Eslint több vonalzási szabályt biztosít, amelyek követik az iparági szabványokat a CLI, IDE és szövegszerkesztő eszközökben, így a linting eszköz nagyszerű választás a JavaScript-fejlesztők számára.