Mesmo que você possa verificar a qualidade do seu
código com pep8, Pylint e Pyflakes, uma das virtudes
de um projeto de software é não possuir código duplicado (leia mais
sobre DRY). O fato é que tanto intencionalmente como
propositalmente, podemos duplicar um trecho de código e acabar
prejudicando manutenções futuras (atire a primeira pedra quem nunca deu
aquele CTRL+C
e CTRL+V
, e prometeu um refactoring depois).
Para facilitar a busca por código duplicado, podemos utilizar uma ferramenta chamada Clone Digger. Prático, rápido e muito simples. Agora ficou fácil “caçar” código duplicado em projetos Python.
Por tratar-se de uma ferramenta bem objetiva, não há muito o que falar sobre o Clone Digger. Então, vamos direto para a parte prática.
Para iniciar a análise, basta chamar o executável apontando para o diretório do seu projeto:
$ clonedigger meuprojeto/
Será gerado um arquivo chamado output.html
, com um relatório
detalhado (como este). Serão apresentadas informações como a
quantidade de arquivos analisados, quantidade de “clones”, de linhas
duplicadas e um apontamento com os trechos de código que a ferramenta
concluiu como “clones” (não necessariamente iguais, mas semelhantes).
Particularmente, a ferramenta me ajuda bastante a determinar se certos trechos de código não poderiam ser herdados por uma classe pai, ou algumas rotinas costumeiras não poderiam ser encapsuladas em funções.
Até a próxima…