IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Rails 7.0 est disponible, cette version annoncée comme l'accomplissement d'une vision,
Peut-elle sauver Rails du naufrage ?

Le , par Bruno

230PARTAGES

4  0 
Rails, également appelé RoR ou Ruby on Rails, est un framework web libre écrit en Ruby et qui propose une structure qui permet de développer rapidement et intuitivement. Cependant, il impose un grand niveau d'abstraction dans la programmation qui apporte en contrepartie l'économie d'écrire soi-même la plupart des routines obligatoires d'une application web. Le 15 décembre, l’équipe de développement a annoncé la version 7 de Rails. Elle propose une approche sans node par défaut pour le front-end, sans pour autant sacrifier l'accès aux paquets npm ou le JavaScript moderne.


Cette version de Rails est le fruit de plusieurs années de réflexion. C'est la concrétisation d'une vision qui consiste à présenter une approche véritablement complète du développement web, qui s'attaque avec la même vigueur aux défis du front-end et du back-end. Un menu omakase qui comprend tout, de l'apéritif au dessert. Rails est basé sur deux principes fondamentaux :

  • pas de répétition : tenter autant que possible de n'avoir des éléments de l'application qu'à un seul endroit. L'architecture MVC et la métaprogrammation en Ruby peuvent faciliter cela ;
  • convention plutôt que configuration : les éléments de configuration ne sont nécessaires que s'ils ne respectent pas les conventions établies. Rails exploite cela en proposant des comportements par défaut pour la plupart de ses fonctionnalités.


Avec les progrès réalisés dans la prise en charge des navigateurs ES6/ ESM (EcmaScript Modules), l'adoption généralisée de HTTP/2 et la nouvelle norme passionnante pour les cartes d'importation, c'est enfin possible. Rails 7 tire parti de toutes ces avancées pour proposer une approche sans node par défaut pour le front-end, sans pour autant sacrifier l'accès aux paquets npm ou le JavaScript moderne.

La combinaison de Turbo et de Stimulus de Hotwire offre tous les outils nécessaires pour produire des expériences utilisateur fantastiques qui ne laissent rien à désirer par rapport aux applications à page unique - pour une fraction de la complexité. C'est le choix par défaut pour les nouvelles applications Rails, qui remplace les options beaucoup plus limitées de Turbolinks et Rails UJS.

Si la plupart des applications Rails n'ont pas besoin de dépendre de Node compte tenu de ces valeurs par défaut, l’équipe a tout de même réussi à améliorer considérablement l'intégration pour celles qui en ont besoin dans Rails 7. Fini le couplage étroit de Webpack avec Webpacker, place à un couplage plus souple avec n'importe quel bundler JavaScript. Il est possible d’utiliser esbuild ou rollup.js ou même Webpack grâce à la nouvelle intégration jsbundling-rails qui peut être préconfigurée pour les nouvelles applications avec --javascript esbuild. La même approche est adoptée pour les bundlers CSS qui reposent sur Node. Avec Rails 7, tout ce qu'ils doivent être capables de produire est un fichier application.css compilé, et ils s'intégreront parfaitement.

Le chemin par défaut sans Node est considérablement plus simple, étonnamment performant, et il va dans le sens de ce que le futur développement frontal est susceptible de faire de toute façon. L'autre voie d'intégration avec Node est plus légère, moins prescriptive et moins fragile que jamais. Ce sont les meilleurs choix par défaut que l’équipe de développement n’a jamais eu pour le développement frontal dans Rails. Voici, ci-dessous, quelques-unes des nombreuses autres nouvelles fonctionnalités et améliorations :

Chiffrement avec Active Record

Extrait de HEY, l’équipe Rails a ajouté des attributs chiffrés à Active Record, de sorte que le framework peut offrir un chiffrement en plus de la couverture traditionnelle au repos et en transit. En tant qu'avantage pratique immédiat, le chiffrement des attributs sensibles ajoute une couche de sécurité supplémentaire. Par exemple, si un cybercriminel accède à une base de données, à un ou aux journaux de votre application, il ne sera pas en mesure de comprendre les informations chiffrées. Et même sans penser aux acteurs malveillants, la vérification des journaux d'application pour des raisons légitimes ne devrait pas non plus exposer les informations personnelles des clients.

En utilisant Active Record Encryption, il est possible de définir ce qui constitue des informations sensibles dans l’application au niveau du code. Cela permet de contrôler l'accès à ces informations et de créer des services autour d'elles. À titre d'exemple, on a les consoles Rails auditables qui protègent les données chiffrées ou vérifiez le système intégré pour filtrer automatiquement les paramètres des contrôleurs.

Chargement asynchrone des requêtes

Lorsqu’il existe une action du contrôleur qui doit charger deux requêtes non liées, il est maintenant possible le faire simultanément grâce à Relation#load_async. Si il existe trois requêtes complexes qui prennent chacune 100 ms, vous auriez dû passer 300 ms à les exécuter une par une auparavant. Maintenant, vous pouvez les exécuter en parallèle, en ne dépensant que 100 ms au total sur l'ensemble.

Zeitwerk En exclusivité

Le chargement automatique dans Rails est l'une de ces réalités magiques de qualité de vie qu'il est facile de considérer comme acquises. La bonne vieille approche const_missing, qui s'accompagnait d'une série de bizarreries et de fonctionnalités manquantes, a finalement été remplacée exclusivement par le chargeur de code Zeitwerk. Il y a quelques problèmes de mise à jour à connaître, en particulier pour les anciennes applications.

