
Princípio
Cada parte do conhecimento deve ter uma representação única, não ambígua e definitva dentro do sistema.
(Andy Hunt e Dave Thomas) - O Programador Pragmático: de aprendiz a mestre.

Impactos negativos
-
Código não coeso
-
Refatoração
- Aumenta dificuldades nas mudanças
-
Diminui a clareza

Vixxi...
public Posicao destinoNorte(){
Pessoa pessoa = new Pessoa();
pessoa.moverPara("Norte");
return pessoa.novaPossicao();
}
public Posicao destinoSul(){
Pessoa pessoa = new Pessoa();
pessoa.moverPara("Sul");
return pessoa.novaPossicao();
}
public Posicao destinoLeste(){
Pessoa pessoa = new Pessoa();
pessoa.moverPara("Leste");
return pessoa.novaPossicao();
}
Coisa linda Fih...
public Posicao destino(String direcao){
Pessoa pessoa = new Pessoa();
pessoa.moverPara(direcao);
return pessoa.novaPosicao();
}
Cuidado!
+ rapido
- coeso


ParametrosFiscaisController
Solução

Bem melhor...


Outro...

Solução...

Solução...

Qual é o limite do DRY


Há exceções
"Não há problema ter mais que uma representação para um pedaço de conhecimento, se houver um mecanismo eficaz que garanta a consistência entre os pedaços."
(Anders Munch)
http://www.infoq.com/br/news/2012/07/DRY-acoplamento-duplicacao

Eric Guilherme
Obrigado
ericguilherme6@gmail.com
Dry
By Eric Guilherme
Dry
Don't Repeat YourSelf
- 1,617