GO Comando y analysis.Analyzer de complejidad ciclomática. Analyzer.
Es importante mantener sus funciones simples y libres de errores. cyclomatic le permite saber cuándo sus funciones se vuelven demasiado complejas y propensas a errores.
Primero, instale el comando cyclomatic a través de go get .
$ go get github.com/ichiban/cyclomatic/cmd/cyclomatic Luego, ejecute el comando cyclomatic en el directorio de su paquete.
$ 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 Además, puede relajar el límite con la bandera -limit .
$ 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 Primero, instale el paquete a través de go get .
$ go get github.com/ichiban/cyclomatic Luego, incluya cyclomatic.Analyzer en su verificador.
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 ,
)
}Para cada definición de función:
if o for incrementar la complejidad&& o || , incrementa la complejidadswitch o select , aumente la complejidad por el número de valores enumerados después case S Este proyecto tiene licencia bajo la licencia MIT: consulte el archivo de licencia.md para más detalles
Este paquete se basa en estos paquetes, pero difiere ligeramente sobre cómo contar la complejidad: