Tip 11: DRY—Don't Repeat Yourself - No te repitas

Un programador reune, organiza, mantiene y utiliza conocimientos. Se documentan en las especificaciones, cobran vida al ejecutar el código y se usan durante los test al comprobar los resultados.
Estos conocimientos no son estables y cambian durante el desarrollo de la aplicación.

Una buena costumbre es no duplicar el conocimiento. Debe ser expresado en un sólo lugar, así, si este conocimiento cambia, sólo habrá que modificarlo en dicho lugar.

La mayoría de las duplicaciones se pueden encontrar dentro de las siguientes categorías:
  • Duplicación impuesta. Parece que no hay elección, el sistema parece que requiere de duplicación. Con un poco ingenio puede que se evite la duplicación. Al documentar el código se está duplicando información, para evitarla, el propio código debe ser la documentación de bajo nivel, mientras que los comentarios sería la explicación de de alto nivel.
  • Duplicación inadvertida. A veces se está duplicando la información por errores en el diseño. Por ejemplo, una linea esta compuesta por 2 puntos o por un punto y un ángulo y una distancia. Una clase que define la linea tiene información duplicada si tiene 2 puntos y una longitud.
  • Duplicación impaciente. Se duplica porque parece más fácil copiar y pegar y modificar un poco. En ese momento puede resultar beneficioso, pero a la larga requerirá más tiempo.
  • Duplicación multiprogramador.Varios programadores duplican información. Para evitarlo lo mejor es una buena comunicación entre programadores.

No hay comentarios: