cyclomatic
1.0.0
GO循环复杂性命令和analysis.Analyzer 。
保持您的功能简单且无错误很重要。 cyclomatic让您知道您的功能何时变得过于复杂且容易出错。
首先,通过go get安装cyclomatic命令。
$ go get github.com/ichiban/cyclomatic/cmd/cyclomatic然后,在您的软件包目录处运行cyclomatic命令。
$ 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后列出的值数量来增加复杂性该项目已根据MIT许可证获得许可 - 有关详细信息,请参见许可证文件。
该软件包基于这些软件包,但在计算复杂性方面略有不同: