Ruby on Rails. Dave Thomas David Heinemeier Hansson. Groupe Eyrolles, 2006, ISBN : 2-212-11746-9.



Documents pareils
Groupe Eyrolles, 2004, ISBN :

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Devenez un véritable développeur web en 3 mois!

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

Virtualisation. du poste de travail Windows 7 et 8. avec Windows Server 2012

Groupe Eyrolles, 2004 ISBN :

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Formation : WEbMaster

FLEX 3. Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder. Aurélien Vannieuwenhuyze

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Groupe Eyrolles, 2006, ISBN : X

Module 10 : Supplément 2

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

Introduction à. Oracle Application Express

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Déploiement et migration Windows 8 Méthodologie Compatibilité des applications ADK MDT 2012 ConfigMgr 2012 SCCM 2012 Windows Intune MDOP

Magento. Pratique du e-commerce avec Magento. Christophe Le Bot avec la contribution technique de Bruno Sebarte

avast! EP: Installer avast! Small Office Administration

Réussir. son. référencement. web. Olivier Andrieu. Groupe Eyrolles, 2008, ISBN :

PHP et le Cloud. All rights reserved. Zend Technologies, Inc.

Table des matières. Avant-propos... Préface... XIII. Remerciements...

les techniques d'extraction, les formulaires et intégration dans un site WEB

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

PHP 5.4 Développez un site web dynamique et interactif

Réussir. son site e-commerce. avecoscommerce

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE

L EAI. par la pratique. François Rivard. Thomas Plantain. Groupe Eyrolles, 2003 ISBN :

Groupe Eyrolles, 2006, ISBN :

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

Introduction aux services de domaine Active Directory

MOBILITE. Datasheet version 3.0

Mode d emploi Accès & consultation des certificats d étalonnage MES PV EN LIGNE

Architecte Logiciel. Unité de formation 1 : Développer en s appuyant sur les modèles et les frameworks 7 semaines

Attaques applicatives

Programme ASI Développeur

Ruby on Rails Framework "Agile" de développement Web. Juin 2006 (corrigée le 03 juillet 2006) Jérôme MORDELET

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Programmation Web. Madalina Croitoru IUT Montpellier

Windows Serveur 2008 R2

SYSTÈMES D INFORMATIONS

SharePoint 2013 Développez en.net pour personnaliser SharePoint (Apps, REST, CSOM et Azure)

Fonctionnalités.

Microsoft Hosted Exchange 2010 DOCUMENT D EXPLOITATION

Accéder à ZeCoffre via FTP

Manuel utilisateur du logiciel PrestaConnect.

Groupe Eyrolles, 2005,

Cursus Sage ERP X3 Outils & Développement. CURSUS Sage ERP X3 Outils & Développement ADVANCED. Outils avancés. 2 jours X3A-ADM. Développement 1 &2

CONFIGURER ET DÉPLOYER UN CLOUD PRIVÉ AVEC SYSTEM CENTER 2012

Fiche Produit IPS Manager Assistant

Cédric Ouvry Bibliothèque nationale de France Liberty Alliance Deployment Workshop Paris December 7, 2005

SPIP 1.9. Créer son site avec des outils libres. Michel-Marie Maudet Anne-Laure Quatravaux Dominique Quatravaux. Avec la contribution de Perline

Objet du document. Version document : 1.00

Xi Ingénierie. La performance technologique au service de votre e-commerce. Comment exploiter les cookies sur vos applications web en toute légalité?

Module pour la solution e-commerce Magento

et Groupe Eyrolles, 2006, ISBN :

Compte Rendu d intégration d application

Introduction au développement SharePoint. Version 1.0

Tutorial pour l installation et l utilisation de CREO et de Windchill

14.1. Paiements et achats en ligne

Créer un site e-commerce avec Dreamweaver CS4 et PHP/MySQL

Continuité. Management de la. d activité. Assurer la pérennité de l, entreprise : planification, choix techniques et mise en œuvre 2 e édition

CATALOGUE DE FORMATIONS BUSINESS INTELLIGENCE. Edition 2012

Chapitre 1 Windows Server

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

Un montant fixe Un montant flexible, afin d adapter notre offre le plus juste possible à vos besoins et exigences. 899 htva

Fiche Produit Global Directory pour Jabber

PrestaShop 1.5 Créer un site de e-commerce

Introduction MOSS 2007

