Tuesday, February 24, 2015

Patrones de Diseño

Los patrones de diseño son recursos usados por desarrolladores y arquitectos con el propósito de resolver un problema común. Mas que poseer un patrón, ellos tienen un contexto común que es usado para compartir conocimientos. Ellos tienen una poderosa herramienta que provee soluciones que también reflejan un contexto sobre un problema de desarrollo.

Saber donde aplicar un patrón de diseño para obtener una solución acorde al problema es difícil, requiere desarrolladores experimentados y un amplio conocimiento para llegar a elegir la solución correcta. Los desarrolladores en el camino a tomar buenas decisiones de diseño se dedican a aprender la intención o motivo para cada patrón, ven ejemplos de implementaciones, leen libros o cualquier actividad para mejorar sus habilidades.

Tipos de Patrones


Sin embargo, hay muchos tipos de patrones de diseño tales como los patrones orientados a objetos (OOP), arquitecturales, patrones para desarrollar en Android, y otros recomendados por compañías como Microsoft para ser usadas en sus sistemas. Los desarrolladores pueden encontrar esas soluciones probadas en diferentes contextos, variando la forma de ser implementados  y comúnmente haciendo una combinación entre éstos.

El Otro Lado


Algunas veces, los patrones de diseño no son la solución necesitada porque se aplicó el patrón incorrecto o simplemente, porque el problema a resolver no requiere uno. Tales prácticas son también conocidas como anti-patrones.
Cuando se implementa un diseño, entonces se busca que el sistema sea más flexible para ciertos tipos de implementaciones. Los desarrolladores tienen que trabajar con las ventajas y desventajas de los patrones seleccionados y los beneficios deben ser mayores, en caso contrario, los desarrolladores podrían odiarte por tus malas decisiones que producen un desarrollo más lento, además de un sistema que aumenta su complejidad rápidamente.

¿Balas de Plata?


Las soluciones proveídas por los patrones son probadas y los buenos desarrolladores tienen una noción sobre lo que sucede en la parte del sistema donde es implementado uno. Ellos saben más rápido cuál es y dónde arreglar un problema, donde hacer un cambio o añadir una nueva funcionalidad. El conocimiento de los patrones es más allá de los sistemas implementados, equipos y compañías, por tanto, es necesario tomar esa ventaja y usarlos.