Code Smells
Sinais sutis de que algo no código pode ser melhorado. Não são bugs, mas indicam problemas que vão crescer com o tempo.
O cheiro na geladeira
Sabe quando você abre a geladeira e sente um cheiro ruim, mas não vê nada estragado de cara? Você precisa investigar. Code smells são assim: o código funciona, mas algo cheira mal — e se você não resolver, vai piorar até virar um problemão.
O que são Code Smells?
São padrões no código que indicam possíveis problemas de design. Não causam erros imediatos, mas aumentam a dívida técnica — tornando o código mais difícil de entender, manter e evoluir com o tempo.
God Class e Feature Envy
God Class é uma classe que faz tudo — sabe demais e controla demais. Feature Envy é quando um método usa mais dados de outra classe do que da sua própria. Ambos indicam que responsabilidades estão no lugar errado.
Long Method e Dívida Técnica
Métodos longos (50+ linhas) são difíceis de ler e testar. Cada atalho que tomamos gera dívida técnica — como parcelas que acumulam juros. Quanto mais demora pra refatorar, mais caro fica.
A classe que faz tudo (God Class)
Veja como uma God Class concentra responsabilidades demais e como separar:
// ❌ God Class - faz TUDO
class PedidoService {
criarPedido() { /* ... */ }
calcularFrete() { /* ... */ }
processarPagamento() { /* ... */ }
enviarEmail() { /* ... */ }
gerarNotaFiscal() { /* ... */ }
atualizarEstoque() { /* ... */ }
}
// ✅ Responsabilidades separadas
class PedidoService {
criarPedido() { /* ... */ }
}
class FreteService {
calcularFrete() { /* ... */ }
}
class PagamentoService {
processarPagamento() { /* ... */ }
}
class NotificacaoService {
enviarEmail() { /* ... */ }
}Refatoração: a faxina do código
Refatorar é como fazer faxina na casa: você não muda o que a casa faz (ainda mora nela), mas reorganiza para ficar mais fácil de viver. Faça aos poucos, regularmente — não espere a bagunça virar um episódio de acumuladores.