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

- Explicação: Evolução do código (LOC)
O gráfico de linhas de código mostra que, entre 2020 e 2023, o projeto passou por um crescimento contínuo, saindo de aproximadamente 27 mil para cerca de 60 mil linhas. Em 2024 houve um salto abrupto de mais de 50 mil linhas, o que pode estar relacionado à importação de módulos, inclusão de dependências internas ou mesmo geração automática de código. No ano seguinte, em 2025, observa-se uma estabilização em torno de 115 mil linhas, sugerindo que o foco voltou-se para manutenção, testes e refinamento da base existente.
Esse comportamento indica uma expansão gradual nos primeiros anos, seguida por uma grande alteração estrutural em 2024. Embora crescimentos moderados sejam geralmente sustentáveis, saltos muito bruscos merecem análise detalhada, pois podem representar aumento de complexidade e desafios de manutenção. A estabilização após a grande expansão é um sinal positivo, desde que acompanhada por boas práticas de testes e refatorações.
Em resumo, o projeto evoluiu de forma controlada até 2023, sofreu uma expansão significativa em 2024 e se estabilizou em 2025. O salto merece investigação no histórico de commits ou changelogs para esclarecer suas causas.