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)

TempoAtividadeMétodo
0-15 minConceito DRY + impactosExpositiva
15-45 minLive coding - duplicação vs reutilizaçãoDemonstrativa
45-75 minExercícios práticosHands-on
75-90 minRevisão e gabaritoDiscussão
90-105 minChecklist e conexão com Aula 03Sí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:

  1. Revisar: material-pedagogico/04-guia-professor.md
  2. Preparar ambiente: Código com duplicação preparado
  3. Ministrar: Usar 02-slides-apresentacao.md
  4. Gerenciar exercícios: 03-exercicios-praticos.md

🎓 Para Alunos:

  1. Setup: Seguir projeto-pratico/README.md
  2. Estudar: Analisar exemplos de duplicação vs reutilização
  3. Praticar: Criar validadores EmailValidator e CpfValidator
  4. 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

AntesAgora
❌ 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

3 items neste arquivo.