Con el paso de los años los lenguajes y frameworks, herramientas, técnicas y plataformas, lo que llamamos tecnología, van cambiando aceleradamente (1). Sin embargo, hay algo que permanece en el tiempo, un hilo invisible que une a un programa escrito en FORTRAN (1957) con uno escrito en ruby (2005) (2). Podemos capturar esa esencia (sustento) en forma de principios o elegancia (expresión) en forma de patrones de diseño.

Los patrones son pares: intención y solución, organizados en forma de catálogo que pueden aplicarse en una variada gama de lenguajes (con distinto grado adaptación). Son para mi una buena fuente para aprender sobre diseño en la etapa shu, ya que nos hablan del qué hacer. Tienen la forma de una receta, por ejemplo si quiero hace una torta para el mate de la tarde, puedo buscar entre un catálogo de recetas y elegir una para hacer, acorde a mi intención. En el desarrollo de software, los patrones son algo parecido, si quiero poder intercambiar entre una familia de algoritmos sin afectar al código cliente que las usará, puedo encontrar en el patrón strategy una solución probada. Algunas fuentes de referencia:

Los principios de diseño son algo más difícil de descubrir (dejar de cubrir) y tienen que ver con la esencia. Tienen una aplicación (variedad de tecnologías) y una presencia (en el tiempo) mucho más amplia. Los principios nos hablan más del cómo hacer que del qué hacer. Son también una fuente para aprender sobre diseño, pero a diferencia de los patrones, están en la etapa ha. Para dar un ejemplo, uno de los principios fundamentales es el conocido como DRY (Don’t repeat yourself), que nos invita a evitar la duplicación, pero no nos dice como hacerlo. Algunas fuentes de referencia:

Detras de los patrones de diseño podemos encontrar varios principios. Por ejemplo el patrón strategy aplica:

  • encapsular lo que varía
  • programar hacia interfaces, no implementaciones
  • favorecer composición sobre herencia

Los patrones nos ofrecen la posibilidad de encontrar soluciones elegantes y probadas, basadas en principios. Patrones y principios son, desde la mirada oriental, indivisibles. Los principios nos hablan del cómo, del sustento (yin) y los patrones del qué, de la expresión (yang). La interacción entre los dos es lo que nos ofrece una opción simple y elegante a la intención. Después de ver muchos patrones, podemos descubrir (dejar de cubrir) un hilo conductor y hacerlo visible en forma de principio. Como también, llegar a un patrón por otro camino, aplicando principios de diseño.

 

compartir...Tweet about this on TwitterShare on FacebookShare on Google+Email this to someone