cyclomatic
1.0.0
Cyclomatic Complexityコマンドとanalysis.Analyzer移動します。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フラグを使用して制限をリラックスできます。
$ 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ライセンスに基づいてライセンスされています - 詳細については、license.mdファイルを参照してください
このパッケージはこれらのパッケージに基づいていますが、複雑さをカウントする方法がわずかに異なります。