Toutes les fonctionnalités de Rails ont été implémentées afin d’offrir aux développeurs des outils à jour pour faciliter leurs projets de développement. Cette grande popularité du framework a incité dès ses débuts les ingénieurs du site de partage de fichiers Scribd pour le développement de cette plateforme.


Toutefois, en dépit de ces fonctionnalités qui font la joie de certaines personnes, un développeur du nom de Jared Friedman a déconseillé en 2015 l’utilisation de ce framework pour les nouvelles entreprises. Pour lui, ce framework a connu son heure de gloire et est maintenant sur le déclin. Il serait donc judicieux pour les nouvelles entreprises de ne pas investir dans une technologie qui est en baisse, mais plutôt de se tourner vers celles qui sont en forte progression.

Pour mieux étayer ses propos, Jared a effectué un comparatif entre les langages Ruby on Rails, Django et Node.js avec l’outil Google Trends.
À l’opposé de ce framework, Jared préconise l’utilisation de Node.js qui comme le montre Google Trends est en pleine évolution.

Source : Ruby on Rails

Et vous ?

Utilisez-vous le framework Ruby on Rails ? Sinon lequel utilisez vous ?

Quelle caractéristique de Ruby on Rails vous intéresse le plus ?

Trouvez-vous que Ruby on Rails est dépassé ?

Trouvez-vous que Node.js est un successeur valable face à ce framework ? Ou pensez-vous que ce Ruby on Rails a encore de l’avenir ?

Voir aussi :

Un développeur estime que Ruby on Rails est dépassé et conseille aux entreprises de se tourner vers Node.js, partagez-vous ce point de vue ?

La première Release Candidate de Ruby 3.0.0 est disponible avec les vérificateurs de type, y compris TypeProf et d'autres outils prenant en charge RBS

Ruby on Rails 7 révise la prise en charge de JavaScript, en abandonnant Webpacker au profit d'une approche du regroupement JavaScript sans Node.js

Ruby 3.0.0 est disponible, cette version majeure est annoncée comme étant trois fois plus rapide que Ruby 2, et introduit plusieurs nouvelles fonctionnalités dont les Ractors, RBS et TypeProf

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de ludovicdeluna
Membre à l'essai https://www.developpez.com
Le 21/12/2021 à 12:17
Merci pour l'article, c'est chouette d'avoir un suivit sur Developpez. Ce que je peux en dire :

Ruby on Rails reste un poids lourd dans l'écosystème de Ruby pour lequel il a codifié la façon dont une application est structurée, tout autant que la généralisation de certaines pratiques.

C'est une caractéristique intéressante en soit, couplée à "Convension over Configuration" tout comme le principe de "Rails is Omakase" : concentrez-vous sur votre application, Rails implémente la stratégie la plus cohérente par rapport à votre objectif. Bien sûr, il est bon de ne pas rester dans l'ignorance et de se documenter.

Ce qui se traduit par la disparition du code "glue" entre le framework et le code métier, ou l'usage à la place du DSL offert par Rails qui donne un aspect déclaratif.

Bien que ça offre un avantage pour faire évoluer rapidement son produit, c'est aussi un piège pour une application qui grossit et prend de l'âge (fort couplage au framework sans pour autant s'en rendre compte).

Et ça va très vite : stockage en cloud, cache, sécurité des mots de passe, synchronisation de l'état des bases de données, nettoyage de template (évite du XSS), traitement en arrière-plan, voir du distribué sur d'autres serveurs... Tout est facilement accessible sur Rails. D'où le risque qu'on avance sans trop planifier sur le long terme.

Pour la remarque sur NodeJS... C'est éloquent.

NodeJS n'est pas un successeur à Ruby (ni même à PHP). C'est une option qui a de bons arguments. Comme toute solution, ce n'est pas "bullet proof". Il y a des arbitrages à faire en fonction du projet.

Ce qui manque d'argument en revanche, c'est de conseiller une technologie en fonction du trending du marché. Cela amène à croire des choses et pousse des gens à poser des questions stupides du genre "Pourquoi utiliser C++ quand Python est #1 sur Tiobe Index" (du côté de Quora).

Ruby a une implémentation, un écosystème et une philosophie qu'il faut prendre en compte. Soit c'est cohérent pour le projet et l'équipe, soit ça ne l'est pas. Il en va de même pour le reste.

Pour ce qui est de l'avenir de Ruby on Rails, je ne m'inquiète pas. Il est encore utilisé pour démarrer des projets et des start-ups chez nous, en France. Idem aux USA. Mais il est vrai qu'il n'y a pas vraiment de fanfare ou de publicité sur cet aspect. Car effectivement, Ruby on Rails n'est plus à la mode. Et finalement, c'est très bien.
6  0 
Avatar de Markand
Membre éclairé https://www.developpez.com
Le 21/12/2021 à 9:56
Quand je vois que ce qui est conseillé est le nodejs à la place de rails, je suis content de pas faire du développement web
2  0 
Avatar de Madmac
Membre extrêmement actif https://www.developpez.com
Le 22/12/2021 à 21:55
Ruby 3 permet de typer les variables. Ce qui dans le cas de programme de base de donnes, un gros avantage. De plus avec la version 3, Ruby est compile comme Java.
0  0