« Ruby on Rails : lancez-vous ! »
Le 1er février 2009
Ruby on Rails
Ruby on Rails ... Encore un _autre_ framework !?
Lorsque j’ai commencé à développer avec Ruby on Rails, j’ai été totalement captivé par la facilité qu’on a à se lancer dans le grand bain grâce à ce framework tout en ayant jamais écrit une seule ligne de Ruby. C’est d’ailleurs une excellent introduction au langage en lui-même qui est remarquable de simplicité et de fonctionnalité.
Le framework évolue rapidement, grâce à une communauté de développeurs visiblement aussi doués que motivés. Les erreurs et les approximations des premières versions sont petit à petit corrigées, et le framework ne fait que gagner en clarté et en « pureté ».
"Ta force petit, c’est ta différence !"
L’abondance de plugins tous plus utiles les uns que les autres est peut-être LE point fort du développement avec Rails. Vous cherchez à joindre une photo à un produit ? À disposer en quelques lignes d’un système d’authentification complet avec envoi d’un mail de confirmation ? À traduire votre application en 5 langues ? Il existe un plugin pour chacune de ces tâches et leur installation est des plus aisée.
Une fois assimilés les principes de base de son fonctionnement, qui sont ceux du modèle MVC, on est directement au cœur du sujet, à manipuler des objets métiers, etc. Ainsi si vous avez déjà une expérience avec ce style de développement, vous retrouverez rapidement vos marques.
Ambitions
Si vous n’y connaissez rien en développement et a fortiori en développement web mais que vous avez un minimum d’envie, un projet, que vous voulez surtout ne jamais vous ennuyer et apprendre à votre rythme, pourquoi ne pas commencer ? Le seul pré-requis est d’avoir un minimum de connaissance de HTML, le langage employé pour faire des pages web.
Pour vous mettre le pied à l’étrier, j’ai décidé d’écrire une série de quelques articles qui vont présenter je l’espère le plus simplement possible les grandes lignes du développement avec Rails. J’essayerais de me tenir au rythme d’un article par semaine. Cet article se conclura sur un cas concret de mise en pratique des nouvelles connaissances acquises, ce qui devrait vous donner un peu de grain à moudre ;) !
Voici le plan que je prévoie pour l’instant pour les prochains articles. Il est susceptible de changer, bien entendu ;) ! Si vous vous demandez pourquoi j’ai eu l’idée d’écrire tout cela, c’est tout simplement que je trouve que la documentation en Français disponible sur Internet n’est _plus en phase_ avec ce framework qui a beaucoup évolué en très peu de temps ...
Les articles en prévision
0. Installation de l’environnement de travail :
- Sous Linux / Ubuntu (le plus simple).
- Sous Windows, à l’aide de RubyStack.
- Création d’une nouvelle application.
- Déploiement rapide sur un serveur à l’aide de Passenger.
1. Vues & Contrôleur : (partie 1) (partie 2)
- Un Contrôleur ? Une Vue ?
- Découvrons le générateur de code !
- Communication Vue - Contrôleur.
- Gestion de flux avec les Filtres.
- Réutilisation de code grâce aux Vues Partielles, aux Assistants et aux Squelettes.
- Utilisation des Flashs et de Content_for.
2. Modèles : (partie 1) (partie 2) (partie 3)
- Un Modèle ?
- Création de Relations avec ActiveRecord (un à plusieurs, plusieurs à plusieurs etc.).
- Validation dans le modèle.
- Création à l’aide des Migrations.
- Choix du SGBD (config/database.yml).
- Sélection, modification et destruction d’un objet.
- Remplissage avec de la Garniture.
- Requêtes Préparées et Filtres.
- Cas concret : gestion complète du CRUD pour des comptes utilisateurs.
3. Ressources et Formulaires :
- Découvrons les avantages de la méthode REST.
- Déclaration complète d’une Ressource (config/routes.rb).
- Utilisation des Espaces de Nom
- Liens automatiquements générés par rails : les Routes (*_path).
- De bien jolies URL (to_param).
- Formatages des réponses fournies par le Contrôleur, utilisation de Respond_to.
- Création d’un Formulaire à l’aide des Assistants rails (form_for ...).
- Passons en revue les différents type de champs qui bénéficient d’un assistant spécialisé (text_field, check_box ...).
- Cas concret : le CRUD reloaded, en mieux, avec une zone "administrateur", et des morceaux de XML, de JSON en plus ;)
4. Installez votre premier plugin / votre première gem !
- Des plugins ? Une gem ? Quelqu’un d’autre a écrit le code à ma place !?
- HAML, un nouveau moteur de templates
- Restful Authentication, système d’authentification « clefs en main »
- Paperclip, gestion intégrée de toutes sortes de fichiers : images, mp3, etc.
- Cas concret : création d’une petite application de gestion de bibliothèque musicale avec des pochettes de disques facilement administrable.
5. RJS, le Javascript embarqué :
- Pourquoi utiliser Javascript dans votre application ?
- Mais moi j’aime pas Prototype/Scriptaculous, je préfère X, Y ou Z !
- Déclencher une action Ajax (link_to_remote).
- Formulaire Ajax (remote_form_for).
- Réorganisation de liste Ajax.
- Ajouter des effets graphiques.
- Cas concret : une application de gestion de tâches très simple : ajout, suppression, changement de position/priorité.
5. Testons tout ça !
- Éviter les (grosses) mauvaises surprises grâces aux Tests Unitaires.
- Reconstituez la scène de crime grâce aux Tests Fonctionnels.
- À poursuivre, faudrait déjà arriver là ^^’ ...
Bien sûr, cette petite ébauche est avant tout destinée à être vue comme un "plan" de travail : son rôle est de me permettre de réfléchir et de vous permettre d’intervenir s’il vous semble que je passe à côté de quelque chose d’important !
En un mot, n’hésitez pas à laisser un commentaire si vous avez une suggestion à faire, ou bien simplement pour me dire si tout ça vous intéresse (ou pas) ;) !
Dandelionmood.com a déménagé !
Vos réactions
- alex, le 1er février 2009
- excellent ! j’attends avec impatience la suite des festivités.
- Killian, le 3 février 2009
- Hé bien quel plan ! Je suivrai ça avec attention ([troll]même si Django c’est sûrement mieux[/troll])
- Pierre Quillery, le 6 février 2009
Bouh, vas-t’en vilain troll :D !
Comme disait l’autre : "Rails c’est donc très bien" ;)
