📝 Exercícios Práticos - Aula 01
💻 Duração: 30 minutos
🎯 Objetivos
Ao completar estes exercícios, você será capaz de:
- Identificar problemas de naming em código legacy
- Refatorar código aplicando boas práticas
- Escrever comentários úteis que expliquem contexto
📋 Exercício 1: Limpeza de Código (15 min)
Problema:
Refatore o código abaixo aplicando boas práticas de naming, formatação e estruturação:
public class C {
public double calc(double v1, double v2, String t) {
if(t.equals("add")) return v1+v2;
if(t.equals("sub")) return v1-v2;
return 0;
}
}Requisitos:
- Nome da classe deve indicar claramente a responsabilidade
- Nome do método deve indicar a ação
- Parâmetros devem ter nomes descritivos
- Formatação com indentação consistente (4 espaços)
- Tratamento de caso de operação inválida
- Documentação JavaDoc apropriada
Dicas de Implementação:
- Pense no domínio: que tipo de classe seria essa?
- Use verbos para métodos, substantivos para variáveis
- Compare strings usando
.equals()com literal primeiro - Considere lançar exception para casos inválidos
📋 Exercício 2: Comentários Úteis (15 min)
Problema:
Adicione comentários apropriados ao código abaixo. Atenção: comente apenas o que precisa de contexto!
public int proximaPagina(int paginaAtual, int totalItens) {
return (paginaAtual * 10 < totalItens) ? paginaAtual + 1 : paginaAtual;
}Requisitos:
- Explicar o contexto da paginação (quantos itens por página)
- Clarificar o comportamento quando não há mais páginas
- Documentar parâmetros e valor de retorno
- NÃO comentar o óbvio (como “retorna um int”)
Perguntas para Reflexão:
- Por que o número 10 está hardcoded?
- O que acontece quando
totalItensé 0? - Como outro desenvolvedor saberia que a paginação começa em 1?
⏱️ Atividade Rápida Final (5 min)
Escolha UM dos exercícios acima e:
- Implemente sua solução
- Prepare apresentação de 2 minutos
- Explique por que suas escolhas são melhores
Critérios de Avaliação:
- ✅ Clareza: código é auto-explicativo?
- ✅ Consistência: segue padrões estabelecidos?
- ✅ Manutenibilidade: outro dev consegue modificar facilmente?
🎯 Checklist de Conclusão
Antes de finalizar, verifique:
- Os nomes indicam claramente a intenção?
- A indentação está consistente em 4 espaços?
- O código é compreensível sem “adivinhação”?
- Os comentários explicam o porquê, não o o quê?
- Casos edge estão tratados apropriadamente?
🔗 Arquivos Relacionados
- Código para refatorar:
projeto-pratico/src/main/java/aula01/ExercicioRefatorar.java - Gabarito completo:
projeto-pratico/src/main/java/aula01/GabaritoExercicios.java - Testes de validação:
projeto-pratico/src/test/java/aula01/ExemploDepoisTest.java
💡 Próximos Passos
Estes exercícios preparam você para:
- Aula 02: Como evitar duplicação de código (DRY)
- Aula 03: Refatoração segura com testes
- Projetos reais: Manutenção de código legacy