
Ein Tierarztanalysator zur Erkennung magischer Zahlen.
Was ist eine magische Nummer?
Eine magische Zahl ist ein numerisches Literal, das nicht als Konstante definiert ist, sondern sich daher ändern kann und daher schwer zu aktualisieren sein kann. Es wird als schlechte Programmierpraxis angesehen, Zahlen in jedem Quellcode ohne Erklärung direkt zu verwenden. Es erschwert die Programme schwerer zu lesen, zu verstehen und zu warten.
Dieser Analysator benötigt Golang in Version> = 1.12, da er von der GO/Analyse -API abhängt.
go get -u github.com/tommy-muehle/go-mnd/v2/cmd/mnd
Sie können wie folgt als Github-Aktion ausführen:
name: Example workflow
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
tests:
runs-on: ubuntu-latest
env:
GO111MODULE: on
steps:
- name: Checkout Source
uses: actions/checkout@v2
- name: Run go-mnd
uses: tommy-muehle/go-mnd@master
with:
args: ./...
Sie können in einer Gitlab-CI-Pipeline wie folgt auftreten:
stages:
- lint
go:lint:mnd:
stage: lint
needs: []
image: golang:latest
before_script:
- go get -u github.com/tommy-muehle/go-mnd/v2/cmd/mnd
- go mod tidy
- go mod vendor
script:
- go vet -vettool $(which mnd) ./...
Um mit Homebrew zu installieren, rennen Sie:
brew tap tommy-muehle/tap && brew install tommy-muehle/tap/mnd
Um das neueste verfügbare Docker -Bild zu erhalten:
docker pull tommymuehle/go-mnd
Unter Windows laden Sie die neueste Version herunter.
go vet -vettool $(which mnd) ./...
oder direkt
mnd ./...
oder über Docker
docker run --rm -v "$PWD":/app -w /app tommymuehle/go-mnd:latest ./...
Mit der Option -checks können Sie eine von der Kommas getrennte Liste von Schecks definieren.
Mit der Option -ignored-numbers können Sie eine von Kommas getrennte Liste von Zahlen definieren, die ignoriert werden sollen.
Zum Beispiel: -ignored-numbers=1000,10_000,3.14159264
Mit der Option -ignored-functions können Sie eine von der Kommas getrennte Liste der Regexp -Muster definieren, die ausgeschlossen werden sollen.
Zum Beispiel: -ignored-functions=math.*,http.StatusText,make
Mit der Option -ignored-files können Sie eine von der Kommas getrennte Liste der ausgeschlossenen Dateiname -Regexp -Muster definieren.
Zum Beispiel: -ignored-files=magic_.*.go,.*_numbers.go
Standardmäßig analysiert dieser Detektor Argumente, Zuweisungen, Fälle, Bedingungen, Operationen und Rückgabeberechnungen.
t := http.StatusText(200)
c := &http.Client{
Timeout: 5 * time.Second,
}
switch x {
case 3:
}
if x > 7 {
}
var x, y int
y = 10 * x
return 3
Standardmäßig sind die Nummern 0 und 1 sowie die Testdateien ausgeschlossen!
Die Funktion "Datum" im "Zeit" -Paket.
t := time.Date(2017, time.September, 26, 12, 13, 14, 0, time.UTC)
Zusätzliche benutzerdefinierte Ausschlüsse können über das Options -Flag definiert werden.
Sie können die Binärdatei mit:
make
Sie können alle Unit -Tests mit:
make test
Und mit Deckungsbericht:
make test-coverage
Sie können das Docker -Bild auch lokal erstellen, indem Sie den Befehl verwenden:
make image


Schreiben Sie mir einfach eine Nachricht über Twitter DM oder E-Mail, wenn Sie einige Aufkleber für Sie oder Ihre Gopher-Benutzergruppe wünschen.
Die MIT -Lizenz (MIT). Weitere Informationen finden Sie unter Lizenz.