¡Se acabo el 'copy-paste'!

Clone Detective for Visual Studio Screenshot El antipatrón 'programación de corta y pega' es un mal que aparece a menudo en muchos proyectos. Si bien es cierto que Ibon Landa logró hacer de ello un arte en nuestros tiempos en Panda Software, no todo el mundo tiene su capacidad. Los problemas que se derivan de este antipatrón son muy numerosos, sobre todo relacionados con la mantenibilidad del código. Básicamente se trata de una violación en toda regla un principio básico en el desarrollo de software, el principio DRY (Don't repeat yourself). Las duplicidades en el código a menudo llevan a inconsistencias y son un indicador claro de que el código no se está refactorizando adecuadamente.

Si bien es cierto que todo desarrollador experimentado sabe que a la larga el copy-paste es dañino, también es cierto que es algo que todos hemos hecho en alguna ocasión y que muchos desarrolladores poco experimentados a menudo abusan del copy-paste. El problema viene de que cuando este abuso se detecta el mal ya esta hecho. Basta un desarrollador poco displicinado o poco experimentado que caiga en este error para que el proyecto sufra los problemas derivados del mismo. Having duplicates can easily lead to inconsistencies and often is an indicator for poorly factored code.

Conscientes de este problema ha nacido Clone Detective for Visual Studio, un addin perfectamente integrado en Visual Studio cuyo cometido es detectar donde se están introduciendos duplicidades en el código, bien por copy-paste o bien por errores de diseño que obligan a introducir código muy similar. De momento solo funciona para C#.

Yo de momento no lo he utilizado en ningún proyecto grande, pues estoy de vacaciones, pero puedo decir que si que lo he instalado y tiene bastante buena pinta. Si queréis ver como funciona antes de instalarlo visitad la sección de videos de la web del proyecto en Codeplex.

Published 29/8/2008 20:50 por Rodrigo Corral
Comparte este post:
http://geeks.ms/blogs/rcorral/archive/2008/08/29/161-se-acabo-el-copy-paste.aspx

Comentarios

# re: ¡Se acabo el 'copy-paste'!

"Having duplicates can easily lead to inconsistencies and often is an indicator for poorly factored code."

copy&translate&paste

"Las duplicidades en el código a menudo llevan a inconsistencia y son un indicador claro de que el código no se está refactorizando adecuadamente."

Friday, August 29, 2008 9:31 PM por German

# re: ¡Se acabo el 'copy-paste'!

Suena bien eso, como ayuda para la refactorizacion....  a ver si ayuda a solucionar el problema de darse cuenta luego de que ese "algo" hubiera estado mejor en una libreria compartida.

Lo malo es que como de costumbre sigue pareciendo que los usuarios de Visual Basic son los "parientes pobres" en el mundo de .NET. Empezando con el hecho de que en la MSDN algunos ejemplos de metodos o propiedades solo estan en C#, o que las herramientas para SharePoint no salieron en VB...

Friday, August 29, 2008 9:42 PM por Ernesto

# re: ¡Se acabo el 'copy-paste'!

@German: ¿Y cúal es el problema? La fuente está citada y enlazada y si copie una frase...

Friday, August 29, 2008 10:11 PM por Rodrigo Corral

# re: ¡Se acabo el 'copy-paste'!

@Ernesto: Si, parece que cada vez más, C# es el lenguaje elegido... :(

.Net prometia la libre elección de lenguaje... pero luego está la dura realidad.

Friday, August 29, 2008 10:12 PM por Rodrigo Corral

# re: ¡Se acabo el 'copy-paste'!

Muy bueno el Add-In Rodrigo!

Un saludo

JC's

Friday, August 29, 2008 11:19 PM por Juan Carlos González Martín

# re: ¡Se acabo el 'copy-paste'!

Por cierto decir que tiene una pega... es requisto tener el runtime de Java instalado. Aunque el plugin esta desarrollado en .Net utiliza ConQat (http://conqat.cs.tum.edu) que requiere Java.

Un saludo!

Saturday, August 30, 2008 12:15 AM por Rodrigo Corral

# re: ¡Se acabo el 'copy-paste'!

mmm .... interesante herramienta, espero ver como se comporta con un proyecto grande, porque con un "Hola Mundo" funciona de perlas !!!

Saludos

Saturday, August 30, 2008 1:49 PM por El Bruno

# re: ¡Se acabo el 'copy-paste'!

Una herramienta magnifica, pero sigue haciendo falta disciplina para usarla. Si la tienes instalada pero no la usas, sigues igual.

Sunday, August 31, 2008 1:48 PM por Diego Juez

# re: ¡Se acabo el 'copy-paste'!

Que tal Rodrigo, saludos.

No sabes si sale para Visual Basic?.

Monday, September 01, 2008 4:14 PM por Jer®

# re: ¡Se acabo el 'copy-paste'!

:(  buah!!! seria muy bueno esto para VB :)

Salu2

Ddaz

Monday, September 01, 2008 6:30 PM por David Daniel Arroyo Zari "Ddaz"

# re: ¡Se acabo el 'copy-paste'!

Es una buena herramienta, pero es una pena que sólo funcione con VS 2008 y no con VS 2005 :(

Monday, September 01, 2008 6:53 PM por DarkSpy

# re: ¡Se acabo el 'copy-paste'!

De momento solo está para VS2008 y para C#... no sé como evolucionará el proyecto, pero creo que sería 'fácil' añadir soporte para VB... al fin y al cabo 'solo' se trata de detectar duplicados... ¿no?

El código es abierto, así que si alguno se anima a colaborar...

Tuesday, September 02, 2008 12:03 AM por Rodrigo Corral

# re: ¡Se acabo el 'copy-paste'!

El copy-paste es una de las mejores invenciones que se ha creada y nunca morira.

Viva el copy-paste !!!!

Wednesday, September 03, 2008 3:02 AM por fabio

# re: ¡Se acabo el 'copy-paste'!

Hay algo que me sorprendio entre los requisitios decia Java?

La verdad que lo lei varias veces y no me creo aun... No tengo nada en contra de Java pero... :)

Wednesday, September 03, 2008 5:46 AM por Enrique Ortuño

# re: ¡Se acabo el 'copy-paste'!

Rodrigo eres un crack, vaya eso por delante, te sigo en charlas, leo los libros que recomiendas y sigo tu blog, así que espero que aceptes de buen agrado esto:

"deribar": los problemas o se derriban o se derivan, pero nunca se "deriban".

Pásale un correcto a tus posts. No es admisible, por respeto a tu público, una falta de esas. ;)

Sin acritud :)

Sunday, September 07, 2008 2:18 AM por Toneti

# re: ¡Se acabo el 'copy-paste'!

Gracias Toneti, ya está corregido.

Sunday, September 07, 2008 1:28 PM por Rodrigo Corral