Ruby on Rails 5 est sorti… et après ?

Pour le développement web, j’utilise Ruby on Rails depuis des années.

Ruby quoi ?

Ruby est un langage de programmation qui, en synthèse, n’est pas le plus rapide d’un point de vue technique mais est extrêmement rapide en termes d’écriture de code et en termes d’exécution dans un cadre concret. Vous connaissez le lièvre et la tortue ? C’est la tortue.

Ruby on Rails est un framework web reposant sur le langage Ruby. Un framework étant – grossièrement – un ensemble d’outils permettant d’atteindre un objectif. Dans le cadre de Ruby on Rails, il s’agit du serveur web, de la connexion aux base de données, la gestion du cache, le rendu du contenu web, les tests unitaires et j’en passe. Tout ce qui permet de concevoir une plateforme web solide et performante.

Ruby on Rails a quelques beaux succès à son actif (Basecamp, GitHub, AirBnB, Twitch, SoundCloud, Hulu, Zendesk, Square et j’en passe). C’est du sérieux.

On passe la cinquième

Ruby on Rails est né en 2004. Et, en 12 ans, le web a bien évolué.

Le framework web a suivi ces évolutions. A son rythme, pour garder sa solidité.

C’est donc dans les derniers jours de juin 2016 que Ruby on Rails 5 a vu le jour.

Action Cable : du temps réel

Le temps réel, qu’est-ce que c’est ?

En général, sur le web, un client (navigateur web, application mobile) effectue une requête auprès d’un serveur. Et le serveur renvoie une réponse.

Le client a donc à l’instant T une réponse datant de sa dernière requête.

S’il veut une réponse plus « fraîche », il doit effectuer une nouvelle requête. Qui lui dira si oui ou non il y a un nouveau contenu. Le tout en faisant transiter sur le réseau tout un tas d’informations à l’utilité douteuse.

Puis sont apparues les WebSocket, qui sont une réponse à cette problématique.

Les WebSocket sont disponibles depuis un certain temps, mais sont devenues « populaires » seulement récemment. Depuis un certain temps sur Firefox, Chrome et Safari. Depuis Internet Explorer 11 (version 10 en théorie), qui commence juste à être populaire. Et bien sûr son successeur Edge. Côté mobile, c’est disponible depuis iOS 4.2 (autant dire, tous les iOS en circulation), et depuis Android 4.4 (77 % des appareils, mais beaucoup utilisent également le navigateur Chrome, plus récent).

C’est encore un peu neuf, mais c’est tout de même disponible sur une très grosse majorité des appareils. Mais au fait : à quoi ça sert ?

On l’a vu : le web tel qu’il existe ne permet pas l’instantanéité. Les WebSocket répondent à cette problématique en permettant au serveur et au client d’avoir une connexion ouverte en permanence, en utilisant la connexion réseau HTTP(S).

Client et serveur peuvent donc s’envoyer l’un et l’autre des messages à tout moment, sans avoir tout une couche de protocole.

Quand une information nouvelle arrive, c’est le serveur qui déclenche un événement sur le client. Par exemple, dans le cadre d’une messagerie, le client 1 envoie un message au serveur qui va lui même le renvoyer au client 2.

Le client 2 n’aura pas besoin d’aller chercher l’info : elle vient a lui.

Action Cable, qui a un historique suffisant, est maintenant directement intégré – de manière optionnelle mais standardisée – au sein de Ruby on Rails.

En quelques manipulations, on crée des canaux de communication côté serveur (ruby) comme côté client (javascript).

J’ai eu l’occasion de le mettre en application dans un projet client. Je l’ai déployé sur Heroku. Ça marche du tonnerre.

Le mode API

En 2016, on ne fait pas seulement des sites web : on réalise aussi beaucoup d’API. Notamment pour les applications mobiles.

Pour les plus novices des lecteurs, les API web sont des interfaces qui ne sont visibles que par les programmes en eux-mêmes. Il s’agit d’échanger des données, dans des formats spécifiques. Mais il ne s’agit pas, comme sur un site web, d’échanger le contenu affiché.

Par exemple, un navigateur web va demander au site web de lui fournir le code HTML, les feuilles de style CSS, les images, etc.

Une application mobile va demander au service web de lui fournir les données uniquement. L’application mobile se chargera ensuite elle-même de la mise en forme. Ce type d’échanges de données est une API web.

Et l’API web fonctionne différemment d’un site web. On a globalement besoin de moins de choses, et les besoins sont plus spécifiques.

Ruby on Rails 5 permet de concevoir des applications web ayant spécifiquement le rôle d’API. Alors que c’est par défaut prévu pour concevoir des sites web.

C’est efficace. Pour l’avoir mis en place dans un projet d’application mobile, ça fait bien le job.

Les autres nouveautés

2-3 autres nouveautés permettent de renforcer la standardisation, les performances et la sécurité.

Le HSTS a notamment été renforcé. Cette technologie disponible sur les navigateurs web les moins anciens permet de s’assurer que tous les liens du site sont sécurisés en HTTPS.

Donc Ruby on Rails, c’est cool ?

Ouais, c’est cool. 🙂

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s