GO Cyclomatic Complexity Command and analysis.Analyzer .
Il est important de garder vos fonctions simples et sans erreur. cyclomatic vous permet de savoir quand vos fonctions deviennent trop complexes et sujettes aux erreurs.
Tout d'abord, installez la commande cyclomatic via go get .
$ go get github.com/ichiban/cyclomatic/cmd/cyclomatic Ensuite, exécutez la commande cyclomatic dans votre répertoire de package.
$ 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 En outre, vous pouvez assouplir la limite avec le drapeau -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 Tout d'abord, installez le package via go get .
$ go get github.com/ichiban/cyclomatic Ensuite, incluez cyclomatic.Analyzer dans votre vérificateur.
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 ,
)
}Pour chaque définition de fonction:
if ou for , incrément la complexité&& ou || , incrément la complexitéswitch ou select , augmentez la complexité par le nombre de valeurs répertoriées après case S Ce projet est sous licence en vertu de la licence MIT - voir le fichier licence.md pour plus de détails
Ce package est basé sur ces packages mais diffère légèrement sur la façon de compter la complexité: