Autonomia & Tecnologia

Mantenha seu código em ordem com Flake8 e Coverage

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
Comentários