o assunto é duplicação de código. Aqui na empresa está a maior novela sobre este assunto, podendo ser sentenciado a pena de morte quem escreve código duplicado. A lei aqui é zero duplicação. Gostaria de saber da experiência de vocês. Se na empresa em que vocês trabalham existe esse nível de exigência. O que vocês acham sobre isso e se é possível ter um código 100% sem duplicação.
Camarada, analisando como programador, duplicar código apenas aumenta o trabalho.
Se você percebeu que tem um método que se repete em mais de uma classe, remova-o das classes e crie uma nova classe, mesmo que seja só para ter este método.
Isso é um dos princípios básicos da OO.
Se os métodos estão em classes diferentes, possuem semelhanças como tipo de retorno e parâmetros, mas as lógicas deles são diferentes, use polimorfismo.
Isso faz com que você desacople os objetos, torne as classes mais específicas e mantenha um padrão.
Sem contar que o tempo desprendido para criaro mesmo código em 10 classes é bem maior que fazer do jeito certo.
Agradeço a colaboração de vocês em dar suas opiniões e concordo. Duplicação de código é mesmo um saco. Mas acho que existe um limite e exigir 100% sem duplicação é um pouco difícil de se aplicar. Mas o que vejo aqui são programadores escrevendo métodos para eliminar a duplicação antes mesmo da duplicação existir realmente, e justificam isso pensando num futuro distante em que aquilo venha a acontecer. E o que vejo é que na maioria das vezes são coisas inúteis pois aquele mesmo código não vai aparecer mais em lugar algum. Mas acredito que se realmente um dia isso venha a acontecer, é possível refatorar e fazer as coisas nos conformes. Bom, mas existe um limite aceitável de duplicação? tipo, a que o ViniGodoy sugeriu, uma vez é aceitável, duas vezes vai para o refatoramento?
Essa prática que sugeri, se não me engano, vi no livro refatoração do Martin Fowler, mas acho que varia muito de equipe para equipe.
Na minha, só temos programadores seniores e plenos.
Mas isso é só uma regra prática. Muitas vezes refatoramos mesmo de primeira, se fizer sentido.
tente fazer seu codigo sem nenhuma duplicação, pois se vc tiver um cliente exigente (para não falar outra coisa…rsrs) e um dia vc tiver que fazer uma manutenção nesse codigo e vc arruma num lugar e esquece do outro, vai acontecer um grande chateação, entao evite.
Pessoalmente, acho duplicação de código uma coisa muito simples de resolver.
Identificar, separar, substituir. Beleza. Qualquer bom programador consegue.
Não entendo por que falam que é impossível conseguir 100% de sucesso.
É claro que admito que fica mais complicado se foi deixado muito tempo sem
se preocupar com isso, o projeto tem 600 mil linhas de código e agora é que
vamos começar a caçar as duplicatas.
Mas quem começa, já com esse cuidado, não tem nenhuma dificuldade de atingir
os 100%.
Isso também é uma má prática. Preocupar-se em excesso com o futuro, principalmente no nível do micro-código (e não da arquitetura geral do sistema), geralmente gera código mau escrito.
Outro exemplo desse caso é a otimização prematura. Tem gente que gasta muito tempo e esforço otimizando métodos que sequer terão problemas de performance.
Deixam no lugar um código difícil de ler e gastam muito mais tempo do que seria necessário.