Configuration du nouveau Bureau Virtuel (BV) collaboratif de Lyon I

Tropimed Guide d'installation

Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

Guide de l utilisateur de Cisco Unified Communications Manager Assistant pour Cisco Unified Communications Manager 6.0

S y m M a i l i n g. S o l u t i o n d e - m a i l i n g. SymMailing est un outil professionnel de création et de gestion de campagnes d ing.

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

FICHE PRODUIT COREYE CACHE Architecture technique En bref Plateforme Clients Web Coreye Cache applicative Références Principe de fonctionnement

PerSal Manuel d installation

One2net. Manuel de l administrateur - PRINCIPES DE BASE. Services internet

Guide de démarrage Tradedoubler. Manuel éditeur / affilié

Copyright Arsys Internet E.U.R.L. Arsys Backup Online. Guide de l utilisateur

Sécurité et mobilité Windows 8

CQP Développeur Nouvelles Technologies (DNT)

I. Descriptif de l offre. L offre Sage 100 Entreprise Edition Entreprise

Mode d emploi pour lire des livres numériques

RÉALISATION D UN SITE DE RENCONTRE

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Tsoft et Groupe Eyrolles, 2005, ISBN :

Configuration de SQL server 2005 pour la réplication

Tech-Evenings Sécurité des applications Web Sébastien LEBRETON

Transcription:

Ruby on Rails Dave Thomas David Heinemeier Hansson Groupe Eyrolles, 2006, ISBN : 2-212-11746-9.

Table des matières CHAPITRE 1 Introduction.................................................... 1 Rails est agile................................................... 4 Se repérer dans le livre........................................... 5 Les versions de Rails.......................................... 7 Remerciements.................................................. 7 De Dave Thomas.............................................. 8 De David Heinemeier Hansson.................................. 8 PARTIE 1 Premiers pas avec Rails.......................................... 9 CHAPITRE 2 Architecture des applications Rails.......................... 11 Modèles, vues et contrôleurs...................................... 11 Active Record : le support du modèle Rails......................... 14 Programmation centrée sur la base de données..................... 15 Correspondance objet/relation................................... 17 Active Record................................................ 18 Action Pack : la vue et le contrôleur................................ 19 Support de la vue.............................................. 19 Et le contrôleur!.............................................. 19

VI Ruby on Rails CHAPITRE 3 Installer Rails................................................... 21 Installation sur Windows......................................... 21 Installation sur Mac OS X........................................ 22 Installation sur Unix/Linux........................................ 22 Rails et les bases de données...................................... 24 Rester à jour.................................................... 26 Rails et les FAI.................................................. 26 CHAPITRE 4 Plaisir immédiat................................................ 27 Créer une nouvelle application.................................... 27 Bonjour, Rails!................................................. 30 Rails et les URL de requêtes..................................... 31 Notre première action.......................................... 31 Soyons dynamiques............................................ 34 Lier les pages entre elles.......................................... 40 Ce que nous venons de faire....................................... 43 PARTIE 2 Construire une application Rails................................ 45 CHAPITRE 5 Présentation de l étude de cas................................ 47 Développement incrémental....................................... 47 Ce que fait l application Dépôt.................................... 48 Scénarios d utilisation.......................................... 48 L enchaînement des pages...................................... 49 Données..................................................... 51 Codons......................................................... 52 CHAPITRE 6 Tâche A : maintenance des produits......................... 53 Itération A1 : faisons tourner quelque chose......................... 53 Créer une application Rails...................................... 54

Table des matières VII Créer les bases de données...................................... 54 Créer la table produits.......................................... 55 Configurer l application........................................ 56 Créer l application de maintenance............................... 57 Les échafaudages Rails......................................... 60 Itération A2 : ajouter une colonne manquante....................... 61 Itération A3 : valider!........................................... 63 Itération A4 : une liste plus jolie................................... 68 Ce que nous venons de faire...................................... 71 CHAPITRE 7 Tâche B : affichage du catalogue............................. 73 Itération B1 : créer le listage du catalogue.......................... 73 Itération B2 : agrémenter la page de décorations..................... 76 Ce que nous venons de faire...................................... 78 CHAPITRE 8 Tâche C : création du panier.................................. 81 Sessions........................................................ 81 Davantage de tables et de modèles................................. 83 Itération C1 : créer un panier...................................... 85 Embellir le panier............................................. 91 Itération C2 : gérer les erreurs..................................... 94 Le flash!.................................................... 94 Itération C3 : terminer le panier................................... 98 Assistants (Helpers)........................................... 101 Ce que nous venons de faire...................................... 103 CHAPITRE 9 Tâche D : gestion des commandes........................... 105 Itération D1 : prendre une commande.............................. 106 Rails et les formulaires......................................... 108 Itération D2 : montrer le panier lors de la commande................. 115 Ce que nous venons de faire...................................... 118

