cyclomatic
1.0.0
الذهاب cyclomatic التعقيد أمر analysis.Analyzer .
من المهم الحفاظ على وظائفك بسيطة وخالية من الأخطاء. يتيح لك cyclomatic معرفة متى تصبح وظائفك معقدة للغاية ومعرضة للخطأ.
أولاً ، قم بتثبيت الأمر cyclomatic عبر go get .
$ 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 تم ترخيص هذا المشروع بموجب ترخيص معهد ماساتشوستس للتكنولوجيا - راجع ملف الترخيص.
تعتمد هذه الحزمة على هذه الحزم ولكنها تختلف قليلاً عن كيفية حساب التعقيد: