Après plusieurs versions de travail publiées précédemment, Rails 6.0 est enfin sorti, apportant des modifications extraites ou construites par des équipes de développement derrière les produits phares du framework comme Basecamp ou GitHub. Voyons quelles nouvelles fonctionnalités sa version finale apporte et considérons si c’est pour le meilleur ou pour le pire pour l’écosystème Ruby on Rails.

Rails 6 enfin sorti

Le calendrier provisoire pour la sortie des versions ultérieures de Ruby on Rails 6.0 a été publié par David Heinemeier Hansson fin décembre 2018. Trois versions bêta ont été publiées jusqu’à la fin du printemps et la dernière devrait être en ligne à RailsConf 2019 entre le 30 avril et le 2 mai à Minneapolis, USA. Mais ce n’est qu’en août que la version finale de Rails 6.0 est sortie après deux ans et des milliers de commits.

Dans cet article, nous allons examiner ses nouvelles fonctionnalités pièce par pièce. Mais si vous voulez passer directement au côté pratique et apprendre à mettre à jour votre application de Rails 5.2 à Rails 6.0, rendez-vous ici.

Fonction 1: Action Mailbox

Extrait de Basecamp 3, Action Mailbox est le nouveau framework qui achemine les e-mails entrants vers des boîtes aux lettres de type contrôleur dans Ruby on Rails. Il permet aux applications Rails de mieux s’intégrer aux e-mails entrants.

Jusqu’à récemment, RoR utilisait Action Mailer pour recevoir des e-mails des applications, mais, comme Hansson l’a écrit il y a quelque temps, le chemin était « anémique », « mal débusqué », « manquait de cohésion avec l’envoi d’e-mails et ne proposait aucune aide pour l’intégration avec plates-formes de traitement des e-mails entrants populaires « .

Déjà fusionnée dans Rails, Action Mailbox est livrée avec des entrées d’Amazon SES, Mailgun, Mandrill, Postmark et SendGrid.

C’est pourquoi le nouveau framework remplace Action Mailer dans la partie destinataire.

Attention: Action Mailbox nécessite Active Job et Active Storage.

Fonction 2: Action Text

Une autre extraction du code de Basecamp, Action Text est le deuxième nouveau framework majeur dans Rails 6.

Selon ses créateurs, Action Text va rendre l’écriture, l’édition et l’affichage de texte dans une application Rails «super faciles» ou «passer au niveau supérieur».

Le texte d’action comprend l’éditeur Trix qui gère:

  • mise en page,
  • citations,
  • et ajouter des liens et des listes aux images et galeries intégrées.

Tout contenu intégré (images, etc.) est automatiquement stocké à l’aide d’Active Storage et associé au modèle RichText séparé inclus. Gardant cela à l’esprit, Active Storage est, encore une fois, nécessaire pour que ce cadre fonctionne correctement.

Donc, si c’est ce à quoi ressemble l’avenir de votre application, Action Text va lui apporter un contenu texte riche et des possibilités d’édition.

Action Text fonctionnait déjà avec les applications Rails 5.2, les développeurs qui recherchaient des solutions prêtes à l’emploi avaient déjà la possibilité de les vérifier.

Fonction 3: Plusieurs Bases de données

Avez-vous déjà pensé que votre application pouvait se connecter et basculer entre plusieurs bases de données en même temps?

Vous pouvez le faire pour des raisons d’évolutivité ou de performances.

«Un scénario typique est une configuration de base de données utilisant un schéma maître-esclave, où la base de données est répliquée sur plusieurs serveurs, le nœud maître recevant toutes les opérations d’écriture, qui sont ensuite propagées aux serveurs esclaves. Ceux-ci, à leur tour, fonctionnent en lecture seule pour l’application »  explique Michał Buszkiewicz, le développeur Rails de Prograils.

Il ajoute que, auparavant, les solutions couramment utilisées à cette fin et à des fins similaires comprenaient des gemmes telles que ar-octopus – qui a servi d’inspiration pour intégrer ce type de fonctionnalités au cœur de Rails.

Pour atteindre cet objectif, Rails 6 fournit une API pour la prise en charge de plusieurs bases de données, qui vous permettra de le faire sans creuser profondément dans Active Record.

En savoir plus sur la prise en charge de plusieurs bases de données à partir du thread GitHub d’origine.

Fonction 4: Test parallèle

Par défaut, Rails 6 ajoute un test parallèle aux applications Rails.

Conçu par l’équipe GitHub tout comme la prise en charge de plusieurs bases de données, le test parallèle est une fonctionnalité qui peut devenir extrêmement utile lors de l’exécution de tests difficiles pour votre application.

Tirant parti de plusieurs cœurs dans votre machine, la prise en charge des tests parallèles vise à accélérer votre suite de tests. Chaque travailleur de test obtient sa propre base de données et exécute son propre thread.

Cette fonctionnalité est parmi les plus populaires de Rails 6. En savoir plus à ce sujet dans le référentiel officiel de Rails GitHub.

Fonction 5: Webpack comme bundler par défaut

