Aula 02 - Reutilização de Código em Java
🎯 Visão Geral
Tema: Reutilização de código - DRY Principles
Duração: 105 minutos
Professor: Ricardo Pires
Nível: Intermediário
Data: 2026-03-16
📚 Objetivos de Aprendizagem
Teóricos:
- Compreender princípio DRY (Don’t Repeat Yourself)
- Conhecer impactos da duplicação de código
- Entender estratégias de centralização de regras
Práticos:
- Identificar duplicação de código
- Extrair métodos e classes reutilizáveis
- Implementar validadores centralizados
Competências:
- Evitar bug de “corrigiu em um ponto e quebrou em outro”
- Reduzir custos de manutenção de código
- Melhorar consistência e testabilidade
🗂️ Estrutura da Aula (IMPLEMENTADA)
Aula02/
├── material-pedagogico/
│ ├── 01-plano-de-aula.md # ✅CRIADO
│ ├── 02-slides-apresentacao.md # ✅CRIADO (aula2.md)
│ ├── 03-exercicios-praticos.md # ✅CRIADO
│ ├── 04-guia-professor.md # ✅CRIADO
│ └── 05-material-apoio.md # ✅CRIADO
├── projeto-pratico/
│ ├── src/main/java/aula02/
│ │ ├── ExemploAntes.java # ✅CRIADO
│ │ ├── ExemploDepois.java # ✅CRIADO
│ │ ├── EmailValidator.java # ✅CRIADO
│ │ ├── CpfValidator.java # ✅CRIADO
│ │ └── GabaritoExercicios.java # ✅CRIADO
│ ├── src/test/java/aula02/
│ │ ├── EmailValidatorTest.java # ✅CRIADO
│ │ └── CpfValidatorTest.java # ✅CRIADO
│ ├── pom.xml # ✅CRIADO
│ └── README.md # ✅CRIADO
├── aula2.md # ✅MANTIDO (original)
├── aula2.html # ✅MANTIDO (original)
└── README.md # ✅ESTE ARQUIVO
⏱️ Cronograma (105 min)
| Tempo | Atividade | Método |
|---|---|---|
| 0-15 min | Conceito DRY + impactos | Expositiva |
| 15-45 min | Live coding - duplicação vs reutilização | Demonstrativa |
| 45-75 min | Exercícios práticos | Hands-on |
| 75-90 min | Revisão e gabarito | Discussão |
| 90-105 min | Checklist e conexão com Aula 03 | Síntese |
🎯 Métrica de Sucesso
Ao final, o aluno deve ser capaz de:
- Identificar código duplicado em sistema real
- Extrair validadores reutilizáveis
- Criar teste JUnit para componente reutilizado
- Aplicar checklist de qualidade de reuso
🔧 Pré-requisitos
- Java 8+ instalado
- IDE configurada (VS Code, IntelliJ, Eclipse)
- Conceitos da Aula 01 (código limpo e naming)
- Conhecimento básico de testes JUnit
📋 Recursos Necessários
- Ambiente Java configurado
- Projetor/tela para live coding
- Acesso aos exercícios práticos de duplicação
- Código exemplo com problemas reais de reuso
🔗 Integração com Outras Aulas
Requisitos da Aula 01:
- Princípios de código limpo estabelecidos
- Convenções de naming aplicadas
Preparação para Aula 03:
- Base para refatoração segura
- Componentes testáveis criados
🚀 Guia de Utilização Rápida
👨🏫 Para Professores:
- Revisar:
material-pedagogico/04-guia-professor.md - Preparar ambiente: Código com duplicação preparado
- Ministrar: Usar
02-slides-apresentacao.md - Gerenciar exercícios:
03-exercicios-praticos.md
🎓 Para Alunos:
- Setup: Seguir
projeto-pratico/README.md - Estudar: Analisar exemplos de duplicação vs reutilização
- Praticar: Criar validadores EmailValidator e CpfValidator
- Aprofundar: Consultar
05-material-apoio.md
⚡ Execução Rápida (5 min):
cd projeto-pratico
mvn test # Executa todos os testes de validação
mvn checkstyle:check # Valida qualidade do código🏆 Benefícios da Nova Estrutura
| Antes | Agora |
|---|---|
| ❌ Validação só teórica nos slides | ✅ Validadores executáveis e testados |
| ❌ Exercícios integrados nos slides | ✅ Exercícios modulares com TDD |
| ❌ Conceitos abstratos | ✅ Problemas reais com soluções práticas |
| ❌ Feedback manual | ✅ Testes automatizados para validação |
📊 Valor Agregado:
- Identificação de duplicação: Padrões reais vs exemplos didáticos
- Solução prática: Validators executáveis com testes
- Integração: Conecta com Aula 01 (clean code) e Aula 03 (refactoring)
- Aplicabilidade: Template para outros tipos de reutilização
✅ STATUS: Aula02 Totalmente Implementada!
🎯 Segunda aula agora está 100% aderente ao padrão sistemático validado.
Template replicado com sucesso:
- ✅ Estrutura de pastas organizadas
- ✅ Material pedagógico completo
- ✅ Projeto executável com testes
- ✅ Documentação específica do tema
- ✅ Exercícios modulares e progressivos