DEVELOPPEMENT LOGICIEL LE FRAMEWORK WEB RUBY ON RAIL REF : WELA010 DUREE : 4 JOURS TARIF : 2 060 HT Public Développeurs d applications web, Chefs de projet techniques, Architectes. Pré-requis Programmation orientée objet et expérience en développement web. Rails, également appelé Ruby on Rails (RoR), est un framework de développement Web basé sur le langage Ruby, qui apporte aux développeurs une productivité accrue, un code concis et un accèss aux bases de données simplifiée. Cette formation très complète sur Ruby On Rails, vous permettra d'acquérir les fondamentaux du développement web avec Ruby on Rails et d'appréhender l'apport de ce framework pour une mise en oeuvre immédiate dans vos projets. Objectifs pédagogiques Comprendre et écrire du code Ruby, Maîtriser les bonnes pratiques de construction d'une application Ruby on Rails, Utiliser quelques bibliothèques (gems) populaires, Déployer leur application sur le cloud..
Programme PROGRAMME DE LA 1ERE JOURNEE DE FORMATION PRESENTATION GENERALE DE RUBY Présentation et historique du langage Ruby Qu est-ce que Ruby on Rails? Quelles sont les avantages du langage Ruby et du framework Ruby on Rails? Retour d expérience sur un projet développé avec Ruby on Rails INSTALLER UN ENVIRONNEMENT DE DEVELOPPEMENT RUBY SUR SA MACHINE Installation de Git, SQLite, RBenv / RVM, Ruby, Bundler et Rails selon son système (Mac OS, Windows, Linux) Comment faire cohabiter plusieurs interpréteurs Ruby avec RBenv et RVM? Présentation des IDE et éditeurs (RubyMine, SublimeText, TextMate, Vim, etc.) COMPRENDRE ET ECRIRE DU CODE RUBY Introduction au langage Ruby : syntaxe, convention, Duck Typing, etc. Les principaux types de données : chaines de caractères, entiers, tableaux, dictionnaires, symboles, expressions booléennes Structure de contrôle : conditions, boucles, ect. Définition de méthodes La notion de bloc Les Lambdas et les Procs Définition de classes : constructeurs, variables d instance, accesseurs, méthodes d instance, variables de classe, méthodes de classe, contrôle des accès. Manipulation des objets Présentation de method_missing Héritage de classes : visibilité, super-classes et sous-classes, redéfinition de méthodes, appel de constructeurs de super-classes Les modules : packages, mixins
Gestion des exceptions TP avec l'interpréteur en ligne de commande «irb» PROGRAMME DE LA 2NDE JOURNEE DE FORMATION CONSTRUIRE UNE APPLICATION RUBY ON RAILS Présentation et historique de Ruby on Rails Création d une application Présentation de la structure d un projet Rails L'architecture MVC (Modèle-Vue-Contrôleur) Les environnements : test, development, production Configuration d une application : initialisation, connexion à la base de données Installation et gestion des gems La ligne de commande et Rails Exécution du serveur web Cheminement d une requête HTTP Savoir lire et configurer les logs TP : Génération d un CRUD (create, read, update, delete) sur une ressource de notes, Versionner son code avec Git LE MODELE Comprendre la correspondance entre modèle objet et base de données relationnelle Interagir avec la base de données à l'aide d'active Record : création, mise à jour, lecture et suppression d'enregistrements Générer, écrire et exécuter des migrations TP avec «rails console» LA VUE Présentation des langages de templating ERB et HAML Utilisation des helpers de vue : link_to, image_tag, etc.
Création de helpers de vue personnalisés Construction de formulaires Explication du système de Layout TP : Installation et utilisation de la gem simple_form LE CONTROLEUR Présentation de l architecture REST Le rôle du contrôleur Génération de contrôleurs Le déroulement d une action dans un contrôleur : récupérer les paramètres HTTP, gestion du rendu, passage de paramètres à la vue, etc. LE ROUTAGE Les règles de routage Correspondance entre URL et actions de contrôleur Correspondance entre URL et helpers d URL Les règles de routage des ressources Les règles personnalisées Vérifier ces règles de routage avec «rake routes» TP : METTRE EN PLACE UNE RECHERCHE SUR LES NOTES (PARTIE MODELE) Trouver la bonne requête à l aide de «rails console» Implémenter la recherche dans son modèle TESTER SON APPLICATION RUBY ON RAILS Qu'est-ce qu'un test? A quoi cela sert-il de tester son code? Que peut-on tester? (modèles, vues, contrôleurs, etc.)
Les fixtures Les différents types de tests : unitaires, fonctionnels, d intégration, de performance TP : tester l implémentation de sa recherche de notes TP : METTRE EN PLACE UNE RECHERCHE SUR LES NOTES (PARTIE CONTROLEUR / VUE) Ajouter une action au contrôleur Ajouter une règle de routage Modifier la vue pour ajouter un formulaire de recherche de notes PROGRAMME DE LA 3EME JOURNEE DE FORMATION DEPLOYER SON APPLICATION SUR HEROKU Création d un compte Heroku Création d une application Cedar Configuration de son application pour le déploiement Procédure de déploiement et environnement de production Les différentes commandes pour interagir avec son application en production Les add-ons Heroku TP : déploiement de son application sur Heroku CYCLE DE VIE ET INTEGRITE DES MODELES Cycle de vie d un objet Active Record Méthodes de «call-back» Mécanisme de validation d un objet Active Record Utilisation de règles de validation Création de règles de validation personnalisées TP : Ajouter des règles de validation sur le modèle Note OPTIMISER ET GERER VOS RESSOURCES STATIQUES AVEC L'ASSET PIPELINE
Qu est-ce que l Asset Pipeline? Comment utiliser l Asset Pipeline (en développement, en production)? Présentation de SASS et CoffeeScript TRAVAUX PRATIQUES Mise en place du framework CSS : Bootstrap Twitter Mise en place d une pagination Installation et configuration de la gem will_paginate Utilisation de la gem pour paginer les notes sans AJAX Pagination des notes avec AJAX CREER UNE API REST Contrôleur et architecture REST Sérialisation JSON et XML Création d une API REST simple Présentation de RABL pour définir le format de sérialisation de la réponse Solution pour protéger une API REST PROGRAMME DE LA 4EME JOURNEE DE FORMATION ASSOCIATIONS ENTRE MODÈLES Association «one to many» Association «many to many» Association «many to many» avec table de jointure valuée Mise à jour de la structure de la base de données Manipulation de grappes d objets TP : création d un modèle User et de l association «one to many» entre les modèles User et Note
LE MODELE AVANCE DE RUBY ON RAILS Création d un scope Gestion du cache au niveau d Active Record Les méthodes «find» dynamiques Les différentes utilisations de la méthode «where» Active Record et la génération de requêtes avancées : jointure externe, sous-requête, etc. Les pièges à éviter ENVOI D'EMAILS Envoi d'emails basiques avec Active Mailer Configuration de Active Mailer Mails HTML SESSION, COOKIES ET AUTHENTIFICATION Où stocker la session? (cookies, base de données, etc.) Manipulation de la session Manipulation des cookies Affichage de messages Flash Exemple d'utilisation de la session avec un système authentification TP : mise en place d un système authentification avec la gem Devise et d une interface d'administration avec la gem Active Admin