GO Cyclomatic Complexity Command and analysis.Analyzer .
Es ist wichtig, Ihre Funktionen einfach und fehlerfrei zu halten. cyclomatic Sprache wissen Sie, wann Ihre Funktionen zu komplex und fehleranfällig werden.
Installieren Sie zunächst cyclomatic Befehl über go get .
$ go get github.com/ichiban/cyclomatic/cmd/cyclomatic Führen Sie dann cyclomatic Befehl in Ihrem Paketverzeichnis aus.
$ cyclomatic ./...
/Users/ichiban/src/example.com/package/foo.go:100:1: cyclomatic complexity of example.com/package.Foo exceeded limit 13 > 10
/Users/ichiban/src/example.com/package/foo.go:200:1: cyclomatic complexity of example.com/package.Bar exceeded limit 22 > 10 Außerdem können Sie die Grenze mit -limit -Flagge entspannen.
$ cyclomatic -limit 15 ./...
/Users/ichiban/src/example.com/package/foo.go:200:1: cyclomatic complexity of example.com/package.Bar exceeded limit 22 > 15 analysis.Analyzer . Analyzer Installieren Sie das Paket zuerst über go get .
$ go get github.com/ichiban/cyclomatic Geben Sie dann cyclomatic.Analyzer in Ihren Checker ein.
package main
import (
"golang.org/x/tools/go/analysis"
"golang.org/x/tools/go/analysis/multichecker"
"golang.org/x/tools/go/analysis/passes/nilfunc"
"golang.org/x/tools/go/analysis/passes/printf"
"golang.org/x/tools/go/analysis/passes/shift"
"github.com/ichiban/cyclomatic"
)
func main () {
multichecker . Main (
// other analyzers of your choice
nilfunc . Analyzer ,
printf . Analyzer ,
shift . Analyzer ,
cyclomatic . Analyzer ,
)
}Für jede Funktionsdefinition:
if oder for , erhöhen Sie die Komplexität&& oder || , erhöhen Sie die Komplexitätswitch oder select , erhöhen Sie die Komplexität um die Anzahl der nach case s aufgeführten Werte Dieses Projekt ist unter der MIT -Lizenz lizenziert - finden Sie in der lizenz.md -Datei für Details
Dieses Paket basiert auf diesen Paketen, unterscheidet sich jedoch geringfügig davon, wie die Komplexität zählt: