Dry

521 views

Published on

Programador pragmático. DRY.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
521
On SlideShare
0
From Embeds
0
Number of Embeds
28
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dry

  1. 1. Análisis y Diseño de SoftwarePensamiento de la semana-Programador PragmáticoDRY –No te repitas(Don’t Repeat Yourself) Departamento de Ingeniería de Sistemas Telemáticos http://moodle.dit.upm.es
  2. 2. DRY No te Repitas ●No escribas dos veces lo mismo ●Tendrás que revisar todo el código para cambiarlo ●yprobablemente 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 2
  3. 3. Razones de la repetición●Duplicación impuesta. El entorno parece imponer la duplicación●Duplicacióndesapercibida. 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 3
  4. 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 4
  5. 5. Duplicación inadvertidapublic class Línea{ public Punto comienzo; public Punto fin; public double longitud;} Programador Pragmático - DRY - No te repitas 5
  6. 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 6
  7. 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; De momento cambiado = true; } ¡¡NO TE public double getLongitud() { if (cambiado) { PREOCUPES DE longitud = comienzo.distanciaA(fin); LAS EFICIENCIA!! cambiado = false; } return longitud; }} Programador Pragmático - DRY - No te repitas 7
  8. 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 Programador Pragmático - DRY - No te repitas 8

×