Utilización de patrones de diseño

En el comentario #5 de este post de Programania veo una cuestión que me ha llamado la atención:

yo tengo una duda.
cuales son las ventajas y desventajas de NO utilizar patrones de diseño en mi aplicación web.

Es realmente curioso pensar cómo hay bastante gente cree que los patrones de diseño son como las herramientas o librerías que tienes disponibles para un proyecto. La realidad es muy distinta.

Una persona empieza de programador novato y a lo largo de su carrera profesional va participando en varios proyectos. A poco que sea espabilidado, verá que suele repetir una y otra vez trozos de código similares, se le presentan problemas similares y está haciendo una y otra vez lo mismo en distintos proyectos -no el mismo código, sino resolviendo los mismos problemas-. También va viendo como el ćodigo que hizo en el proyecto anterior se puede mejorar, se puede hacer más reutilizable e incluso se puede hacer con un diseño más elegante.

Después de doscientos proyectos, esa persona acaba encontrando unas soluciones o forma de hacer las cosas que le funcionan para todos esos problemas que se le presentan una y otra vez y, al final, adopta mecánicamente esas soluciones, sin necesidad de pensar mucho. Pues bien, esas soluciones, o unas como esas, son los patrones de diseño.

Aplicar o no aplicar patrones de diseño en un proyecto no es como decidir si uso o no uso una librería o una herramienta. Si no usas patrones de diseño, lo más probable es que no estés haciendo tu código de la mejor forma posible. Debes usar patrones de diseño siempre.

Otro tema es que un programador novato o con poca experiencia puede tener dificultades para elegir el patrón de diseño adecuado en cada caso. Es bastante probable, sobre todo cuando se descubren los patrones de diseño, que tiendas a aplicar patrones complejos a problemas sencillos y, de la que estás, matar esa molesta mosca de un cañonazo.

Esta entrada fue publicada en diseño. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.