
Ветеринарный анализатор для обнаружения магических чисел.
Что такое волшебное число?
Волшебное число - это числовое буквальное, которое не определяется как постоянная, но может измениться, и, следовательно, может быть трудно обновить. Это считается плохой практикой программирования для использования чисел непосредственно в любом исходном коде без объяснения объяснения. Это затрудняет чтение, понимание и поддержание программ.
Этот анализатор требует Голанга в версии> = 1.12, потому что он зависит от API 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 позволяет исключить отдельный список паттернов режима имени файла.
Например: -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 или по электронной почте, если вы хотите, чтобы несколько наклеек для вас или для вашей пользовательской группы Gopher.
Лицензия MIT (MIT). Пожалуйста, смотрите лицензию для получения дополнительной информации.