Para aplicaciones web, entender al menos en un nivel rudimentario los patrones descritos en Patrones de la arquitectura de aplicaciones empresariales me ha resultado valioso. Los patrones de Gang of Four también valen la pena.
Pero yo diría que simplemente no necesita el conocimiento enciclopédico de los patrones para comenzar. Una comprensión superficial le ayudará a comprender dónde mirar cuando comience a encontrar fricción entre sus ideas/problemas comerciales y su código. Tuve un par de viajes de fin de semana que me permitieron analizar estos dos libros en su totalidad, pero todavía encuentro la información detallada en la sección de patrones más útil como referencia que como conocimiento de fondo.
Leer solo las secciones "Parte 1" del GoF o PoEAA le ayudará mucho más que aprender tres o cuatro patrones en profundidad, porque sabrá dónde buscar cuando tenga problemas que describan. Y puede buscar los detalles de la mayoría de los patrones que describen en línea.
Los patrones de GoF que uso directa o indirectamente, a menudo inconscientemente, en el desarrollo web, incluyen: Observador, Comando, Compuesto, Estado, Estrategia. Normalmente no utilizo Singleton, excepto como cliente de herramientas de registro y localización de servicios/inyección de dependencias. Los patrones PoEAA que utilizo regularmente, generalmente inconscientemente o incidentalmente como parte de la estrategia de acceso a datos o marco web que estoy usando, son Active Record, Application Controller, Data Mapper, Modelo de dominio, Gateway, Lazy Load, Layer Supertype, Page Controlador, Vista de plantilla y Objeto de valor. Eso no es exhaustivo; estos son solo algunos de los que aparecieron en la mente.
La mayoría de estos son probablemente más útiles aprendidos comenzando con un marco de desarrollo web obstinado, como Rails, Django o Castle Monorail, que en el resumen. Después de todo, los patrones fueron identificados y extraídos de miles de experiencias exitosas de desarrollo de aplicaciones, no inventadas y luego pegadas porque parecían inteligentes.
Es muy fácil emocionarse demasiado por el conocimiento superficial de uno o dos patrones y luego ver "solo clavos" por cada problema que vea poco después e intentar convertir un patrón que no se ajusta bien en una solución porque entiendes cómo funciona
Entonces, aprende patrones, sí; obtenga una visión general superficial de las motivaciones de todos los que se usan comúnmente, pero no sienta que tiene que esperar para escribir un código serio hasta que comprenda una lista arbitraria de ellos.
comunidad wiki .... – jldupont
Seguro, wiki de la comunidad. – TIMEX
Solo consígase el libro más relevante y hágalo todo. –