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許可證獲得許可 - 有關詳細信息,請參見許可證文件。
該軟件包基於這些軟件包,但在計算複雜性方面略有不同: