cyclomatic
1.0.0
Vá comando e analysis.Analyzer de complexidade ciclomática.Analyzer.
É importante manter suas funções simples e livres de erros. cyclomatic permite que você saiba quando suas funções ficam muito complexas e propensas a erros.
Primeiro, instale o comando cyclomatic via go get .
$ go get github.com/ichiban/cyclomatic/cmd/cyclomatic Em seguida, execute o comando cyclomatic no seu diretório de pacotes.
$ 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 Além disso, você pode relaxar o limite com a bandeira -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 Primeiro, instale o pacote via go get .
$ go get github.com/ichiban/cyclomatic Em seguida, inclua cyclomatic.Analyzer em seu 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 definição de função:
if ou for , incrementar a complexidade&& ou || , incrementar a complexidadeswitch ou select , aumente a complexidade pelo número de valores listados após case S Este projeto está licenciado sob a licença do MIT - consulte o arquivo License.md para obter detalhes
Este pacote é baseado nesses pacotes, mas difere um pouco sobre como contar a complexidade: