durcheck
1.0.0
durcheck هو linter بسيط للغاية يكتشف الأخطاء المحتملة مع time.Duration .
النظر في الرمز التالي:
func doInTime ( done chan struct {}) error {
select {
case <- time . After ( 60 ):
return errors . New ( "timeout" )
case <- done :
return nil
}
} من الواضح أن هناك مشكلة مع time.After(60) ، حيث يتم تحويل INT غير المعدني بالفعل إلى 60 نانو ثانية. ولكن يمكن للمبرمج أن يفوتك ، أو أن الوافد الجديد Golang من لغات مثل PHP حيث يكون للوظيفة التي تحتوي على Suckature int sleep ( int $seconds ) مثل هذا الخطأ.
سيؤدي تشغيل Linter مقابل الكود أعلاه إلى خطأ:
$ durcheck .
main.go:14:9: implicit time.Duration means nanoseconds in " time.After(60) " go get -u github.com/hypnoglow/durcheck
الخيار أ: تمرير هذه الوسائط إلى أمر gometalinter :
gometalinter --linter=durcheck:durcheck:PATH:LINE:COL:MESSAGE --enable=durcheck ./...
الخيار ب: أضف هذا التكوين إلى ملف .gometalinter.json الخاص بك:
{
"Enable" : [
" durcheck "
],
"Linters" : {
"durcheck" : {
"Command" : " durcheck " ,
"Pattern" : " PATH:LINE:COL:MESSAGE "
}
}
}معهد ماساتشوستس للتكنولوجيا