Neste exercício, iremos explorar a evolução de código em sistemas reais.
Iremos utilizar a ferramenta GitEvo.
Essa ferramenta analisa a evolução de código em repositórios Git nas linguagens Python, JavaScript, TypeScript e Java, e gera relatórios HTML como este.
Mais exemplos de relatórios podem ser podem ser encontrados em https://github.com/andrehora/gitevo-examples.
Selecione um repositório relevante na linguagem de sua preferência (Python, JavaScript, TypeScript ou Java). Você pode encontrar projetos interessantes nos links abaixo:
- Python: https://github.com/topics/python?l=python
- JavaScript: https://github.com/topics/javascript?l=javascript
- TypeScript: https://github.com/topics/typescript?l=typescript
- Java: https://github.com/topics/java?l=java
Note
Antes de instalar a ferramenta, é recomendado criar e ativar um ambiente virtual Python.
Instale a ferramenta GitEvo com o comando:
$ pip install gitevo
Execute a ferramenta no repositório selecionado utilizando o comando abaixo (ajuste conforme a linguagem do repositório).
Substitua <git_url> pela URL do repositório que será analisado:
# Python
$ gitevo -r python <git_url>
# JavaScript
$ gitevo -r javascript <git_url>
# TypeScript
$ gitevo -r typescript <git_url>
# Java
$ gitevo -r java <git_url>Por exemplo, para analisar o projeto Flask escrito em Python:
$ gitevo -r python https://github.com/pallets/flask
Note
Essa etapa pode demorar alguns minutos pois o projeto será clonado e analisado localmente.
Após executar a ferramenta GitEvo, é gerado um relatório HTML contendo diversos gráficos sobre a evolução do código.
Abra o relatório HTML e observe com atenção os gráficos.
Selecione um dos gráficos de evolução e explique-o com suas palavras. Por exemplo, você pode:
- Detalhar a evolução ao longo do tempo
- Detalhar se as curvas estão de acordo com boas práticas
- Explicar grandes alterações nas curvas
- Explorar a documentação do repositório em busca de explicações para grandes alterações
- etc.
Seja criativo!
- Crie um
forkdeste repositório (mais informações sobre forks aqui). - Adicione o relatório
HTMLno seu fork. - No Moodle, submeta apenas a URL do seu
fork.
Responda às questões abaixo diretamente neste arquivo README.md do seu fork:
- Repositório selecionado: https://github.com/Snailclimb/JavaGuide
- Gráfico selecionado:

- Explicação:
Este gráfico apresenta uma análise da quantidade de comentários no código do projeto, especificamente no ano de 2025. Fica evidente que há uma preferência massiva por comentários de linha única (line_comment), com aproximadamente 11 ocorrências, em contraste com apenas um único comentário em bloco (block_comment). Essa proporção desigual demonstra de forma clara um padrão de codificação adotado pelos desenvolvedores do projeto.
Essa forte inclinação para comentários de linha sugere uma cultura de desenvolvimento focada em código limpo e autoexplicativo. Os desenvolvedores parecem optar por anotações curtas e contextuais, inseridas diretamente ao lado da lógica que precisa de esclarecimento, em vez de longas explicações. O objetivo é manter a clareza sem poluir o código com blocos de texto extensos, o que é uma prática recomendada em muitas metodologias de desenvolvimento modernas.
A existência de um único comentário em bloco indica que seu uso é reservado para situações muito específicas, como um cabeçalho de licença no topo de um arquivo, a documentação formal de uma função particularmente complexa ou para desativar temporariamente um trecho de código. Portanto, o gráfico não revela apenas uma contagem, mas aponta para uma estratégia deliberada de evolução do código, onde a legibilidade e a manutenção são priorizadas através de um estilo de documentação conciso e intencional.