Post on 23-Jun-2015
description
Análisis y Diseño de Software
Departamento de Ingeniería de Sistemas Telemáticoshttp://moodle.dit.upm.es
Pensamiento de la semana- Programador PragmáticoDRY –No te repitas(Don’t Repeat Yourself)
Programador Pragmático - DRY - No te repitas 2
DRY No te Repitas●No escribas dos veces lo
mismo
●Tendrás que revisar todo el código para cambiarlo
●y probablemente te olvides de cambiarlo en algún sitio
●Busca si tu código tiene fragmentos repetidos y quítalos (refactoriza)
Programador Pragmático - DRY - No te repitas 3
Razones de la repetición
●Duplicación impuesta. El entorno parece imponer la duplicación
●Duplicación desapercibida. No te das cuenta de que estás duplicando.
●Duplicación por impaciencia. Duplicar es más rápido... (cortar y pegar)
●Duplicación entre desarrolladores. Trabajando en grupo se duplica código entre diferentes equipos
Programador Pragmático - DRY - No te repitas 4
Duplicación impuesta● Misma información en diferentes formatos
● Comentarios del código iguales al código
● Si cambio el código, cambio el comentario
● Usa comentarios de alto nivel
● No leas el código, para eso lo mejor es un código bien comentado
Programador Pragmático - DRY - No te repitas 5
Duplicación inadvertidapublic class Línea{
public Punto comienzo;
public Punto fin;
public double longitud;
}
Programador Pragmático - DRY - No te repitas 6
Duplicación inadvertidapublic class Línea{
public Punto comienzo;
public Punto fin;
public double longitud() { return comienzo.distanciaA(fin);};
}
Programador Pragmático - DRY - No te repitas 7
Duplicación inadvertidapublic class Línea{ private Punto comienzo; private Punto fin; private double longitud; // duplicado pero por prestaciones private cambiado = true; // cálculo vago private setComienzo(Punto p){
comienzo = p; cambiado = true; } public double getLongitud() {
if (cambiado) {longitud = comienzo.distanciaA(fin);
cambiado = false; } return longitud; }}
De momento
¡¡NO TE PREOCUPES DE LAS EFICIENCIA!!
Programador Pragmático - DRY - No te repitas 8
DRY●Intenta que si algo cambia, sólo tengas
que cambiarlo en un sitio
●Busca patrones visuales de comprobaciones, estructuras... que se repiten y ¡quítalos!– Métodos booleanos– Métodos auxiliares– Mira si la estructura del programa es correcta– Uso de un valor dos veces constante