ESTRATEGIA DE DISEÑO

La estrategia de desarrollo comienza por un diseño bien simple y se refina continuamente

La cosa más simple que pueda funcionar

Se quiere buscar una estrategia simple de diseño, donde intervengan los 4 valores:

  • Comunicación: Un diseño complicado es más difícil de comunicar que uno simple. Debemos crear  una estrategia de diseño donde sus elemento comuniquen aspectos importantes del sistema al lector

  • Simplicidad: La estrategia deberá producir diseños simples y la estrategia en si misma debe ser simple (simple no quiere decir fácil)

  • Retroalimentación: Un diseño simple se hace rápido, se codifica y se ve como el código aparece

  • Coraje: Para poder diseñar teniendo confianza en que con el tiempo se puede agregar nuevas funcionalidades

Teniendo en cuenta los principios:

  • Inversión inicial pequeña: Debemos hacer en diseño la mínima inversión posible

  • Asumir simplicidad: Asumimos que el diseño más simple que podemos imaginar realmente funciona

  • Cambio incremental: La estrategia de diseño debe funcionar por cambios graduales

  • Viajar ligero: La estrategia no debe producir diseño extra. Debemos comenzar simple y refinar continuamente

Estrategia  de diseño

  1. Comenzar con la prueba. Tenemos que tener cierta cantidad de diseño para escribir la prueba. Cuales son los objetos y sus métodos visibles?

  2. Diseñar e implementar solo para tener esa prueba corriendo ( y sus pruebas previas)

  3. Repetir

  4. Si en algún momento se ve la posibilidad de hacer el diseño más simple, se hace

 Esta estrategia es simple, pero no es fácil

Que es simple?

El mejor diseño, es aquel más simple que corre todos los casos de prueba.

Para XP simple significa (en orden de prioridad)

  1. EL sistema (código y casos de prueba) deben comunicar todo lo que se deba comunicar

  2. El sistema no debe contener código duplicado

  3. Debe tener la menor cantidad de clases

  4. Debe tener la menor cantidad de métodos

Si se usa el diseño como medio de comunicación, se deben tener objetos o métodos para todo concepto importante. Se deben elegir los nombres de las clases y métodos para que trabajen juntos.

 

Diseño a través del Refactoring
Arquitectura