Libro sobre patrones de diseño en Ruby, ¿un lenguaje sencillo para aprender patrones?

Siguiendo con el tema de patrones de diseño que comencé en el post anterior, hoy os vengo con la revisión de un libro que, sin lugar a dudas, sería el que recomendaría a cualquiera que desee iniciarse en este asunto desde un lenguaje de programación moderno como Ruby. Me refiero, por supuesto, al libro de Russ Olsen titulado “Design Patterns in Ruby”, editado por Addison-Wesley.

Es un libro algo caro, especialmente si lo medimos según su tamaño, pues consta de poco más de 300 páginas. No obstante, creo que en esto radica su mayor secreto, ya que, sin llegar a tratar todos los patrones de diseño que otros del mismo tema suelen abarcar, sí que pasa por los más habituales, y lo hace de una manera muy amena.

Olsen deja patente con su obra a través de numerosos ejemplos que la implementación de los patrones de diseño habituales en un lenguaje moderno como Ruby resulta ser bastante menos compleja que con otros lenguajes algo más prólijos. Así, insta al lector a la utilización de técnicas muy habituales entre programadores en este lenguaje como la preferencia por la composición frente a la herencia tradicional, la delegación de funcionalidad, el “duck typing”, y otros.

El libro se divide en tres partes bien diferenciadas:

  • Patrones y Ruby: En esta primera parte, el autor hace una aproximación a las características del lenguaje que van a ser usadas en el resto del libro, así como una breve introducción a la historia acerca de los patrones de diseño y su utilidad.

  • Patrones en Ruby: En la segunda parte, se entra ya en materia, mostrando cómo algunos de los patrones más conocidos podrían implementarse en Ruby. El autor explica en concreto los patrones Template, Strategy, Observer, Composite, Iterator, Command, Adapter, Proxy, Decorator, Singleton, Factory, Builder e Interpreter.

  • Patrones para Ruby: Mi parte preferida del libro (si bien disfruté también mucho la segunda). En ella, el autor menciona algunos otros patrones no tan conocidos (definitivamente, no mencionados en el famoso GoF) pero que se encuentran habitualmente en código escrito en Ruby. No son exclusivos de este lenguaje, pero sí es cierto que no se dan en todos. En concreto, trata los DSL (lenguajes específicos de dominio), la metaprogramación, y la preferencia por la convención frente a la configuración.

En definitiva, una referencia imprescindible si tu lenguaje habitual es Ruby o quieres hacer una aproximación a los patrones de diseño utilizando un lenguaje conciso y sencillo como es éste.

Libro en Amazon | Design Patterns in Ruby

Portada de Genbeta