arrow_back Volver
Inicio keyboard_arrow_right Artículos keyboard_arrow_right Artículo

Qué hay de nuevo en Rails 5

Uriel Hernández

CTO de Código Facilito

av_timer 3 Min. de lectura

remove_red_eye 6949 visitas

calendar_today 25 Abril 2015

Estuve escuchando la plática de @dhh el creador de Rails en la RailsConf, habló de las cosas que habrá en Rails 5, además de sus convicciones para ser parte de la comunidad de Rails.

Decidí escribir un mini post con las 3 características principales que mencionó que tendrá Rails 5, son cosas muy interesantes que pienso que pueden servir para motivar a algunos a probar el framework, en caso de que quieras empezar a aprender desde hoy Rails puedes ver nuestro curso de Rails.

No es secreto, y en la plática queda más que claro, que DHH no es fan de las SPA (Single Page Application) y por tanto de los frameworks MVC en el cliente (Angular, Ember, Backbone), sin embargo, él como el mundo de desarrollo reconoce que las Single Page Apps tienen un sentido de velocidad y parecieran ser más responsivas que las aplicaciones web tradicionales, esto porque no recargan la página y sólo recargan los datos necesario. Al mismo tiempo, DHH como otras empresas, reconocen el poder y los beneficios de los sistemas integrados y del poder de hacer el render de las vistas en el server, en lugar de en el frontend como hacen los frameworks de javaScript.

Para integrar ambos lados de la moneda, el poder del servidor y los beneficios de sólo recargar los datos necesarios de la página, Rails 5 vendrá con TurboLinks 3, no es un nuevo framework si no la evolución de algo que ya hacía Rails; Rails 4 vino por defecto con TurboLinks, en su momento, para no tener que recargar los assets de la página, TurboLinks reemplazaba la página por completo con javaScript, pero el CSS y el javaScript ya estaban ahí, por lo que la página parecía cargar más rápido. En Código Facilito usamos TurboLinks, y es a través de la librería que ves un mensaje de "Cargando" cada que das click en una página.

TurboLinks 3, como decíamos, es una evolución, ahora no sólo podrás recargar toda la página, si no también partes de ella, e incluso declarar secciones "permanentes" como por ejemplo la navegación de tu página, estas no se recargarán. Esto trae beneficios enormes me parece que traerá aplicaciones muy interesantes. Algo que también me parece genial de la integración de TurboLinks y Rails, es que puedes especificar en el controlador que sección de la página vas a recargar:

class CommentsController < ActionController::Base
 def create
  @comment = Comment.create! comment_params
  redirecto_to @item.product, change: 'comments'
 end
end

En el snippet de código anterior, extraído de la plática de DHH, vemos cómo sólo se recargará el elemento con id "comments". Es interesante poder hacer render desde el server, aunque queda claro que como mencionan en el siguiente tweet, esto parece violar algo del MVC:

Rails API

Me gusta mucho esta frase, Rails ofrece más que sólo un API para aplicaciones escritas con frameworks de javaScript, recuerdo haberla escuchado del mismo DHH en algún podcast. Aún así es verdad que hay proyectos interesantes que son SPA's y que utilizan frameworks MVC en JS, para esos proyectos no necesitas un framework robusto, sólo necesitas un API, bueno, hasta ahora podrías usar algo como Rails API que es una versión de Rails sin toda la parte de las vistas y cosas que, bueno, no se necesitan cuando sólo tienes una API. Ahora, todo este poder vendrá en el mismo Rails, y para generar una aplicación de Rails que sólo será un API hacemos:

rails new mi_api --api

Boom! Listo para que crees un API para Angular, para Ember, para Backbone, para Android o para tu app iOs :)

ActiveCable

WebScockets para Rails 5. Real time! Sin preocuparnos por mucho javaScript y sobre todo sin toda la lógica que tiene que ir en el servidor, para hacer real time en Rails 5 sólo necesitarás:

  • Un Broadcaster
  • Un Channel
  • Una objeto en JS con un método receive.

No hay mucho qué decir por ahora, habrá que probarlo. Hay varios detalles en la plática de cómo funciona que recomiendo ver, lo interesante es saber que Rails vendrá por default con la habilidad de comunicarse en tiempo real con las vistas, prepárense para tutoriales con Chats y ChatRooms :)

Conclusión

Todas las semanas se hacen cambios en Rails, así que tal vez esta sea una parte de lo que veremos nuevo en Rails 5, lo que sí es verdad es que ActionCable tomó por sorpresa (en el buen sentido) a muchos, y parece ser un cambio muy importante que de seguro permitirá la creación de aplicaciones en Rails. Por otro lado, veremos si TurboLinks gana un poco más de amor en la comunidad Rails, que al parecer no es muy feliz con la librería, porque bueno.. "es un juguete" pero como el mismo DHH mencionó:

"Sin juguetes sólo seríamos un montón de adultos. No gracias!"- DHH

¿Qué les parecen las nuevas características? Agreguen en los comentarios su opinión y observaciones ¡Gracias! :)