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/immich-app/immich
- Gráfico selecionado:

- Explicação: O gráfico acima mostra a evolução da quantidade de comentários no código: em 2022 não havia comentários, em 2023 surgiu uma base de 1233 comentarios, em 2024 um grande aumento, chegando em 5356 comentarios, mas em 2025 esse numero caiu drasticamente para 906. Esse evolução sugere um amadurecimento na "limpeza" do código e sua documentação. Inicialmente, tinha necessidade de registrar explicações para um código em fase inicial e em crescimento, depois um aumento exagerado no número de comentários e posteriormente percebeu-se que muitos dos comentarios poderiam ser redundantes, desnecessarios ou formas de mascarar trechos mal escritos. Bons comentários devem ser úteis, claros e atualizados, e nunca servir como substitutos de um código bem nomeado e legível. A queda recente pode indicar uma refatoração que eliminou comentários obsoletos ou a remoção de “commented-out code” — trechos desativados com // ou /* */ que, na prática, só confundem e levantam dúvidas sobre sua relevância. Assim, o gráfico reflete não apenas uma mudança quantitativa, mas também qualitativa: a equipe parece ter migrado de um excesso de explicações para um modelo de código mais autoexplicativo, com comentários realmente necessários.