4. Sintomas de quando aplicar
● Precisou copiar/colar código
● Abriu um código alheio e não entendeu o que
faz
● Muitos blocos/encadeamentos condicionais
● Identificou linhas de código iguais
● Identificou linhas de código parecidas,
mudando apenas os valores de dados
5. Views
● Expressões com valores
– Dificultam a manutenção
– Pode ser substituido por helper
– Refatoração: Substituir valor temporário por consulta
6. Views
● Regras de view complexas
– Bad smell mais comum e normalmente são espalhados pelos sistemas
– Força o desenvolvedor a conhecer toda a api (inverso de encapsulamento)
– Podem ser traduzidas em palavras que refletem regras de negócio
– Normalmente podem ser substituidas por helpers
– Refatoração: Extrair método
8. Classes
● Injeção de parametros
– Serve pra funções/métodos e construtores
– O problema é mais grave em APIs com DI
– Refatoração: Introduzir objeto parâmetro (facade)
● No Ruby é possível usar hash para o mesmo propósito, evitando a classe facade.