VIII Ruby on Rails CHAPITRE 10 Tâche E : gestion des expéditions............................ 121 Itération E1 : expédition basique................................... 121 Ce que nous venons de faire....................................... 130 CHAPITRE 11 Tâche F : questions d administration......................... 131 Itération F1 : ajouter des utilisateurs................................ 131 Itération F2 : se connecter......................................... 137 Itération F3 : limiter l accès....................................... 139 Si le dernier administrateur vient à partir............................ 141 Mettre à jour le menu latéral..................................... 142 Se déconnecter................................................ 143 La touche finale................................................. 143 Une cerise de plus sur le gâteau.................................... 145 Ce que nous venons de faire....................................... 146 CHAPITRE 12 Tâche T : test de l application................................. 147 Des tests faits maison............................................ 148 Tester les modèles............................................... 149 Votre premier test vous attend déjà............................... 149 Une base de données réservée aux tests............................ 150 Garnitures de test (test fixtures).................................. 151 Créer et lire................................................... 153 Modifier..................................................... 154 Détruire...................................................... 156 Validation.................................................... 156 Préserver la flexibilité des tests.................................. 156 Tester les règles métier du modèle................................ 158 Garnitures dynamiques......................................... 159 Les garnitures se partagent...................................... 160 Assistants de test.............................................. 162 Assertions personnalisées....................................... 163 Tester les contrôleurs............................................. 165 Connexion (login)............................................. 165 Commodités pour les tests fonctionnels............................ 170 Faisons quelques emplettes!..................................... 174

Table des matières IX Utilisation d objets factices (mock objects)......................... 180 Développement par les tests (Test-Driven Development)............. 181 Exécuter les tests avec Rake...................................... 184 Construire une base de données de test............................ 184 Lancer les tests................................................ 185 Planifier des programmes de test continus......................... 186 Générer des statistiques......................................... 186 Test de performance............................................. 187 Garnitures transactionnelles..................................... 190 Tracer et tester les performances d un programme.................. 191 Ce que nous venons de faire...................................... 192 PARTIE 3 Le framework Rails................................................ 193 CHAPITRE 13 Rails en profondeur........................................... 195 Où est Rails?................................................... 195 Structure des répertoires.......................................... 196 Configuration de Rails........................................... 198 Environnements d exécution.................................... 199 Configurer les connexions aux bases de données.................... 199 Environnements............................................... 200 Paramètres de configuration..................................... 201 Conventions de nommage........................................ 202 Casses mixtes, tirets bas et pluriels............................... 202 Grouper des contrôleurs dans un module.......................... 204 Active Support.................................................. 205 Extensions apportées aux nombres............................... 206 Extensions apportées à la classe Time............................. 207 Extensions apportées à la classe String............................ 207 Les journaux de Rails............................................ 208 Conseils de débogage............................................ 208 La suite........................................................ 210

X Ruby on Rails CHAPITRE 14 Les bases de Active Record................................... 213 Tables et classes................................................. 214 Colonnes et attributs............................................. 215 Accéder aux attributs........................................... 217 Attributs booléens............................................. 218 Stocker des données structurées.................................. 219 Clés primaires et identifiants...................................... 221 Se connecter à la base de données.................................. 222 Créer, lire, modifier, détruire...................................... 225 Créer de nouveaux enregistrements............................... 225 Lire des enregistrements existants................................ 227 Modifier des enregistrements existants............................ 235 Détruire des enregistrements..................................... 239 Relations entre les tables.......................................... 240 Créer des clés étrangères........................................ 241 Spécifier les relations........................................... 243 Associations un-vers-un........................................ 244 Associations un-vers-n......................................... 249 Les associations N-vers-N....................................... 254 Jointures auto-référentielles..................................... 257 Précharger des enregistrements fils............................... 259 Compteurs.................................................... 260 Transactions.................................................... 262 Transactions intégrées.......................................... 267 Transactions multibases........................................ 267 CHAPITRE 15 Active Record en profondeur................................. 269 Acts As (agit comme)............................................ 269 Acts As List (agit comme une liste)............................... 270 Acts As Tree (agit comme un arbre).............................. 272 Agrégation...................................................... 274 Les objets composites sont des objets de valeur..................... 279 Héritage à une table.............................................. 280 Validation...................................................... 283 Assistants de validation......................................... 284

