Paris On Rails 2008

Alixen a eu le plaisir de parrainer et d'assister à la conférence Paris on Rails 2008 qui se déroulait à la Cité des Sciences de la Villette. Les présentations étaient articulées selon trois grands thèmes.

Le monde Ruby continue d'évoluer, restant ouvert aux concepts innovants internes ou externes à la communauté (Russ Olsen). Ruby 1.9 est une version de transition qui apporte son lot de nouveautés, notamment des performances accrues, une meilleure gestion des encodages et une syntaxe encore plus élégante (Guillaume Desrat). Rails 2.2 supporte nativement l'internationalisation (i18n), apporte beaucoup d'optimisations diverses, et est dès aujourd'hui prêt à être utilisé en production (David Heinemeier Hansson). Ainsi, on se rend compte que ces nouvelles versions s'ouvrent vraiment à une utilisation internationale.

À l'heure actuelle, les interfaces des applications web se modernisent de plus en plus avec une interactivité toujours plus forte. Le moteur de cette interactivité (« Web 2.0 ») est le JavaScript dont les différents frameworks permettent de développer de manière unifiée ces interfaces modernes. Rails vient en standard avec la bibliothèque Prototype/Scriptaculous, mais du fait de sa modularité il est tout à fait possible d'en intégrer d'autres tel que Mootools (Mathieu Fosse), réputé pour la performance de ses effets visuels. Cette modularité de la vue ne s'applique pas seulement au côté client, mais également au serveur. Par défaut, une vue d'une application Rails utilise Embedded Ruby (ERB) pour présenter ses données, ce qui convient à la majorité des applications. Pourtant dans le cadre d'une application mutualisée où l'utilisateur peut influer sur la présentation, une séparation encore plus forte des données et de la présentation est souhaitable. Le moteur de template Liquid répond à cette problématique (Didier Lafforgue).

Les performances de Rails ont été jugées suffisantes. Si des lenteurs ou problèmes sont constatés, ils viennent souvent d'autres sources que du code applicatif, comme une mauvaise configuration des serveurs frontaux. En plus, Rails 2.2 apporte plusieurs moyens de mesurer les performances de l'application, de localiser les goulots d'étranglement et d'y remédier, en mettant à profit des méthodes de cache (Michael Koziarski).

« Test Driven Development » et les tests d'intégration dans la méthodologie agile étaient le sujet de deux présentations ainsi que du principal débat de la table ronde. Les tests sont considérés comme améliorant la qualité du processus de développement, particulièrement lorsqu'il s'agit de s'adapter aux demandes d'évolution du client. La communauté Ruby fournit plusieurs outils tels que CruiseControl pour l'intégration continue, Screw-Unit et Selenium pour tester l'interface utilisateur ainsi que RSpec et Cucumber pour créer des spécifications exécutables et des tests de recette utilisateur. Tous ces outils sont faits de telle sorte qu'ils fournissent des rapports détaillés et lisibles, facilement compréhensibles (Jean-Michel Garnier). Enfin Selenium Grid permet de distribuer des tests, réduisant ainsi considérablement le temps nécessaire d'exécution de ces derniers (Philippe Hanrigou). La table ronde a confirmé que le temps consacré aux tests représente un investissement avantageux sur un projet, et qu'au moins des tests unitaires sont indispensables.

Viktor Horvath