Mantenha seu código em ordem com Flake8 e Coverage

8

Programar é uma atividade criativa e dinâmica, como por exemplo, a pintura. No processo de expressar o código, a gente rascunha, faz, desfaz, refaz, experimenta diferentes formas e traços, até conseguir chegar ao resultado desejado.

Concentrados em fazer funcionar, é comum que, apesar de satisfeitos com o resultado, terminemos com o “ateliê” um tanto bagunçado.

O problema é que ao contrário da pintura, onde obstáculos físicos nos sinalizam que precisamos arrumar a casa, na programação a bagunça pode muitas vezes passar despercebida por um tempo, correndo o risco de acumular perigosamente.

É aí que entram as ferramentas de analise de código para nos informar quando deixamos alguma bagunça passar.

Para projetos Python, duas ferramentas muito interessantes são o Flake8 e o Coverage.py

O Coverage.py detecta as linhas de código que não são executadas no seu programa. Ao utilizá-lo na execução da suite de testes do seu projeto, ele informa a cobertura de testes do seu código. Se você está desenvolvendo um projeto Django, você vai querer usar o django-coverage.

Já o Flake8 é um projeto que combina 3 ótimas ferramentas em um só pacote:

  • Pep8 que verifica se o estilo do código respeita o padrão adotado pela comunidade descrito na Python Enhancement Proposal 8.
  • PyFlakes que analisa estaticamente seu código detectando inúmeros anti-patterns e erros lógicos como módulos importados que não são utilizados, uso de variáveis não declaradas, entre muitas outras coisas.
  • Codepaths que realiza a análise da complexidade ciclomática do código com base nas métricas de McCabe.

Para usar estas ferramentas basta instalar os pacotes com o pip e os comandos estarão disponíveis para você.

Para automatizar a inspeção do seu código, você pode tanto configurar o seu git-precommit-hook quanto adicioná-los ao seu ciclo de integração contínua. Isso vai lhe ajudar na disciplina de manter seu código organizado.

[]’s, HB!

você pode gostar também
8 comentários
  1. Rafael Freitas Diz

    Valeu pela dica!

  2. Rafael Freitas Diz

    Valeu pela dica!

  3. Programador Python Curitiba Diz
  4. Programador Python Curitiba Diz

    Recomendo conhecer também o snakefood.

    http://furius.ca/snakefood/

  5. Programador Python Curitiba Diz

    Recomendo conhecer também o snakefood.

    http://furius.ca/snakefood/

  6. Renan Ivo Diz

    Boa dica, eu não conhecia o django-coverage. Pra quem usa o vim, recomendo o plugin syntastic que pode ser configurado para executar o flake8 quando o arquivo é salvo e destacar os avisos https://github.com/scrooloose/syntastic

  7. Renan Ivo Diz

    Boa dica, eu não conhecia o django-coverage. Pra quem usa o vim, recomendo o plugin syntastic que pode ser configurado para executar o flake8 quando o arquivo é salvo e destacar os avisos https://github.com/scrooloose/syntastic

  8. Renan Ivo Diz

    Boa dica, eu não conhecia o django-coverage. Pra quem usa o vim, recomendo o plugin syntastic que pode ser configurado para executar o flake8 quando o arquivo é salvo e destacar os avisos https://github.com/scrooloose/syntastic

Deixe uma resposta

Seu endereço de email não será publicado.