Ruby On Rails, présentation
Apparu il y a un moment déja (en 2004), Ruby On Rails (ou RoR) révolutionne à sa manière la conception de sites Web interactifs, d’une part de par la simplicité du langage sur lequel il est basé, et d’autre part grâce aux nombreux modèles de conception sur lesquels il s’appuie, petit tour d’horizon.
Rails est basé sur deux principes fondamentaux:
- DRY, ou Dont Repeat Yourself (Ne pas se répéter): les éléments de l’application ne doivent se situer qu’à un seul et unique endroit, cela permet la mise en place de code facile à maintenir.
- Convention over Configuration (Convention plutôt que configuration) qui dit que plutôt que de passer énormément de temps à spécifier énormement de détails, le mieux est de prendre pour acquis un certain nombre de ceux cis. Cela signifie un comportement par défaut pour bon nombre d’éléments.
Modèle-Vue-Contrôleur
L’un des gros avantages de Rails est son extrême simplicité grâce à un système extrêmement bien pensé. Non fier de reprendre le modèle MVC (Model View Controller), Rails l’enrichit de par la présence d’une couche d’abstraction Active Record au niveau du Modèle, mais avant de vous perdre, faisons un petit point sur ce qu’est le MVC.
MVC est un modèle de conception qui se sépare en trois parties:
- Le Modèle de données, qui représente l’information à traiter, ou plus couramment les requêtes avec la base de données.
- La Vue, ou plus simplement: ce que vous voyez, assez couramment le XHTML.
- Le contrôleur, qui se charge de récupérer les informations dans le modèle, de les traiter et de les passer à la vue.

Quand une requette est envoyée au navigateur, c’est donc le contrôleur qui est appelé, mettant en relation le modèle et la vue.
Quels avantages ?
@Wkipédia :
Un avantage apporté par ce modèle est la clarté de l’architecture qu’il impose. Cela simplifie la tâche du développeur qui tenterait d’effectuer une maintenance ou une amélioration sur le projet. En effet, la modification des traitements ne change en rien la vue. Par exemple on peut passer d’une base de données de type SQL à XML en changeant simplement les traitements d’interaction avec la base, et les vues ne s’en trouvent pas affectées.
Active Record
Le coté magique de Rails… Active record, c’est une manière de concevoir l’interaction avec la Base de Données (BDD), en encapsulant la couche de données dans une classe, dès lors, il deviens rapidement aisé d’effectuer des ajouts/modifications dans la base de données sans taper une seule ligne de SQL, juste en faisant appel aux propriétés du modèle. On apelle ça plus simplement de l’abstraction de base de données (n’est ce pas david … ).
J’aurais tendance à représenter Active Record de cette manière : un noyau constituant la BDD, encapsulé dans une couche Objet, effectuant les requettes avec la Base de données.
Quels avantages?
On fait ici de l’object-relational mapping (ORM), c’est à dire que l’on crée l’illusion de communiquer avec une base de données Objet. Ainsi, le code suivant effectue bien un enregistrement dans la base de données, de manière totalement transparente pour l’utilisateur :
Repas = Menu.new
Repas.prix = 20
Repas.nom = "dorade royale" Repas.save
En savoir plus sur Active Record
Le Scaffolding
Une autre des grandes fonctionnalitées de Rails est le Scaffolding.
(…) D’accord, mais que ce cache t’il derrière ce nom plutôt barbare ?
Scaffolding signifie “échafauder” c’est à dire poser les bases permettant de construire de manière plus efficace, et plus sécurisée.
Dans le cas de Rails, cela se vérifie amplement: une fois la base de données construite, une petite opération de scaffolding (il ne s’agit que d’une commande) mets littéralement en place tout le back office de votre application.Ce système permet de mettre en place une interface d’administration des plus basiques, mais nous disposons dès lors d’un système de gestion de contenu, mis en place en à peine quelques minutes.
Quelle utilité?
Le scaffolding présente plusieurs avantages, à commencer par le gain de temps (décidément mis à l’honneur par Rails).
Le temps passé à modifier l’interface d’administration n’est pas passé à la créer, et dans bien des cas il s’agit d’une tache assez rébarbative. Rails nous permet donc de nous concentrer sur ce qui nous intéresse (les fonctionnalités particulières) et non pas sur ce qui peut etre généré automatiquement.
Et j’en passe …
Rails regorge de petits raccourcis, de petits riens qui font qu’il est réellement excitant de développer avec ce Framework. Il permet entres autres d’utiliser la syntaxe Yaml afin de saisir les champs composant sa Base de Données, et ce toujours dans l’objectif de nous simplifier la tache. Je ne vous parlerais pas des Flash Notices, facilitant énormément la gestion des erreurs…
Conclusion
Vous connaissez maintenant les grands axes choisis par Rails pour vous faciliter la tache, une fois ces concepts assimilés, il est désormais beaucoup plus simple de s’attaquer à la conception d’un projet Web d’envergure.
Rails mets à disposition des outils, des concepts, et la documentation pour permettre aux développeurs de se concentrer sur ce qui importe. Personnellement, j’ai craqué, et je ne regrette rien ! Le temps passé à apprendre / comprendre ces concepts à rapidement été amorti de par la qualité des applications produites, et le temps passé sur celles cis.
Et si avec tout ça j’ai pas réussi à vous convertir, voila une petite vidéo du créateur de Rails himself, ou il développe un blog en 15mn montre en main…

(2 votes, average: 4 out of 5)











juillet 7th, 2007 13:14
J’ai regardé rapidement, je le trouve très compliqué.
Il en existe comme cakePHP ou Simphony qui sont beaucoup simple, mais c’est certainement une question de goût
juillet 8th, 2007 01:18
le mieux serait de regarder un peu plus en profondeur à ce moment là.
D’autant que PhpCake n’est autre qu’un clone de RubyOnRails, comme le disent ses propres auteurs, j’ai donc du mal à concevoir que celui ci soit plus simple que son exemple.
Essaye de creuser un peu plus du coté de RoR qui est véritablement une mine d’or !
juillet 8th, 2007 23:03
Je lui trouve qu’il a un langage bien à lui. C’est pour ça que cela m’a rebuté. Je sais aussi que cakePHP est basé dessus.
Je me replongerai le nez dedans quand j’aurai un peu plus de temps
juillet 11th, 2007 19:34
Si je puis me permettre, CodeIgniter est considéré par les partisans de RoR (pas ses créateurs) comme un concurent émergent.
http://www.codeigniter.com/ pour le site
http://codeigniter.com/tutorials/ pour les tutos vidéo.