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.
A GolangCI Lint csomag
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 kódolási stílus megsértése a nagy teljesítményű elemzés és a folyamatos integráció (CI) funkciójával támogatás.
Futtassa ezt a terminálparancsot a projekt munkakönyvtárában a Golangci-lint csomag telepítéséhez:
telepítse a github.com/golangci/golangci-lint/cmd/[email protected]
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 --verzió
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:
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 segíti a lintereket
A parancs megjeleníti a telepített csomag verziójához elérhető összes Lintert.
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:
csomag fő-
import (
"fmt"
"net/http"
)funckezelő(w http. ResponseWriter, r *http. Kérés) {
fmt. Fprintf (w, "Helló Világ!")
}
funcfő-() {
http. HandleFunc("/", kezelő)
http. ListenAndServe(":8080", nulla)
}
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.
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:
linterek beállításai:
holtkód:
# figyelmen kívül hagyja az összes tesztfájlt
skip-fájlok: "_test\\.go$"
govet:
# az árnyékolás ellenőrzésének letiltása
ellenőrző árnyékolás: hamis
golint:
# figyelmen kívül hagyja az exportált függvénynevekkel kapcsolatos hibákat
használat kizárása-alapértelmezett-exportált: igaz
# figyelmen kívül hagyja az aláhúzásokkal kapcsolatos hibákat csomag neveket
a haszontalan elnevezés kizárása: igaz
gosec:
# tiltsa le a gosec teszteket, mert lassúak és képesek produkálni hamis pozitívumok
tesztek: hamis
felhasználatlan:
# jelenti a nem használt függvény argumentumokat, de nem a nem használt változókat
csekk exportálva: igaz
üres csekk: igaz
ellenőrző tesztek: igaz
Miután beállította ezt a linter konfigurációt, futtathatja a lintert a fuss parancs:
golangci-lint futás
# egyenértékű, minden programot futtat
golangci-lint futás ./...
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 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.