
Présentation du cours : ce que vous allez y apprendre, pour quelles raisons on fait ces choix et comment on va découvrir Ruby on Rails.
Un point rapide sur les prérequis pour aborder ce cours :
Dans cette session, nous installons les différents éléments nécessaires pour le développement en Ruby on Rails :
Note importante : sur Mac OS X, vous devez installer au préalable la dernière version des outils Xcode. Cherchez et installez Xcode grâce au Mac App Store et prenez soin d'installer également les outils pour la ligne de commande (Xcode Command Line Tools).
L'objectif de cette session est de se familiariser avec Ruby, au moyen du shell interactif (Interactive Ruby). On y teste des calculs de base, la définition de fonctions ou de classes, on y découvre les structures de base (array, hash, symboles).
Dans cette session, on crée un projet exemple et on l'exécute.
Le projet exemple, que nous allons développer tout au long du cours, s'appelle Books ODB. Il s'agit d'une application web qui permet à quiconque de créer et de consulter des fiches de lecture.
Le code source intégral du projet est disponible sur GitHub (voir le lien dans les ressources externes). Il y a une branche par session du cours.
Dans cette session, nous réalisons la page d'accueil de notre application web, au moyen d'un contrôleur et d'une vue. Nous découvrons aussi la notion de routage des requêtes entrantes.
Ici nous configurons une base PostgreSQL en remplacement de la SQLite3 fournie par défaut lors de la création du projet.
Comme les tests automatisés sont un prérequis pour tout projet Rails, on installe ici les outils qui vont nous permettre de les coder confortablement :
Dans cette session on crée une première ressource Book avec :
On l'expérimente avec Rails console.
Ici on utilise les ressources Book créées précédemment pour réaliser notre premier contrôleur de ressource et afficher une ressource à l'utilisateur, au moyen d'une vue HTML.
Dans cette session, on affiche dans un tableau la liste de toutes les ressources Book entrées en base de données.
Ici, on découvre comment faire un formulaire pour créer une ressource de type Book et l'écrire en base de données, au moyen d'une action pour l'affichage du formulaire et d'une action pour la création.
Dans cette session, on ajoute des validations au modèle Book pour vérifier la présence de certains champs et le format d'autres champs. On en profite pour écrire quelques tests automatisés, et on découvre comment remonter et afficher les erreurs auprès de l'utilisateur.
Ici on édite une ressource Book, au moyen de deux actions :
On voit également quelques techniques de refactoring pour éviter la duplication de code, comme les filtres d'actions et les partials.
Dans cette session on découvre comment supprimer une ressource. Avant la suppression, on affiche une popup de confirmation grâce à la librairie JS rails-ujs.
On découvre la notion de session, la différence entre une session et les cookies, et on se sert de la session pour préremplir le nom de l'utilisateur qui édite des ressources.
Dans cette session, on voit comment procéder pour préparer l'application à son utilisation dans plusieurs langues. Ensuite on permet à l'utilisateur de changer de langue, et on sauvegarde ses préférences de langues dans des cookies. Enfin on utilise des outils pour simplifier la gestion des langues.
Ici on découvre comment afficher des messages rapides et temporaires à l'utilisateur, au moyen d'une partie spéciale de la session nommée le Flash.
Pour éviter les problèmes de performances lorsqu'une table contient beaucoup d'entrées, on se sert de la pagination. Ici on met en place la gem Kaminari qui gère à notre place toutes les problématiques liées à la pagination, de manière à n'écrire que quelques lignes de code.
Dans cette session on découvre comment écrire des helpers, ces méthodes accessibles dans les vues et dans les contrôleurs qui permettent d'éviter les duplications de code.
On voit comment JavaScript est intégré à Rails de façon "unobstrusive", notamment grâce à la librairie rails-ujs qui se charge à notre place des appels Ajax. On découvre également que ce n'est pas limitant et qu'on peut écrire du code côté client en JavaScript ou en CoffeeScript.
Dans cette session on voit comment intégrer Bootstrap dans une application Ruby on Rails.
On comprend ici ce qu'est le pipeline d'assets de Ruby on Rails et comment s'en servir pour gérer nos assets (JavaScript, CSS, images ou autres), notamment au moyen des différents helpers que le framework met à notre disposition.
On découvre la mécanique très puissante des callbacks de la couche modèle de Ruby on Rails. On l'expérimente au travers de tests et on la met en oeuvre pour automatiser la création de slugs, afin d'accéder aux livres par des URL qui contiennent leurs titres.
On voit dans cette section comment créer des tâches custom. On s'en sert pour créer les slugs de toutes les entrées qui n'en ont pas et ainsi proposer de belles URL à nos utilisateurs.
On apprend exécuter des tâches asynchrones, immédiatement, plus tard ou à un instant donné. On s'appuie pour cela sur Sidekiq, qu'on installe et configure simplement.
Dans cette session, on découvre comment fonctionnent les mailers, comment les tester et comment configurer l'envoi des emails.
Dans cette session on découvre comment lier des ressources entre elles grâce aux associations. On voit en particulier les types d'associations les plus importants comme le belongs_to et le has_many. On s'en sert pour ajouter des commentaires sur les fiches de lecture de notre application web, qu'on crée en Ajax.
Dans cette session, on apprend à mettre en place très rapidement l'authentification des utilisateurs, grâce à la gem Devise. On s'en sert pour permettre la création de livres seulement aux utilisateurs authentifiés et pour restreindre l'édition et la suppression de livres aux utilisateurs qui en sont propriétaires.
Félicitations et conclusion : ce que vous avez appris et ce que vous pouvez faire pour continuer à apprendre.
De façon très pragmatique, étape par étape au travers d'un projet exemple, nous abordons dans ce cours tous les aspects de la création d'une API REST.
Grâce à Ruby on Rails, que ce soit au sein d'un projet existant ou pour un nouveau projet, nous développons facilement une API fonctionnelle, robuste et respectueuse des standards du web.
Vous en avez assez de ces formations longues, qui s'éternisent et se perdent dans les détails ? Et de celles qui, pour rentrer dans un format court, survolent des thématiques pourtant essentielles ?
Avec ce cours, vous investissez une journée de votre temps pour apprendre Ruby on Rails, RAPIDEMENT et FACILEMENT.
Pour hacker l'apprentissage de Rails, on s'appuie sur la loi de Pareto : 80% des connaissances utiles s'acquièrent en 20% de l'effort. On aborde donc ici les sujets essentiels, et uniquement les sujets essentiels, pour découvrir ce framework à la fois facile d'accès et extrêmement puissant.
Pour s'ancrer dans le cadre d'un projet réel, on développe dans ce cours une vraie application web. Vous disposez du code source pour vous y référer en cas de besoin (publié sur GitHub, avec une branche par session du cours).
Avec cette expérience, vous serez prêt·e à développer votre propre application web et à passer très vite de l'idée au produit.