
Um analisador veterinário para detectar números mágicos.
O que é um número mágico?
Um número mágico é um literal numérico que não é definido como uma constante, mas que pode mudar e, portanto, pode ser difícil de atualizar. É considerado uma prática de programação ruim para usar os números diretamente em qualquer código -fonte sem uma explicação. Torna os programas mais difíceis de ler, entender e manter.
Este analisador requer Golang em versão> = 1,12 porque depende da API GO/ANÁLISE .
go get -u github.com/tommy-muehle/go-mnd/v2/cmd/mnd
Você pode executar o Go-MND como uma ação do GitHub da seguinte maneira:
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: ./...
Você pode executar o Go-MND dentro de um pipeline Gitlab CI da seguinte maneira:
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) ./...
Para instalar com homebrew, execute:
brew tap tommy-muehle/tap && brew install tommy-muehle/tap/mnd
Para obter a última imagem disponível do Docker:
docker pull tommymuehle/go-mnd
No Windows Baixe o lançamento mais recente.
go vet -vettool $(which mnd) ./...
ou diretamente
mnd ./...
ou via Docker
docker run --rm -v "$PWD":/app -w /app tommymuehle/go-mnd:latest ./...
A opção -checks permite definir uma lista separada por vírgula de cheques.
A opção -ignored-numbers vamos definir uma lista de números separados por vírgula a ser ignorada.
Por exemplo: -ignored-numbers=1000,10_000,3.14159264
A opção -ignored-functions , vamos definir uma lista separada por vírgula dos padrões de nome do nome da função a serem excluídos.
Por exemplo: -ignored-functions=math.*,http.StatusText,make
A opção -ignored-files permite definir uma lista separada por vírgula de padrões de nome do arquivo de arquivo para excluir.
Por exemplo: -ignored-files=magic_.*.go,.*_numbers.go
Por padrão, esse detector analisa argumentos, atribui, casos, condições, operações e declarações de retorno.
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
Por padrão, os números 0 e 1 e os arquivos de teste são excluídos!
A função "Data" no pacote "Time".
t := time.Date(2017, time.September, 26, 12, 13, 14, 0, time.UTC)
Exclusões personalizadas adicionais podem ser definidas via sinalizador de opções.
Você pode construir o binário com:
make
Você pode executar todos os testes de unidade usando:
make test
E com relatório de cobertura:
make test-coverage
Você também pode construir localmente a imagem do Docker usando o comando:
make image


Basta me enviar uma mensagem via DM ou e-mail do Twitter, se você quiser alguns adesivos para você ou seu grupo de usuários Gopher.
A licença do MIT (MIT). Consulte a licença para obter mais informações.