Desarrollo de software. Martin Fowler. Un buen diseño pasa por reducir o eliminar el código duplicado

Martin Fowler realiza la siguiente reflexión (traducción libre): “Una de las cosas que he estado tratando de hacer ha consistido en buscar las reglas más simples que sustenten un diseño bueno o malo. Creo que una de las reglas más valiosas es evitar la duplicidad en el código. Una y solo una vez es la frase de la Programación Extrema. Los autores del libro “The Pragmatic Programmer” (Andrew Hunt y Dave Thomas) utilizan el término “No te repitas tu mismo” (Don’t repeat yourself) también denominado principio DRY.”

No hay más que pasarle el analizador estático de código Sonar a cualquier software para que te empiece a detectar un porcentaje más o menos importante de código duplicado en un programa.

Es complicado evitar la duplicidad de código en equipos de proyecto medianamente grandes o cuando existe el riesgo de no cumplir con los plazos del proyecto (en estos casos se busca que el software funcione, sea como sea y caiga quien caiga).

Sin embargo, sí que estoy de acuerdo en que en la medida de lo posible se debe evitar la utilización de código duplicado o bien si se usa, por el motivo que sea, que posteriormente se refactorice.

Es difícil sacar tiempo para refactorizar, salvo que ya lo tengas integrado dentro de la metodología de desarrollo que se esté utilizando, como por ejemplo si se utiliza Programación Extrema. Sin embargo, si en la planificación de las iteraciones se prevé una dedicación a realizar esta actividad, es posible hacerla independientemente de la metodología de base que se esté utilizando.

Existen generadores de código que pueden producir código duplicado. ¿Es ágil renunciar al generador de código? No lo es, pero hay que tener en cuenta que en el momento en que no se disponga de dicho generador empezarán los problemas, ya que lo que se te soluciona automáticamente, después se tiene que arreglar manualmente y lo mismo el esfuerzo necesario (deuda técnica) reduce considerablemente la mantenibilidad del sistema. Lo que es ágil realmente es retocar el generador para disminuir o eliminar la cantidad de código duplicado que proporciona.

1 comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: