
محلل طبيب بيطري للكشف عن الأرقام السحرية.
ما هو الرقم السحري؟
الرقم السحري هو حرفي رقمي لا يتم تعريفه على أنه ثابت ، ولكنه قد يتغير ، وبالتالي قد يكون من الصعب تحديثه. تعتبر ممارسة برمجة سيئة لاستخدام الأرقام مباشرة في أي رمز مصدر دون تفسير. يجعل البرامج أكثر صعوبة في القراءة وفهمها وصيانتها.
يتطلب هذا المحلل Golang في الإصدار> = 1.12 لأنه يعتمد على واجهة برمجة تطبيقات GO/Analysis .
go get -u github.com/tommy-muehle/go-mnd/v2/cmd/mnd
يمكنك تشغيل go-mnd كعمل github على النحو التالي:
name: Example workflow
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
tests:
runs-on: ubuntu-latest
env:
GO111MODULE: on
steps:
- name: Checkout Source
uses: actions/checkout@v2
- name: Run go-mnd
uses: tommy-muehle/go-mnd@master
with:
args: ./...
يمكنك تشغيل GO-MND داخل خط أنابيب Gitlab CI على النحو التالي:
stages:
- lint
go:lint:mnd:
stage: lint
needs: []
image: golang:latest
before_script:
- go get -u github.com/tommy-muehle/go-mnd/v2/cmd/mnd
- go mod tidy
- go mod vendor
script:
- go vet -vettool $(which mnd) ./...
للتثبيت مع homebrew ، قم بتشغيل:
brew tap tommy-muehle/tap && brew install tommy-muehle/tap/mnd
للحصول على أحدث صورة Docker المتاحة:
docker pull tommymuehle/go-mnd
على Windows قم بتنزيل أحدث إصدار.
go vet -vettool $(which mnd) ./...
أو مباشرة
mnd ./...
أو عبر Docker
docker run --rm -v "$PWD":/app -w /app tommymuehle/go-mnd:latest ./...
يتيح لك خيار -checks تحديد قائمة بفواصل مفصولة بالفواصل.
يتيح لك خيار -ignored-numbers تحديد قائمة أرقام مفصولة بفاصلة لتجاهلها.
على سبيل المثال: -ignored-numbers=1000,10_000,3.14159264
يتيح لك خيار -ignored-functions على تحديد قائمة مفصولة بأنماط regexp اسم الوظيفة لاستبعادها.
على سبيل المثال: -ignored-functions=math.*,http.StatusText,make
يتيح لك خيار -ignored-files محدد قائمة مفصولة مفصولة بأنماط regexp اسم الملف لاستبعادها.
على سبيل المثال: -ignored-files=magic_.*.go,.*_numbers.go
بشكل افتراضي ، يقوم هذا الكاشف بتحليل الوسائط والتعيينات والحالات والشروط والعمليات وبيانات الإرجاع.
t := http.StatusText(200)
c := &http.Client{
Timeout: 5 * time.Second,
}
switch x {
case 3:
}
if x > 7 {
}
var x, y int
y = 10 * x
return 3
بشكل افتراضي ، يتم استبعاد الأرقام 0 و 1 وكذلك ملفات الاختبار!
وظيفة "تاريخ" في حزمة "الوقت".
t := time.Date(2017, time.September, 26, 12, 13, 14, 0, time.UTC)
يمكن تحديد مخصصة إضافية من خلال علامة الخيار.
يمكنك بناء الثنائي مع:
make
يمكنك تشغيل جميع اختبارات الوحدة باستخدام:
make test
ومع تقرير التغطية:
make test-coverage
يمكنك أيضًا بناء صورة Docker محليًا باستخدام الأمر:
make image


ما عليك سوى إسقاط رسالة عبر Twitter DM أو البريد الإلكتروني إذا كنت تريد بعض ملصقات GO-MND لك أو لمجموعة مستخدم Gopher.
ترخيص معهد ماساتشوستس للتكنولوجيا (MIT). يرجى الاطلاع على الترخيص لمزيد من المعلومات.