Table des matières XI Procédures de rappel (callbacks)................................... 292 Enregistrements marqueurs de temps............................. 294 Objets procédure de rappel...................................... 295 Observateurs................................................. 299 Attributs avancés................................................ 300 Colonnes de façade............................................ 303 Divers......................................................... 304 Identité des objets............................................. 304 Utiliser la connexion en direct................................... 304 Le cas de l identifiant manquant................................. 305 Noms des colonnes magiques.................................... 306 CHAPITRE 16 Action Controller et Rails..................................... 307 Contexte et dépendances......................................... 307 Les bases....................................................... 308 Routage des requêtes............................................. 309 Génération d URL............................................. 313 Routes nommées.............................................. 320 Méthodes d action............................................... 321 Environnement du contrôleur.................................... 322 Répondre à l utilisateur......................................... 324 Rendu des formats............................................. 325 Envoyer des fichiers et autres données............................ 328 Redirections.................................................. 329 Cookies et sessions.............................................. 332 Sessions Rails................................................ 334 Flash : communiquer entre actions................................. 343 Filtres et vérification............................................. 346 Pré-filtres et post-filtres........................................ 346 Péri-filtres................................................... 349 Héritage des filtres............................................ 350 Vérification.................................................. 350 Cache - première partie........................................... 351 Cacher ou ne pas cacher?....................................... 353 Expiration des pages du cache................................... 354 Expiration des pages du cache dans le temps....................... 357

XII Ruby on Rails Le problème posé par les requêtes GET............................. 358 Résoudre le problème GET...................................... 359 CHAPITRE 17 Action View..................................................... 361 Formats........................................................ 361 Emplacement des formats....................................... 361 L environnement du format..................................... 362 Contenu d un format........................................... 363 Formats de type Builder.......................................... 363 Formats RHTML................................................ 364 Exclusion des valeurs substituées................................. 366 Assistants (Helpers).............................................. 368 Partager des assistants.......................................... 369 Assistants de formatage........................................... 370 Liens vers des pages et des ressources externes...................... 372 Pagination...................................................... 375 Assistants pour les formulaires.................................... 377 Assistants pour les formulaires................................... 378 Assistants pour les champs...................................... 379 Chargement de fichiers dans les applications Rails.................. 386 Gestion des erreurs dans les objets du modèle...................... 389 Travailler avec des champs hors du modèle........................ 390 Mises en page et composants...................................... 392 Mises en page (layouts)......................................... 393 Format de page partiel.......................................... 396 Composants.................................................. 399 Cache - Acte II.................................................. 403 Expiration des fragments du cache................................ 405 Options de stockage des fragments du cache........................ 407 Ajouter de nouveaux systèmes de formatage........................ 407 Rendre nos formats dynamiques.................................. 409 CHAPITRE 18 Le Web 2.0 avec AJAX......................................... 411 Voici AJAX.................................................... 412

Table des matières XIII XMLHttpRequest............................................. 413 Le A de AJAX................................................ 413 AJAX à la mode Rails........................................... 414 link_to_remote................................................ 415 form_remote_tag()............................................ 417 Observateurs (Observers)....................................... 419 Mises à jour périodique......................................... 420 L interface utilisateur, revisitée.................................... 421 Manipulation du Document Object Model (DOM).................. 422 Effets visuels................................................. 423 Techniques avancées............................................. 426 Techniques de remplacement.................................... 427 Quelques précisions sur les procédures de rappel.................... 427 Utiliser des effets sans AJAX.................................... 435 Test......................................................... 435 Compatibilité ascendante....................................... 436 Web V2.1.................................................... 438 CHAPITRE 19 Action Mailer................................................... 439 Envoyer des e-mails............................................. 439 Configuration e-mail........................................... 439 Envoi d e-mail................................................ 441 Recevoir des e-mails............................................. 447 Tester les e-mails................................................ 449 Tests unitaires sur les e-mails.................................... 449 Tests fonctionnels sur les e-mails................................ 450 CHAPITRE 20 Les services Web dans Rails................................. 453 Qu est-ce que AWS?............................................ 453 La définition de l API............................................ 454 Signatures des méthodes........................................ 456 Modes de routage............................................... 460 Routage direct................................................ 460 Routage en couches............................................ 460 Routage par délégation......................................... 460

