cyclomatic
1.0.0
Перейти к цикломатической сложности командование и analysis.Analyzer . Анализер.
Важно, чтобы ваши функции были простыми и без ошибок. cyclomatic позволяет вам узнать, когда ваши функции становятся слишком сложными и подвержены ошибкам.
Во -первых, установите cyclomatic команду через go get .
$ go get github.com/ichiban/cyclomatic/cmd/cyclomatic Затем запустите cyclomatic Command в вашем каталоге пакетов.
$ 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 Кроме того, вы можете расслабить предел с помощью -limit Flag.
$ 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 Во -первых, установите пакет через go get .
$ go get github.com/ichiban/cyclomatic Затем включите cyclomatic.Analyzer в свой шахмат.
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 ,
)
}Для определения каждой функции:
if или for , что увеличивают сложность&& или || , увеличить сложностьswitch или select , увеличивайте сложность на количество значений, перечисленных после case S. Этот проект лицензирован по лицензии MIT - для получения подробной информации см.
Этот пакет основан на этих пакетах, но немного отличается от того, как считать сложность: