Usamos y abusamos de la orden de copiar y pegar que nos proporcionan los programas de desarrollo.
Cuando copiamos y pegamos un trozo de código estamos claramente ante un caso de código duplicado. La pregunta es: ¿realmente tenemos claro qué es y qué supone en nuestros proyectos?
Según la definición, de
Baxter del año 2002, código duplicado son aquellos segmentos de código que son similares según alguna definición de similaridad. De manera informal, es un
trozo de código ligeramente igual. Si copiamos y pegamos un trozo de código y lo único que cambiamos es una cadena, estamos ante un trozo de código duplicado.
Las excusas
La mayoría de los proyectos que analizamos cada día cuentan con un alto porcentaje de código duplicado y nos encontramos un millón de excusas para justificarlo. Si un proyecto es grande, tendrá más de un desarrollador trabajando en él y muchas veces este tipo de código aparece “sin querer”. Otro motivo muy escuchado es que, por motivos de tiempo, es necesario programar una funcionalidad que puedo copiar de otro trozo de código, modificándolo ligeramente.
Los problemas que provoca
Tener código duplicado en un proyecto hará que sea más difícil de mantener, porque el número de líneas de código aumenta innecesariamente, es necesario documentar el doble, la complejidad ciclomática aumenta, el número de pruebas unitarias a realizar será mayor, el número de evidencias de errores potenciales o malas prácticas a corregir se duplica y, por supuesto, la deuda técnica aumenta considerablemente. Del mismo modo, resultará más costoso implementar nueva funcionalidad, porque el código es más difícil de entender. La corrección de errores también se complica, porque aparecerán replicados en muchas partes del código.
¿Por qué no lo arreglamos?
Normalmente, los problemas de código duplicado se arreglan realizando un buen
diseño o llevando a cabo una buena refactorización. La realidad es que tenemos que concienciarnos de que mientras estamos arreglando un problema de este tipo
no estamos perdiendo el tiempo. El tiempo en arreglarlo es
tiempo invertido y ayudará a que la aplicación tenga una vida más larga y de mejor calidad.
En conclusión, si un proyecto está libre de código duplicado será más fácil de comprender, ampliar, modificar, detectar errores y arreglarlos. Haz un buen diseño, controla el código duplicado, refactoriza tu código y no abuses de la opción copy-paste.