XIV Ruby on Rails Utilisation des modes alternatifs................................... 462 Exemple de routage en couches.................................. 462 Exemple du routage par délégation............................... 463 Interception de l invocation des méthodes........................... 463 Tester les services Web........................................... 465 Applications clientes externes (SOAP)............................ 466 Applications clientes externes (XML-RPC)........................ 468 Client de services Web........................................... 468 CHAPITRE 21 Sécuriser vos applications Rails.............................. 471 Injection SQL................................................... 471 Se protéger de l injection SQL................................... 472 Extraire les requêtes SQL des méthodes du modèle.................. 473 Détournement inter-sites (CSS/XSS)............................... 474 Un cas d attaque typique........................................ 475 Protéger vos applications des attaques XSS........................ 476 Attaques XSS utilisant le service echo............................. 477 Éviter les attaques par ancrage de session........................... 477 Créer des enregistrements directement à partir des paramètres d un formulaire.................................................. 478 Ne faites pas confiance aux paramètres ID.......................... 480 N exposez pas les méthodes des contrôleurs......................... 481 Téléchargement de fichiers........................................ 483 Pas de pages authentifiées dans le cache............................ 484 Être sûr de son code.............................................. 484 CHAPITRE 22 Déploiement et montée en charge............................ 485 Choisir une plate-forme de production.............................. 486 Choisir un serveur Web......................................... 486 Comment servir une application?................................ 490 La trinité des environnements..................................... 493 Basculer dans l environnement de production...................... 494 Cent fois sur le métier............................................. 495 Gérer les erreurs............................................... 495

Table des matières XV Délivrer les mises à jour........................................ 497 Utiliser la console pour inspecter l application...................... 498 Maintenance.................................................... 499 Fichiers journal............................................... 499 Nettoyage des sessions......................................... 500 Passage à l échelle : l architecture sans partage...................... 501 Configurer Rails pour un fonctionnement en mode sans partage....... 502 Identifier et résorber les goulets d étranglements..................... 504 Restez vigilant avec tail........................................ 505 Au-delà de tail................................................ 506 Étude de cas : exploiter Rails au quotidien.......................... 509 Basecamp de 37signals (www.basecamphq.com)................... 509 43 Things de Robot Co-op (www.43things.com).................... 510 Moteur de traitement de prêts bancaires (www.rapidreporting.com).... 510 PARTIE 4 Annexes............................................................. 511 ANNEXE A Introduction à Ruby........................................... 513 Ruby est un langage orienté objet.................................. 513 Les noms Ruby................................................. 515 Méthodes....................................................... 515 Classes......................................................... 517 Privée et protégée............................................. 520 Modules........................................................ 520 Tableaux (Arrays) et tableaux associatifs (Hashes)................... 521 Tableaux associatifs et liste de paramètres......................... 522 Structures de contrôle............................................ 523 Expressions régulières........................................... 523 Blocs et itérateurs............................................... 524 Exceptions..................................................... 525 Sériation d objets................................................ 525 Ruby interactif.................................................. 526

XVI Ruby on Rails Les idiomes Ruby................................................ 526 Documentation RDoc............................................ 528 ANNEXE B Paramètres de configuration.................................. 531 Configuration d Active Record.................................... 531 Configuration de Action Pack..................................... 533 Configuration de Action Mailer.................................... 534 Configuration des cas de test...................................... 535 Configuration pour les versions antérieures à Rails 0.14.1............. 535 ANNEXE C Code source.................................................... 537 L application Dépôt au complet................................... 537 Fichiers de base de données..................................... 537 Contrôleurs................................................... 539 Modèles...................................................... 546 Vues........................................................ 550 Assistant..................................................... 556 Tests unitaires et fonctionnels.................................... 557 Fichiers CSS.................................................. 566 Exemple d un système de notification.............................. 570 Références croisées des exemples de code.......................... 572 ANNEXE D Ressources..................................................... 579 Ressources en ligne.............................................. 579 Ruby on Rails................................................. 579 Ruby on Rails (pour les développeurs)............................ 579 Ruby on Rails France.......................................... 580 INDEX............................................................. 581