L’équipe de développement de Ruby on Rails (RoR) a publié cette semaine la version 6 du framework Ruby pour les applications Web. Cette version apporte un certain nombre de nouvelles fonctionnalités et des changements très attendus par la communauté RoR. Les principales nouveautés dans cette version de Rails tournent autour du traitement des mails entrants avec Action Mailbox, la connexion à plusieurs bases de données, etc. De plus, Rails défini désormais Webpack en tant que Bundle JavaScript par défaut.
Rails 6 a été publié cette semaine par l’équipe de développement du framework Web avec un certain nombre de fonctionnalités et de changements très attendus. Un grand nombre de fonctionnalités clés ont été ajoutées à Rails 6 pour améliorer vos applications et pour vous aider à gagner un temps précieux en développement. Voici un petit aperçu des fonctionnalités les plus mises en avant dans Rails 6 que vous utiliserez probablement :
Action Mailbox
Rails 6 a ajouté la fonctionnalité Action Mailbox. Elle permet d'acheminer les courriers électroniques entrants vers un contrôleur, tels que des boîtes aux lettres à traiter dans Rails. Autrement dit, Action mailbox vous permet de router les mails entrants vers des boîtes aux lettres similaires à celles d'un contrôleur. Action Mailbox est livrée avec des entrées pour Mailgun, Mandrill, Postmark et SendGrid. Vous pouvez également gérer les mails entrants directement via les entrées intégrées Exim, Postfix et Qmail.
Vous pouvez probablement imaginer les avantages potentiels que cela pourrait vous apporter. Il peut s’agir de traiter directement les courriers d’un centre d’assistance ou d’automatiser les tickets de support. Rails 6 permet aux clients de répondre directement par courrier électronique, et bien plus encore. Vous avez la possibilité d'explorer cette fonctionnalité et de proposer une approche idéale pour votre application. Vous pouvez en savoir à partir de la note de version de Rails 6.
La prise en charge de plusieurs bases de données
L’une des principales caractéristiques qui intéresseront les nombreux développeurs d’applications volumineuses est certainement celle-ci. Rails 6 a ajouté la prise en charge de plusieurs bases de données pour votre application, intégrées et prêtes à l’emploi. Cette fonctionnalité permet à une seule application de se connecter facilement à plusieurs bases de données en même temps. Cette configuration pourrait vous être utile lorsque vous souhaitez segmenter certains enregistrements dans leurs propres bases de données à des fins de dimensionnement ou d'isolation.
Vous pouvez aussi faire cela simplement parce que vous désirez effectuer un fractionnement en lecture ou en écriture avec des bases de données répliquées pour améliorer les performances. Selon l’équipe de développement, quel qu’en soit ce que vous voulez faire, il existe une nouvelle API simple permettant de réaliser cela. De plus, le fait de pouvoir le faire de manière aussi simple peut vous permettre de gagner beaucoup plus de temps au cours du développement de votre application.
Les tests parallèles
Selon les explications de l’équipe de développement de Rails, les tests deviennent très souvent une activité fastidieuse lorsqu'ils sont « lourds » et que vous devez attendre plusieurs minutes, voire plusieurs heures, pour que les cas de test soient exécutés. Pour éviter cela, Rails 6 apporte désormais les tests parallèles. Avec les tests parallèles introduits par Rails 6, vous pouvez désormais tirer parti de tous les cœurs de votre ordinateur pour exécuter de grandes suites de tests plus rapidement.
Chaque agent de test dispose de sa propre base de données et s'exécute dans son propre thread. En somme, Rails 6 vous permet de paralléliser votre suite de tests. L'exécution de tests en parallèle réduit le temps nécessaire à l'exécution de l'ensemble de votre suite de tests. Cependant, notez que lorsque vous exécutez une série de scénarios de test dans plusieurs processus différents, vous pouvez réduire la durée d'exécution de vos scénarios de test. Avec les tests en parallèle de Rails 6, vous n'avez pas besoin de services externes pour mettre en parallèle vos scénarios de test.
Action Text et Action Cable
Une autre caractéristique notable de cette version de Rails est l’arrivée de la fonctionnalité Action Text. Il apporte du contenu et de l'édition de texte enrichi à Rails. Il inclut l'éditeur Trix qui gère tout, du formatage aux liens en passant par les citations et les listes, les images incorporées et les galeries. Notez que Trix est un projet open source de Basecamp, les créateurs de Ruby on Rails. Toutes les images incorporées (ou autres pièces jointes) sont automatiquement stockées à l'aide d’Active Storage et associées au modèle RichText inclus.
D’un autre côté, "Action Cable" est l’une des fonctionnalités les plus importantes qui sont apparues dans Rails 5. Action Cable a été améliorée dans Rails 6 pour fournir encore plus de performance. Ainsi, l’équipe de développement du framework a indiqué qu’il est maintenant possible de tester Action Cable à n’importe quel niveau : connexions, canaux et diffusions. Les tests de connexion vous aident à vérifier si les identificateurs de connexion sont correctement attribués ou si les demandes de connexion incorrectes sont rejetées. Quant aux tests de canaux, ils peuvent être écrits pour vérifier si les utilisateurs peuvent s'abonner à des canaux et si le canal a un flux.
Zeitwerk
Zeitwerk, développé par Xavier Noria, est parti du désir de construire un autoloader pour Rails 6 qui ne possède aucun des pièges connus du modèle classique et qui élimine tous les cas d'utilisation connus de require_dependency. Selon Noria, l'autoloader classique dans Rails est fondamentalement limité, car il est basé sur const_missing et ce rappel ne récupère pas l'imbrication ni l'algorithme utilisé lorsque la constante était manquante.
Mais avec le temps, de nouveaux ajouts au langage Ruby ont rendu possible une approche supérieure. À ce titre, Zeitwerk est maintenant le nouveau chargeur de code pour Ruby. Avec une structure de fichier conventionnelle, Zeitwerk charge les classes et les modules de votre projet à la demande, ce qui signifie que vous n'avez pas besoin d'écrire des appels obligatoires pour vos propres fichiers.
Webpack en tant que bundle par défaut de JavaScript
Comme c'est le standard de facto avec de nombreux frameworks JavaScript modernes pour le développement front-end, Rails 6 a ajouté Webpack comme bundle JavaScript par défaut via Webpacker Gem, en remplacement du pipeline d'actifs Rails. Cela peut être vu comme un ajout relativement simple, mais il pourrait être d’une grande utilité. Autant dire que Webpack soulagera un peu les développeurs, car l’équipe de développement de Rails a précisé qu’il utilise toujours le pipeline d'actifs avec Sprockets pour les actifs CSS et statiques.
Selon l’équipe, les deux s'intègrent très bien et offrent le meilleur compromis possible entre les fonctionnalités JavaScript avancées et une approche it-just-works pour les autres actifs. Ce ne sont là que quelques-uns des ajouts à la nouvelle version, mais Rails 6.0 regorge également de modifications mineures, de correctifs de bogues et de mises à niveau.
Sources : Billet de blog, Note de version Rails 6
Et vous ?
Que pensez-vous des nouveautés apportées dans Ruby on Rails 6 ?
Voir aussi
Sortie de nouvelles versions de Ruby On Rails pour corriger deux failles critiques pouvant permettre des injections SQL
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?
Ruby on Rails 4.0 améliore le débogage et les performances. Le développement de la version 5 amorcé
RoR : la version 6 du framework Ruby a été publiée avec la prise en charge de plusieurs bases de données
Et d'autres améliorations
RoR : la version 6 du framework Ruby a été publiée avec la prise en charge de plusieurs bases de données
Et d'autres améliorations
Le , par Bill Fassinou
Une erreur dans cette actualité ? Signalez-nous-la !