Duplicação de código

9 respostas
N

Gente,

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.

9 Respostas

A

cara,

jeito tem sim, pois dar manutenção em codigo duplicado é complicadissimooooo, entao sou a favor de nao ter codigo duplicado.

t+

V

Nem tanto. A regra aqui é:
Duplicou uma vez? Ok.
Duplicou duas? Refatore.

Duplicação de código é mesmo um dos grandes problemas na manutenção.

D

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.

N

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?

V

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.

A

minha opinão,

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. :smiley:

t+

J

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%.

J

Além disso, duplicação de código é indício de falta de encapsulamento.

Então tem objeto cuidando do que não sua obrigação.

E daí a coisa já está complicada por completo.

V

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.

Não dá para deixar a paranóia tomar conta também.

Criado 30 de setembro de 2011
Ultima resposta 30 de set. de 2011
Respostas 9
Participantes 5