Rails 3.1: Mejorando las Vistas

Puf, no sé ni por donde comenzar, han sido tantas cosas las que he visto en el cambio de la versión de Rails 3.0 a esta nueva liberación… pero no solo por las mejoras que conlleva o tiene esta nueva liberación, sino más bien por esa cantidad de elementos que se anexan y que no conocía… ya me vale :-P

En principio, podemos decir que una de las grandes mejoras (para muchos), es que ya no trae por defecto prototype, sino que se han decantado por jQuery. No obstante, como todavía hay gente que considera el uso de prototype para sus desarrollos, pues lo que han hecho es que por defecto se instala jQuery, pero se puede indicar a través de una opción que se instale en su lugar prototype. Esto es gracias a que han extraído estas librerías a gemas independientes: prototype-rails y jquery-rails.

En segundo lugar, y siguiendo con el tema de la parte cliente, han integrado unos asset pipelines, que facilitan la generación de código CSS y JavaScript a través de elementos como CoffeeScript, Sass, Less… y todos ellos a través de Sprockets.

Con el uso de Ruby 1.9.2 (o Rubinius o JRuby en modo 1.9) y un servidor como Unicorn, podemos emplear otra de las nuevas características: HTTP Streaming. Esta característica permite la descarga de las imágenes, elementos CSS y JS, mientras se genera la vista del HTML.

Otra de las ventajas que sobresale en esta versión es el Identity Map. Esta característica de Rails, más en concreto de ActiveRecord, hace que cuando un objeto se rescata de la base de datos, si se solicita de nuevo el mismo objeto, no se solicite de nuevo, sino que se tome el que ya está recogido y en memoria. Esto lo hace solo para los objetos que se instancian en la petición en curso y que son eliminados de la caché cuando la petición finaliza.

El resto ya son mejoras menores, como:

  • El uso de JSON en lugar de XML para el scaffold.
  • La creación de helpers para la autenticación de HTTP Basic y Digest.
  • El uso del método change en lugar de up y down en las migraciones, generando la marcha atrás el sistema de forma automática.
  • El uso de up y down como métodos de objeto y no de clase.
  • La posibilidad de crear serializadores de forma fácil (los de XML y JSON vienen por defecto).
  • y muchas más…

Para más información, puedes leer la ficha de liberación completa (en inglés).

Realmente, Rails está avanzando mucho y desde que comencé a usarlo, hará ya tres años, lo he visto agregar cada vez más nueva tecnología y elementos que me han ayudado a aprender mucho sobre el desarrollo profesional de entornos web. Así da gusto.