domingo, 24 de octubre de 2010

Design Patterns!

Uuuuuy!

Se oye muy de “caché” el término, y al menos en mi experiencia en mas de una entrevista me han preguntado que son y si los conozco, y es que el conocimiento de los Design Patterns es tan básico, pero al mismo tiempo tan complejos, al menos para el programador por conveniencia, que no supo realmente a lo que se metió cuando decidió estudiar para la industria de Software Development. Es verdad,! nada mas piensa, tu le entrarias a un mercado que se renueva cada 2 años, te exige aprender y aprender nuevamente, mantenerte actualizado dia a dia, por supuesto que lo pensarias dos veces!

Pero nadie nos advierte de esto, y al menos el conocimiento de los Design Patterns es una herramienta que, comprendida, verás que no es tan dificil como parece.

 

Bueno, y a todo esto, que es un Design Pattern?

Es una solucion reutilizable para un problema recurrente en la labor de diseño, y me quedo hasta ahi porque el concepto no solo aplica para Software Development, sino para muchas ramas de la ciencia. Originalmente, Alexander penso en Arquitectura e Ingenieria Civil cuando penso en el concepto, siendo el un Arquitecto de renombre, y en base a su experiencia en distintos proyectos de este tipo, se dio cuenta que muchos de los problemas de su area de conocimiento tenian soluciones que podian utilizarse, no importando el tipo de edificio o el uso que se le fuera a dar a la construccion. Publico un libro, “A Pattern Language: Towns, Buildings, Construction”, en donde definió… bueno ya jajaja ahi estan los links por si les interesa algo mas.

 

La aplicacion en sistemas se las atribuimos a Kent Beck y Ward Cunningham, al ultimo lo podemos escuchar en el ultimo podcast de This Developer's life, un podcast muy interesante por cierto.

Pero, como utilizamos los Design Patterns? muy facil, se identifican los aspectos de tu aplicación que varían y separarlos de lo que se mantiene igual. Si ya existe un patron de diseño que soluciona tu problema solo se ajusta a tu necesidad y listo, en caso que no exista, soluciona tu problema, de hecho si encuentras esta situacion muy seguido, y puedes formular una solucion que satisface a todos, habras inventado un Design Pattern!

 

Existen diferentes tipos,  y se clasifican normalmente dependiendo del tipo de problemas que resuelven, las divisiones mas utilizadas son:

 

  • Creacion
  • Estructura
  • Comportamiento
  • Concurrencia

 

En los siguientes posts trataremos algunos de los diferentes tipos, asi como ejemplos de cada uno y como pueden ser de utilidad. Hasta la próxima!

1 comentarios:

Unknown dijo...

oohhh!!! cuanta sabiduria amor, siguenos iluminando =D

Publicar un comentario