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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

Ruby on Rails 3.1 en RC, adopte jQuery, SaSS et le compilateur JavaScript CoffeeScript


Sujet :

Ruby on Rails

  1. #1
    Expert éminent sénior
    Avatar de Idelways
    Homme Profil pro
    Développeur Ruby on Rails / iOS
    Inscrit en
    Juin 2010
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Ruby on Rails / iOS

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 374
    Points : 68 548
    Points
    68 548
    Par défaut Ruby on Rails 3.1 en RC, adopte jQuery, SaSS et le compilateur JavaScript CoffeeScript
    Ruby on Rails 3.1 fin prête pour la production
    Une version centrée sur les performances des applications Web et l'organisation du code

    Mise à jour du 1 septembre 2011


    La branche 3.x du framework Ruby on Rails vient d'avoir une mise à jour majeure, centrée sur l'amélioration globale des performances et une meilleure écriture et organisation du code au sein des applications Web.

    Les nouveautés les plus notables de ce cadre logiciel de développement Web ont été passées en revue sur l'annonce de la Release Candidate (lire ci-devant), mais en voici le rappel des plus importantes.

    Côté architectural, Rails3.1 est essentiellement marqué par l'introduction du Assets Pipeline.

    Ce middleware d'ActionPack hisse le JavaScript et CSS au même rang que le code Ruby côté serveur, en plaçant ces fichiers au coeur de l'application où ils peuvent être codés avec des alternatives jugées plus évoluées : CoffeeScript et SCSS, les nouvelles dépendances du framework.

    Grâce à Sprockets 2.0 et Uglifier, les applications délivrent un seul fichier de script et un seul fichier CSS compressés, minifiés et obfusqués, dont le téléchargement peut débuter avant même la fin de la génération de la page dynamique, grâce au support de l'HTTP Streaming.

    jQuery est naturellement le nouveau framework par défaut. Il n'est toutefois plus inclus par défaut, mais récupéré dans sa dernière version grâce à une librairie (ruby gem) indépendante.

    Depuis l'annonce de la Release Candidate, l'équipe du framework, à qui ça arrive de suivre les tendances en plus de vouloir en créer, décide que le JSON en plein essor sera désormais le format alternatif pour toutes les requêtes (sur les scaffolds notamment), en remplacement du XML en perte de vitesse.

    Ruby on Rails est utilisé notamment par Diaspora*, le réseau social libre.

    Pour installer Rails 3.1 via Ruby Gems et RVM :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    rvm @rails31_project_name --create --rvmrc
    gem install rails
    rails new project_name

    Pour la liste complète des nouveautés, consulter les Release Notes

    Source : Blog officiel

    Et vous ?

    Maintenant que cette version est sortie en version finale, avez-vous passé, ou envisagez-vous d'y passer vos applications en production ?
    Que pensez-vous de ces nouveautés et de la direction dans laquelle s'engage le framework ?


    Lancement de Rails 3.1 en Release Candidate
    Durant la RailsConf 2011, Asset Pipeline et HTTP Streaming en action

    Mise à jour du 23/05/2011 par Idelways


    La version 3.1 de Ruby on Rails est disponible en Release Candidate, une mouture riche en nouveautés, présentées en détail par plusieurs intervenants lors de la conférence annuelle RailsConf dédiée au framework, organisée cette année à Baltimore du 16 au 19 mai.

    Cette version élève notamment la partie « front-end » JavaScript et CSS des applications (jusque-là cantonné au dossier public) au même rang que le code Ruby des contrôleurs, vues, modèles et assistants en plaçant ces sources dans le sous-dossier Assets du répertoire « app ».

    Le nouveau module Asset Pipeline (propulsé par la bibliothèque Sprockets 2.0) prône une meilleure organisation et répartition des sources JavaScript et CSS, tout en délivrant au navigateur un fichier unique permettant d’économiser le nombre de requêtes serveur et le temps de latence qui en résulte.

    Uglifier, une autre dépendance par défaut du Framework permet de compresser, minifier et obfusquer ce fichier en production.

    Sprockets fonctionne aussi bien en JavaScript/CSS traditionnels qu'en CoffeeScript/SCSS, introduits dans cette version comme la « nouvelle mode » de coder en JavaScript et CSS par les développeurs Rails (pour plus de détails, lire ci-devant)

    Une surcouche eRB peut être rajoutée. Il est donc tout à fait possible de créer un fichier clients.css.scss.erb, permettant d'exécuter du code Ruby dynamique dans un fichier SCSS qui sera à son tour converti en CSS et combiné aux autres fichiers avant d’être mis en cache. Le tout d'une manière transparente pour le développeur.



    Il reste toutefois possible de combiner au sein d'une même application des fichiers JavaScript et CoffeeScript. Il est donc inutile par exemple de convertir jQuery (par ailleurs framework JS par défaut de Rails depuis cette version) en CoffeeScript.

    L'autre nouveauté phare de Rails 3.1 est l'arrivée du Streaming HTTP, une fonctionnalité destinée à accélérer le chargement des pages en délivrant progressivement le contenu d'une réponse HTTP au fur et à mesure que son contenu dynamique est généré.
    Cette fonctionnalité peut être activée par contrôleur et limitée à une ou plusieurs actions.

    Son activation implique toutefois l'inversement de l'ordre d'évaluation des templates. Le Layout des pages est exécuté en premier pour permettre au navigateur de commencer dès que possible le chargement des dépendances statiques appelés habituellement dans le head.
    Par conséquent, les contenus ajoutés au Layout à partir des vues via des appels à Content_for ne sont pas évalués à temps.
    Pour y pallier, « Provide », une méthode alternative à content_for au fonctionnement identique, permet de forcer l'exécution des vues jusqu'au dernier appel à Provide, avant de passer à l'évaluation du Layout.

    De nombreuses autres améliorations font leur apparition dans toutes les parties du framework, parmi elles :

    Du côté d'ActiveRecord, has_secure_password permet de hacher ses mots de passe (avec grain de sel) très facilement avec l'algorithme robuste et antiforcebrute BCrypt.
    Ruby on Rails 3.1 introduit par ailleurs Identity Map, une nouveauté encore instable, qui réutilise le même objet alloué en mémoire à la création d'un enregistrement, lorsque le même enregistrement est sollicité ailleurs dans le code, économisant mémoire et requêtes SQL.

    Les migrations intelligentes réversibles (sans la partie Down) font aussi leur apparition, en compagnie d'une gestion plus optimisée (collective) des modifications sur le schéma des tables et l'ajout par défaut d'index aux clés étrangères simples ou polymorphiques.

    Plus de détails sur cette version sur la Keynote de David Heinemeier Hansson durant la Rails Conf 2011.

    [ame="http://www.youtube.com/watch?v=cGdCI2HhfAU"]RaisConf 2011[/ame]

    Rails 3.1 RC peut être installée via RubyGems avec la commande : gem install rails --pre.


    La liste complète et très détaillée des nouveautés de cette version est maintenue par Ryan Bates (de Railscasts) sur cette page

    Source : site officiel de Rails

    Et vous ?

    Que pensez-vous des nouveautés de cette version ?




    Ruby on Rails 3.1 adopte jQuery, SaSS et le compilateur JavaScript CoffeeScript
    Comme dépendance par défaut, le streaming HTTP arrive sur le framework



    Après quelques mois d'accalmie depuis la sortie de la version 3.0 du framework de développement Web Ruby on Rails, la fièvre des nouvelles versions (et des polémiques) regagne la communauté à la suite de l'annonce de nouveaux détails sur la prochaine version et l’intégration par défaut de nouvelles dépendances.

    Si l'adoption du framework jQuery en remplacement du couple Prototype/Script.aculo.us fait (presque) l'unanimité parmi les développeurs qui suivent l'évolution du Framework, on ne peut en dire autant de la décision d'intégrer par défaut le compilateur JavaScript CoffeeScript et à un degré moindre l'adoption du compilateur CSS SaSS.

    CoffeeScript, dévoilé en début 2010, se positionne comme une nouvelle syntaxe pour JavaScript, destinée à ressortir les qualités du langage en cachant au développeur ses défauts avec une syntaxe plus épurée et plus logique, proche de celle de Ruby.

    Au départ, CoffeeScript était écrit en Ruby et disponible uniquement en tant que bibliothèque du langage (ruby gem), mais depuis, ce compilateur, de plus en plus populaire, a gagné en maturité, a été réécrit en Node.js et porté sur un grand nombre de plates-formes de développement.

    SaSS est pour CSS ce qu'est CoffeeScript pour JavaScript et sera lui aussi une dépendance par défaut de Rails 3.1.
    Ce compilateur n'altère toutefois pas pour beaucoup la logique du langage de mise en forme et se contente de lui ajouter les fonctionnalités jugées manquantes, pour faciliter l'intégration et la maintenance des feuilles de style.

    Il introduit entre autres, les variables, les mixins, l'imbrication et l'héritage entre sélecteurs et même des options avancées comme les conditions, boucles et importation de fichiers externes.

    Depuis la sortie de la version 3.0 de Sass, sa nouvelle syntaxe par défaut SCSS (pour « Sassy CSS ») se rapproche de celle de CSS3 en rétablissant notamment les accolades et les points-virgules à la fin des règles CSS.
    Un fichier CSS 3 classique est donc tout à fait compatible avec SCSS, ce qui rend l’adoption de cette technologie beaucoup plus naturelle.
    SaSS a aussi été porté sur d'autres langages.

    Ruby on Rails 3.1 intègrera par ailleurs le support du Streaming HTTP, une nouveauté initialement annoncée en marge de la sortie de la bêta de Rails 3.0.

    Cette fonctionnalité, destinée à améliorer la vitesse de chargement des pages permet au navigateur de charger les dépendances statiques de la page (JavaScript, CSS, images...) avant même que la requête ne soit entièrement traitée par le serveur et le contenu dynamique de la réponse généré.

    La taille de la réponse aux requêtes n'est donc pas fixée et envoyée au navigateur dans l'entête (Header HTTP) et les différents morceaux de la requête (avec leur taille) sont ajoutés au fur et à mesure de leur génération.
    Ces morceaux sont donc intégrés par le serveur à la réponse dès qu'ils sont prêts, permettant à l'ensemble de la page de se charger plus rapidement, réduisant ainsi le temps de latence.

    Cette fonctionnalité repose sur le mécanisme « Chunked transfer encoding » supporté par la version 1.1 du protocole HTTP.

    Par ailleurs, tous les mécanismes d’ActionView en relation avec RJS (Ruby to JavaScript) ont été retiré de la version 3.1 et placés dans un gem appelé prototype-rails.

    La date de sortie de la version 3.1 définitive n'est pas encore connue, mais il est possible de la tester dès maintenant en l'installant à partir de GitHub.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mkdir ~/rails-3.1/ ; cd ~/rails-3.1/ 
    git clone git://github.com/rails/rails.git
    ~/rails-3.1/rails/bin/rails new application_de_test --edge
    Source : le blog du framework, GitHub

    Et vous ?

    Que pensez-vous des nouveautés de cette version ?
    L'avez-vous essayé ? Qu'en pensez-vous ?

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 609
    Points : 188 582
    Points
    188 582
    Par défaut
    Quid du module Engines, qui empêche des projets comme Redmine ou ChiliProject à migrer sur RoR 3.x ?
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 860
    Points
    1 860
    Par défaut
    jQuery, YES, enfin !

  4. #4
    Expert éminent sénior
    Avatar de Idelways
    Homme Profil pro
    Développeur Ruby on Rails / iOS
    Inscrit en
    Juin 2010
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Ruby on Rails / iOS

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 374
    Points : 68 548
    Points
    68 548
    Par défaut
    Bonjour dourouc05,

    Le module Engines a été complètement réécrit pour Rails 3.0 mais à la sortie de cette version, le module n'a pas pu être complété par manque de temps, mais il est (partiellement) disponible sur Rails 3.0 qui pousse même à l'extrême le principe des Engines, vu que toute application Rails 3.0 est en effet un Engine.

    Rails 3.1 complétera le module avec migrations, assets et tout ce qu'il faut pour que les plugins de Redmine (qui sont en fait des Engines) peuvent fonctionner sur la branche 3.x

    Cordialement
    Idelways.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 564
    Points
    564
    Par défaut
    Je ne vois pas trop l'intérêt de CoffeeScript mais je n'ai pas encore creusé le sujet. Ce qui me gène avec Rails, c'est que DHH y ajoute ce qui l'intéresse (enfin sa boite) alors que d'autres doivent se contenter d'un gem ex. i18n

  6. #6
    Expert éminent sénior
    Avatar de Idelways
    Homme Profil pro
    Développeur Ruby on Rails / iOS
    Inscrit en
    Juin 2010
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Ruby on Rails / iOS

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 374
    Points : 68 548
    Points
    68 548
    Par défaut
    Bonjour herr_wann,

    Rails est connu, depuis sa sortie d'être un "framework à opinion" qui veut démocratiser (et promouvoir) certaines bonnes pratiques que ses concepteurs jugent intéressantes.

    En 2005 c'était Ajax, DRY, MVC pour le web ou encore Conventions plutôt que configurations, largement repris maintenant par d'autres technos.

    Cette année c'est CoffeeScript et SaSS, qui sait ? Peut être que CoffeeScript remplacera JavaScript un jour où que certaines nouveautés de SaSS seront intégrés à une prochaines révision de CSS.

    Cordialement à tous.

  7. #7
    Expert éminent sénior
    Avatar de Idelways
    Homme Profil pro
    Développeur Ruby on Rails / iOS
    Inscrit en
    Juin 2010
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Ruby on Rails / iOS

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 374
    Points : 68 548
    Points
    68 548
    Par défaut
    Lancement de Rails 3.1 en Release Candidate
    Durant la RailsConf 2011, Asset Pipeline et HTTP Streaming en action

    Mise à jour du 23/05/2011 par Idelways


    La version 3.1 de Ruby on Rails est disponible en Release Candidate, une mouture riche en nouveautés, présentées en détail par plusieurs intervenants lors de la conférence annuelle RailsConf dédiée au framework, organisée cette année à Baltimore du 16 au 19 mai.

    Cette version élève notamment la partie « front-end » JavaScript et CSS des applications (jusque-là cantonné au dossier public) au même rang que le code Ruby des contrôleurs, vues, modèles et assistants en plaçant ces sources dans le sous-dossier Assets du répertoire « app ».

    Le nouveau module Asset Pipeline (propulsé par la bibliothèque Sprockets 2.0) prône une meilleure organisation et répartition des sources JavaScript et CSS, tout en délivrant au navigateur un fichier unique permettant d’économiser le nombre de requêtes serveur et le temps de latence qui en résulte.

    Uglifier, une autre dépendance par défaut du Framework permet de compresser, minifier et obfusquer ce fichier en production.

    Sprockets fonctionne aussi bien en JavaScript/CSS traditionnels qu'en CoffeeScript/SCSS, introduits dans cette version comme la « nouvelle mode » de coder en JavaScript et CSS par les développeurs Rails (pour plus de détails, lire ci-devant)

    Une surcouche eRB peut être rajoutée. Il est donc tout à fait possible de créer un fichier clients.css.scss.erb, permettant d'exécuter du code Ruby dynamique dans un fichier SCSS qui sera à son tour converti en CSS et combiné aux autres fichiers avant d’être mis en cache. Le tout d'une manière transparente pour le développeur.



    Il reste toutefois possible de combiner au sein d'une même application des fichiers JavaScript et CoffeeScript. Il est donc inutile par exemple de convertir jQuery (par ailleurs framework JS par défaut de Rails depuis cette version) en CoffeeScript.

    L'autre nouveauté phare de Rails 3.1 est l'arrivée du Streaming HTTP, une fonctionnalité destinée à accélérer le chargement des pages en délivrant progressivement le contenu d'une réponse HTTP au fur et à mesure que son contenu dynamique est généré.
    Cette fonctionnalité peut être activée par contrôleur et limitée à une ou plusieurs actions.

    Son activation implique toutefois l'inversement de l'ordre d'évaluation des templates. Le Layout des pages est exécuté en premier pour permettre au navigateur de commencer dès que possible le chargement des dépendances statiques appelés habituellement dans le head.
    Par conséquent, les contenus ajoutés au Layout à partir des vues via des appels à Content_for ne sont pas évalués à temps.
    Pour y pallier, « Provide », une méthode alternative à content_for au fonctionnement identique, permet de forcer l'exécution des vues jusqu'au dernier appel à Provide, avant de passer à l'évaluation du Layout.

    De nombreuses autres améliorations font leur apparition dans toutes les parties du framework, parmi elles :

    Du côté d'ActiveRecord, has_secure_password permet de hacher ses mots de passe (avec grain de sel) très facilement avec l'algorithme robuste et antiforcebrute BCrypt.
    Ruby on Rails 3.1 introduit par ailleurs Identity Map, une nouveauté encore instable, qui réutilise le même objet alloué en mémoire à la création d'un enregistrement, lorsque le même enregistrement est sollicité ailleurs dans le code, économisant mémoire et requêtes SQL.

    Les migrations intelligentes réversibles (sans la partie Down) font aussi leur apparition, en compagnie d'une gestion plus optimisée (collective) des modifications sur le schéma des tables et l'ajout par défaut d'index aux clés étrangères simples ou polymorphiques.

    Plus de détails sur cette version sur la Keynote de David Heinemeier Hansson durant la Rails Conf 2011.



    Rails 3.1 RC peut être installée via RubyGems avec la commande : gem install rails --pre.


    La liste complète et très détaillée des nouveautés de cette version est maintenue par Ryan Bates (de Railscasts) sur cette page

    Source : site officiel de Rails

    Et vous ?

    Que pensez-vous des nouveautés de cette version ?

  8. #8
    Expert éminent sénior
    Avatar de Idelways
    Homme Profil pro
    Développeur Ruby on Rails / iOS
    Inscrit en
    Juin 2010
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Ruby on Rails / iOS

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 374
    Points : 68 548
    Points
    68 548
    Par défaut
    Ruby on Rails 3.1 fin prête pour la production
    Une version centrée sur les performances des applications Web et l'organisation du code

    Mise à jour du 1 septembre 2011


    La branche 3.x du framework Ruby on Rails vient d'avoir une mise à jour majeure, centrée sur l'amélioration globale des performances et une meilleure écriture et organisation du code au sein des applications Web.

    Les nouveautés les plus notables de ce cadre logiciel de développement Web ont été passées en revue sur l'annonce de la Release Candidate (lire ci-devant), mais en voici le rappel des plus importantes.

    Côté architectural, Rails3.1 est essentiellement marqué par l'introduction du Assets Pipeline.

    Ce middleware d'ActionPack hisse le JavaScript et CSS au même rang que le code Ruby côté serveur, en plaçant ces fichiers au coeur de l'application où ils peuvent être codés avec des alternatives jugées plus évoluées : CoffeeScript et SCSS, les nouvelles dépendances du framework.

    Grâce à Sprockets 2.0 et Uglifier, les applications délivrent un seul fichier de script et un seul fichier CSS compressés, minifiés et obfusqués, dont le téléchargement peut débuter avant même la fin de la génération de la page dynamique, grâce au support de l'HTTP Streaming.

    jQuery est naturellement le nouveau framework par défaut. Il n'est toutefois plus inclus par défaut, mais récupéré dans sa dernière version grâce à une librairie (ruby gem) indépendante.

    Depuis l'annonce de la Release Candidate, l'équipe du framework, à qui ça arrive de suivre les tendances, en plus de vouloir en créer ! Décide que le JSON en plein essor soit désormais le format alternatif pour toutes les requêtes (sur les scaffolds notamment), en remplacement du XML en perte de vitesse.

    Ruby on Rails est utilisé notamment par Diaspora*, le réseau social libre.

    Pour installer Rails 3.1 via Ruby Gems et RVM :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    rvm @rails31_project_name --create --rvmrc
    gem install rails
    rails new project_name

    Pour la liste complète des nouveautés, consulter les Release Notes

    Source : Blog officiel

    Et vous ?

    Maintenant que cette version est sortie en version finale ? Avez-vous passé, ou envisagez-vous d'y passer vos applications en production ?
    Que pensez-vous de ces nouveautés et dans la direction dans laquelle s'engage le framework ?

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 564
    Points
    564
    Par défaut
    A noter que le gem therubyracer est toujours nécessaire pour les linuxiens qui n'auraient pas de moteur javascript installé sur leur machine (node.js par exemple)

    gem 'therubyracer', '>= 0.8.2'

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/04/2011, 12h37
  2. Réponses: 2
    Dernier message: 22/11/2006, 01h13
  3. Réponses: 2
    Dernier message: 06/06/2006, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo