💻 Projeto Prático - Aula 01
🎯 Objetivo
Este projeto contém códigos executáveis que demonstram os conceitos de boas práticas de programação em Java abordados na aula.
📁 Estrutura do Projeto
projeto-pratico/
├── src/
│ ├── main/java/aula01/
│ │ ├── ExemploAntes.java # Código "ruim" - antes da refatoração
│ │ ├── ExemploDepois.java # Código "limpo" - após refatoração
│ │ ├── ExercicioRefatorar.java # Exercício para o aluno praticar
│ │ └── GabaritoExercicios.java # Soluções dos exercícios
│ └── test/java/aula01/
│ └── ExemploDepoisTest.java # Testes JUnit para validação
├── README.md # Este arquivo
└── pom.xml # Configuração Maven (opcional)
⚡ Como Executar
Opção 1: Compilação Manual
# Navegar até a pasta projeto-pratico
cd projeto-pratico
# Compilar todos os arquivos Java
javac -d . src/main/java/aula01/*.java
# Executar exemplos (não têm main, são classes de exemplo)
# Para testar, use os métodos nos testes ou crie um main
# Compilar testes (se tiver JUnit configurado)
javac -cp .:junit-jupiter-api-5.8.2.jar -d . src/test/java/aula01/*.javaOpção 2: IDE (Recomendado)
VS Code:
- Abrir pasta
projeto-praticono VS Code - Instalar extensão “Extension Pack for Java”
- Clicar direito nos arquivos → “Run Java”
IntelliJ IDEA:
- Import Project → Selecionar pasta
projeto-pratico - Configurar como “Java Project”
- Run → Run ‘ClassName’
Eclipse:
- File → Import → Existing Projects into Workspace
- Selecionar pasta
projeto-pratico - Right-click → Run As → Java Application
🧪 Executando os Testes
Pré-requisitos:
- JUnit 5 (Jupiter) configurado na IDE ou baixado manualmente
Via IDE:
- Clicar direito em
ExemploDepoisTest.java - Selecionar “Run as JUnit Test”
Via Maven (se configurado):
mvn testVia linha de comando:
# Baixar JUnit se necessário
wget https://repo1.maven.org/maven2/org/junit/platform/junit-platform-console-standalone/1.9.2/junit-platform-console-standalone-1.9.2.jar
# Compilar e executar testes
java -cp .:junit-platform-console-standalone-1.9.2.jar org.junit.platform.console.ConsoleLauncher --scan-classpath📚 Descrição dos Arquivos
📄 ExemploAntes.java
Propósito: Demonstra código com problemas típicos
- Nomes de métodos e variáveis unclear
- Formatação inconsistente
- Lógica confusa que gera bug
Como usar: Analisar e identificar problemas antes de ver a solução
📄 ExemploDepois.java
Propósito: Versão refatorada com boas práticas
- Nomenclatura clara e descritiva
- Formatação consistente
- Comentários úteis quando necessário
- Lógica explícita e testável
Como usar: Comparar com versão “antes” para entender melhorias
📄 ExercicioRefatorar.java
Propósito: Código para o aluno praticar refatoração
- Classe
Ccom métodocalcconfuso - Exercício hands-on da aula
Como usar:
- Analisar problemas
- Refatorar aplicando boas práticas
- Compare com gabarito
📄 GabaritoExercicios.java
Propósito: Soluções dos exercícios propostos
- Classe
Calculadorarefatorada - Método
proximaPaginacom comentários apropriados
Como usar: Consultar após tentar resolver os exercícios
📄 ExemploDepoisTest.java
Propósito: Testes automatizados para validação
- Testes unitários com JUnit 5
- Cobertura dos métodos refatorados
- Demonstra como testar código limpo
Como usar: Executar para validar implementações
🎯 Exercícios Práticos
🔥 Exercício 1: Análise Comparativa (15 min)
- Abra
ExemploAntes.javaeExemploDepois.javalado a lado - Liste 3 melhorias específicas da refatoração
- Explique o impacto prático de cada melhoria
💻 Exercício 2: Refatoração Guiada (20 min)
- Copie o conteúdo de
ExercicioRefatorar.java - Refatore seguindo princípios da aula:
- Renomear classe e método
- Melhorar nomes de parâmetros
- Adicionar tratamento de erro
- Documentar com JavaDoc
- Compare com
GabaritoExercicios.java
🧪 Exercício 3: Criação de Testes (25 min)
- Crie uma classe
CalculadoraTest.java - Escreva testes para o método
calcular()do gabarito - Inclua casos de:
- Operações válidas (adição, subtração)
- Operação inválida (deve lançar exception)
- Valores extremos (0, negativos)
🔧 Troubleshooting
❌ “Comando ‘javac’ não reconhecido”
-
Problema: Java não está instalado ou configurado no PATH
-
Solução:
# Verificar instalação java -version # Se não instalado, baixar do site oficial Oracle # Adicionar JAVA_HOME ao PATH do sistema
❌ “Cannot find symbol” nos imports
- Problema: JUnit não está configurado
- Solução: Use IDE com suporte automático ao JUnit ou baixe JARs manualmente
❌ “Main method not found”
- Problema: Classes de exemplo não têm método main
- Solução: Create uma classe separada para testar:
public class TesteExemplos { public static void main(String[] args) { ExemploDepois exemplo = new ExemploDepois(); System.out.println(exemplo.calcularSubtotal(5, 10, true)); } }
❌ Testes não executam
- Problema: JUnit 5 requer Java 8+
- Solução: Verificar versão do Java e usar JUnit compatível
📈 Próximos Passos
Para aprofundar o aprendizado:
-
Experimente variações:
- Refatore outros códigos seus aplicando os conceitos
- Crie novos testes para validar refatorações
-
Explore ferramentas:
- Configure Checkstyle para validar automaticamente
- Use SonarLint para detectar problemas de qualidade
-
Aplique em projetos reais:
- Pegue código de trabalho/estudo e refatore
- Documente o processo before/after
-
Prepare-se para próxima aula:
- Identificar código duplicado em seus projetos
- Estudar conceitos básicos de DRY (Don’t Repeat Yourself)
📞 Suporte
Para dúvidas técnicas:
- Professor: ricardo.pires@etec.sp.gov.br
- Monitoria: Quintas 14h-16h (Lab de Informática)
Para contribuições:
- Achou um bug no código? Reporte!
- Tem sugestão de melhoria? Compartilhe!
- Criou exercício interessante? Contribua!
✅ Validação do Ambiente
Execute este checklist para certificar que está tudo funcionando:
-
javac --versionretorna versão 8 ou superior - Consegue compilar
ExemploDepois.javasem erros - IDE reconhece e importa projeto automaticamente
- Testes JUnit executam com sucesso
- Console mostra output esperado nos exemplos
Se algum item falhou: Consulte seção Troubleshooting ou procure ajuda na monitoria.