Hay algunas direcciones en las que se podría tomar esta pregunta. Permítanme comenzar diciendo que Joseph Hopper tiene una respuesta bastante buena. Con suerte, puedo agregarle algo a usted.
Se considera que el libro Gang of Four proporciona la definición de un patrón. Durante los 20 años transcurridos desde ese libro, la definición se ha expandido y contraído varias veces. Para la mayoría de la gente en estos días podemos simplificar la definición a esto:
Un patrón es una solución con nombre que se ha demostrado repetidamente que ayuda a resolver un tipo particular de problema.
Para mí, lo que los hace valiosos es realmente el nombre. Si estoy hablando con otro desarrollador y le digo: “Estoy usando un Memento aquí”, ese es un atajo que significa (siempre y cuando el otro desarrollador conozca un poco sobre ese patrón) no tengo que pasar el tiempo describiendo La solución y las razones detrás de esto. Acelera la comunicación, lo que acelera la creación de software.
- ¿Qué tipo de diseño es este? Además, ¿cuál es el mejor programa para hacer este tipo de diseño?
- ¿Google promociona el material como un ‘lenguaje visual’? ¿Cuáles son algunos otros ejemplos de lenguajes visuales (en un contexto similar al de Material)?
- Cómo ordenar mi habitación de manera perfecta, fácil y rápida
- ¿Por qué necesita usar el panel de capas en Illustrator?
- ¿Cómo diseñarías un parque de barrio?
No debería sorprendernos que algunos tipos de problemas solo ocurran en ciertos idiomas o conjuntos de idiomas. Entonces, un patrón que se aplica a JavaScript, puede no aplicarse a Ruby. Sin embargo, esos dos idiomas tienen similitudes significativas, por lo que habrá muchos patrones que se aplicarán a ambos.
Una cosa que es interesante es que varios de los patrones originales de GoF no se aplican a menudo a Ruby (o JavaScript). Básicamente, esos problemas simplemente no surgen o no tienen soluciones proporcionadas por el idioma.
Para aprender patrones, tienes muchas opciones. Si aprendes mejor de los libros, entonces el libro de GoF podría ser para ti, al igual que Head First Patrones de diseño , Patrones de diseño explicados simplemente , Patrones de diseño en Ruby o cualquiera de otros (Amazon tiene una gran cantidad de reseñas para un gran número de libros de patrones). Si prefiere aprender de la web, a menudo me encuentro yendo a SourceMaking como referencia, pero sinceramente, una búsqueda rápida en la web mostrará un montón de opciones.
Finalmente, recomiendo solo mirar el código. Mucho código. Participe en algunos proyectos de código abierto. Cuanto más código vea, más comenzará a ver problemas similares que se resuelven de manera similar. Cuando lo hayas visto varias veces, comienza a buscar un nombre. Pregunta por ahí. Tal vez tiene un nombre, o tal vez es un patrón que nadie ha identificado. Si es así, encuentre un buen nombre, publíquelo y todos podremos hacer un poco más.