À partir de maintenant, webpack va être un bundle JavaScript par défaut pour Rails via le gem webpacker, remplaçant le pipeline d’actifs Rails par défaut et offrant une meilleure interopérabilité avec les bibliothèques JavaScript modernes et les normes de codage.

En bref, webpacker est un joyau offrant une intégration avec les gestionnaires de paquets webpack et JS tels que le fil.

«Étant donné que le webpack est une norme de facto dans la communauté du développement frontal de nos jours, il peut faire en sorte que les développeurs frontaux avec peu ou pas de connaissances Rails se sentent plus à l’aise» – dit Buszkiewicz.

Si vous souhaitez en savoir plus sur Webpacker et comment il est ajouté à une application Rails héritée, lisez cet article.

Fonction 6: Zeitwerk, le nouveau chargeur de code

Attention aux auteurs de gemmes! Rails 6 propose un tout nouveau chargeur de code pour Ruby. Rencontrez Zeitwerk, qui va remplacer le chargeur Rails classique qui existe depuis 2004.

Zeitwerk a été construit avec l’intention de se débarrasser de tous les pièges du chargeur classique, ainsi que d’éliminer tous les cas d’utilisation connus pour require_dependency. Donc, si vous, tout comme son auteur, n’êtes pas forcément un fan de la demande, vous accueillerez Zeitwerk les bras grands ouverts.

Le nouveau chargeur automatique est également utile pour les créateurs de projets gemmes ou similaires, car il permet à toute application d’avoir son propre chargeur indépendant, comprenant sa propre configuration, un inflecteur et un enregistreur en option.

Envie d’utiliser des gemmes? Consultez la liste des plus populaires parmi nos développeurs!

Rails 6 et plus encore…

Les mises à niveau mineures de Rails incluent: le test du Action Cable approprié, Action Cable JS réécrit dans ES6, la protection contre les attaques de rebinding DNS et les informations d’identification par environnement.

N’oubliez pas que Rails 6 nécessitera désormais Ruby 2.5.0+.

Pour conclure: qu’est-ce qui vient avec Rails 6 ?

Pour David Heinemeier Hansson, Rails 6.0 est « en train de devenir une version majeure ». Bien que sa version finale n’ait eu lieu que fin août, la plupart de ses nouvelles fonctionnalités avaient déjà été fusionnées avec ROR et auraient pu être testées.

Rails est un projet mature et on peut affirmer qu’il devient de plus en plus difficile de créer de nouvelles fonctionnalités de framework qui ont le potentiel d’être révolutionnaires  », affirme Michał Buszkiewicz « , notant que certains développeurs ont exprimé des inquiétudes quant à l’inclusion de nouvelles fonctionnalités telles que Action-Texte, les considérant comme des « bloatware » et soulignant qu’ils augmenteront probablement l’empreinte de l’application.

Ces fonctionnalités détourneraient l’attention de l’équipe Rails des domaines où le cadre pourrait être amélioré en termes de performances ou d’évolutivité (qui, soit dit en passant, sont l’une des raisons pour lesquelles les développeurs Rails ont choisi Elixir / Phoenix comme prochain langage ou cadre) .

Alors que certaines personnes ont critiqué les fonctionnalités fournies avec Rails 6, d’autres ont salué les inclusions comme étant conformes à l’esprit de Rails visant toujours à fournir des solutions avisées, génériques et standardisées aux problèmes courants.

«Le temps nous dira quel groupe a raison. Ce qui est absolument certain, c’est que l’équipe Rails cherche toujours différentes façons de faire avancer le projet »,

conclut Buszkiewicz. Avez-vous déjà joué avec les nouvelles fonctionnalités de Rails? Faites-nous savoir comment c’était dans la section commentaires!

Ruby on Rails est-il une bonne solution pour votre entreprise?

Ayant existé depuis 2004, Ruby on Rails à ce jour alimente de nombreux sites Web populaires, notamment Basecamp, Airbnb, Shopify et plus encore. En plus de cela, des fonctionnalités telles que la syntaxe du langage Ruby, une grande disponibilité des solutions prêtes à l’emploi aux problèmes standard (appelés gemmes) apportées par la communauté Rails en font une solution appropriée pour les startups prévoyant de publier leurs produits viables minimum. Si vous avez besoin de plus de détails sur la façon dont Ruby on Rails peut vous aider à créer votre MVP, lisez cet article.

Tout cela est étayé par des preuves réelles et notre expérience. Il existe plusieurs projets dans le portefeuille Webconcepter qui ont commencé comme Ruby on Rails MVP et ont été affinés et développés au niveau de l’entreprise au fil des ans. Vous songez à créer votre application Web avec Ruby on Rails 6.0? Parlez-nous de votre idée.

Lectures recommandées:

  • Nouveau sur Rails? Apprenez à configurer un environnement de développement!
  • Livres Ruby on Rails pour développeurs expérimentés
  • Playbook: Découvrez comment nous codons nos applications Web et mobiles
0 CommentsClose Comments

laissez un commentaire

Abonnez-vous à la newsletter

Obtenez les derniers messages et articles dans votre e-mail

 

Nous nous engageons à ne pas envoyer de spam :)