Pergunta

Eu tenho uma grande divisão repositório de origem em vários projetos. Eu gostaria de produzir um relatório sobre a saúde do código-fonte, identificar áreas problemáticas que precisam ser abordadas.

Especificamente, eu gostaria de chamar rotinas com uma alta complexidade ciclomática, identificar repetição, e talvez executar alguns fiapos-like análise estática de detectar construções suspeitos (e, portanto, provavelmente erradas).

Como eu poderia ir sobre a construção de um tal relatório?

Foi útil?

Solução

Para medir a complexidade ciclomática, há uma boa ferramenta disponível em traceback.org . A página também dá uma boa visão geral de como interpretar os resultados.

+1 para pylint . É grande a verificar a adesão a padrões de codificação (seja PEP8 ou o seu próprio variante da organização), o que pode na ajuda final para reduzir a complexidade ciclomática.

Outras dicas

Para complexidade ciclomática você pode usar radon: https://github.com/rubik/radon

(Use pip para instalá-lo: pip install radon)

Além disso, ele também tem essas características:

  • métricas brutas (que incluem SLOC, linhas de comentário, linhas em branco, & c.)
  • métricas de Halstead (todos eles)
  • Índice Maintainability (aquele usado em Visual Studio)

Para a análise estática existe pylint e pychecker . Pessoalmente eu uso pylint como parece ser mais abrangente do que pychecker.

Para complexidade ciclomática você pode tentar este programa perl, ou este artigo que introduz um programa python para fazer o mesmo

Pycana funciona como charme quando você precisa entender um novo projeto!

PyCAna (Python Código Analyzer) é um nome fantasia para um simples código analisador para que cria um pitão diagrama de classe depois de executar o seu código.

Veja como funciona: http://pycana.sourceforge.net/

saída:

alt texto http://pycana.sourceforge.net/relations.png

Graças à Pydev , você pode integrar pylint no Eclipse IDE muito facilmente e obter um relatório de código de cada vez que você salvar um arquivo modificado.

Use flake8 , que fornece pep8, pyflakes e análise de complexidade ciclomática em uma ferramenta

Há uma ferramenta chamada CloneDigger que ajuda a encontrar trechos de código semelhantes.

Para verificar complexidade ciclomática, há, naturalmente, a mccabe pacote.

Instalação:

$ pip install --upgrade mccabe

Uso:

$ python -m mccabe --min=6 path/to/myfile.py

Observe o limite de 6 acima. Por esta resposta , contagens> 5 provavelmente deve ser simplificada.

Exemplo de saída com --min=3:

68:1: 'Fetcher.fetch' 3
48:1: 'Fetcher._read_dom_tag' 3
103:1: 'main' 3

pode opcionalmente também ser utilizada através pylint-McCabe ou pytest-McCabe , etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top