Cours gratuits » Cours informatique » Cours développement web » Cours Ruby » Formation informatique de Ruby on Rails en pdf

Formation informatique de Ruby on Rails en pdf

Problème à signaler:

Télécharger



★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Formation informatique de Ruby on Rails

...

Ruby... le langage.

Ruby est un langage de programmation open source distribué sous licence Ruby/GNU GPL créé par le japonais Yukihiro Matsumoto (surnommé « Matz ») en 1995. Multiparadigme, il supporte tout aussi bien la programmation impérative que la programmation orientée objet à typage dynamique et met l'accent sur la simplicité de sa syntaxe et de son fonctionnement.

Comme beaucoup de langages web, c'est un langage de script et doncson exécution passe nécessairement par une machine virtuelle. Parmi celles-ci, on peut notamment mentionner Ruby (la VM « offic

ielle »), Jruby (une VM écrite en Java) ou encore IronRuby (basée sur la technologie .NET de Microsoft). L'avantage qui en découle est naturellement la portabilité du code : une application Ruby peut potentiellement s'exécuter sur n'importe quel OS ou processeur tant qu'une VM adaptée existe.

Ruby on Rails... le framework.

Créé en 2005, Ruby on Rails, également appelé Rails ou RoR au sein de la communauté est un framework libre distribué sous licence MIT destiné au prototypage et au développement d'applications web diverses et variées. A l'instar de Ruby avec lequel il est développé, il est multiplateforme.

La philosophie de Ruby on Rails est on ne peut plus claire : il faut au maximum s'abstraire de contraintes trop techniques et trop éloignées de la réalité du client pour se focaliser avant tout sur les fonctionnalités. Ce modèle étant réputé très efficace, d'autres frameworks comme CakePHP s'en sont depuis clairement inspirés.

Tout ceci étant pour l'instant très flou, explorons Rails à travers quelques unes de ses fonctionnalités majeures afin de voir comment ce framework simplifie le développement par rapport à des solutions classique

Ruby on Rails pour simplifier le développement web...

Une architecture MVC imposée par Rails

Ruby on Rails implémente nativement la très répandue architecture

Modèle-Vue-Contrôleur. Cela se voit dès l'arborescence d'un projet (voir cicontre) : dans le dossier app d'une application rails apparaissent entre autres trois sous dossiers appelés respectivement models, views et controlers. Chacun de ces dossiers va donc accueillir respectivement :

  • L es modèles : une description logique des entités → est-elle associée à une autre, quels attributs ?
  • Les vues : des fichiers html dans lesquels on insère du code Ruby pour gérer les parties dynamiques.
  • Les controleurs : un script qui contient entre autres les méthodes CRUD pour accéder aux différents éléments de la base de donnée (voir ci-dessous).

Rails et le CRUD

Pour développer une application web dynamique, il est absolument nécessaire de conserver des données relatives aux utilisateurs dans des fichiers ou des bases de donnée pour pouvoir les réutiliser ultérieurement. Pour que ces données soient exploitables, il faut impérativement qu'on puisse les créer, les lire, les mettre à jour et les supprimer. On parle de CRUD (Create, Read, Update, Delete).

Produire un CRUD n'est pas spécialement difficile mais c'est assez frustrant pour le programmeur qui doit manuellement créer la base de donnée et coder de nombreuses fonctions pour répondre à chacun de ces besoins de création, de modification... Pour pallier ce problème,

Ruby on Rails propose un mécanisme simple qui permet de générer un CRUD en un temps record : le scaffolding, littéralement « échafaudage ». Prenons par exemple la commande suivante : rails generate scaffold post title:string body:text

Cette commande génère le scaffold d'une entité post ayant un attribut title de type texte et un body de type texte. Cette commande génère entre autres un modèle qui décrit cette entité, un contrôleur qui donne accès à tout ses attributs, des fichiers de migration qui sont chargés de générer la table.

Par exemple, dans le cas de la commande ci-dessus, pour insérer la table post, il suffirait d'utiliser la commande rake db:migrate.

Certains éléments déjà intégrés...

Un avantage de Ruby on Rails est qu'il fournit d'entrée de jeu un certain nombre de méthodes pour simplifier des tâches courantes mais non moins nécessaires comme par exemple la sécurité d'un site.

Prenons des failles de sécurité courantes comme les failles XSS (Cross-Site Scripting) qui peuvent amener un utilisateur sur des sites peu recommandables par injection de code JavaScript dans un commentaire par exemple. Comment faire pour pallier ce problème ? Ruby on Rails propose une solution clé en main. Ci-après un bout de code de vue :

<%= @post.title %>

Ce bout de code insère dans la vue l'attribut title d'un objet @post et tout cela de manière sécurisée. En effet, dans Ruby on Rails 3, le framework va échapper les caractères à risque pour éviter l'insertion de code malicieux par défaut.

Des gems pour tout...

Les gems ne sont pas à proprement parler une fonctionnalité de Ruby on Rails mais une fonction du langage Ruby très utilisée avec Rails. Alors qu'est-ce qu'une Gem ? Eh bien ce sont de petits programmes ou librairies qui permettent de répondre à des besoins plus ou moins spécifiques : gestion avancée des utilisateurs, gestion de médias, échappement de balises HTML etc. Il est bon de préciser que Rails lui-même est une gem.

Si le concept de librairie n'a absolument rien de particulier, ce qui est extrêmement pratique avec Ruby est la gestion même des Gem grâce à un gestionnaire de paquet appelé RubyGems.

Dans le principe, cet utilitaire est très proche des gestionnaires de paquet que l'on peut retrouver sur Linux comme aptitude, apt-get, yum ou encore RPM. Il permet ainsi via un petit utilitaire en ligne de commande de lister les gems installées, de les mettre à jour, d'en installer de nouvelles... Par exemple pour installer une gem il suffit de faire : gem install rails

Mais l'utilité des gems ne se limite pas à fournir de nouvelles fonctionnalités à l'utilisateur final. Supposons par exemple qu'on veuille migrer une application Rails sur une autre machine et que cette application utilise des gems spécifiques ? Il faudrait vérifier les dépendances de l'application et réinstaller les gems une par une, ce qui n'est pas très commode. Bundler est une gem qui répond à ce besoin.

En spécifiant toutes les dépendances du projet dans un fichier Gemfile situé à la racine de celui-ci, il suffira d'exécuter un bundle install pour gérer automatiquement toutes les dépendances de l'application, soit une seule ligne contre beaucoup plus si on le faisait à la main.

Le fichier Gemfile tel qu'il est généré à la création du projet

Conclusion

Au final, Ruby on Rails se révèle être un framework particulièrement adapté au prototypage et au développement rapide dans la mesure où il fournit un ensemble d'outil clé en main aux développeurs pour éviter de « perdre » du temps.

En effet, Rails permet au développeur de ne pas se poser la question de l'architecture logicielle vu qu'il impose dès le départ un cadre strict avec le pattern MVC. Par la suite, le framework offre un certain nombre d'outils qui permettent au développeur d'économiser beaucoup de temps sur les aspects purement techniques afin de se concentrer sur des problématiques de conception plus proche de la réalité du client.

... ... ...

Architecture MVC

 L’architecture MVC (modèle, vue et contrôleur) est un concept très puissant qui intervient dans la réalisation d’une application

 Séparation des données (modèle), de l’affichage (vue) et des actions (contrôleur)

 +Un gain de temps de maintenance et d’évolution du site

 + Souplesse dans la répartition des taches

 - Création de nombreux fichiers

Les modèles

 1 modèle <==> 1 table en base de données

 Gestion des données

 Contient les relations entre les modèles (et les tables)

 Assure le lien entre le monde objet de Ruby et le monde de relationnel de la base de données

Les modèles / Exemple2  Possibilité de valider la création d’un objet

 Validate_presence_of :titre

 validates_length_of :titre, :minimum => 2

 Ajout de trigger

 Before_create

 After_create

 Before_destroy

Livre = Livre.new

livre.titre = “Harry Potter”

livre.auteur = “JK ROWLING”

livre.isbn = “25874532XX”

Livre.save

Insert into livresvalues(“Harry Potter”, “JK ROWLING”, “25874532XX”)

Livre = Livre.find(1) Select * from livres where id = 1

Livre.destroy Delete from livres where id = 1

Comparer ce qui est comparable

Solutions open source

Les solutions open sources sont idéales pour développer des applications sans investissements financiers importants. Elles ont longtemps été synonymes de projets d'amateurs et de petites applications. Aujourd'hui, ce cliché n'est plus justifié car l'open source se développe fortement et s'installe dans les grandes entreprises 1 . Parmi ces solutions, PHP est le langage de script le plus utilisé pour développer des pages web dynamiques. Simple et rapide à mettre en œuvre, il reste souvent réservé aux petites applications même s'il dispose de frameworks de plus en plus robustes. Pour les applications plus complexes, nécessitant un développement plus structuré, les entreprises préfèrent s'orienter vers des solutions utilisant le langage Java plus apprécié des décideurs. Les applications sont donc basées sur des framework comme Struts, Spring ou Hibernate. Ruby on Rails peut perturber cet ordre établi. Il permet en effet de développer une application de manière structurée, respectant le Modèle MVC, aussi rapidement et simplement qu'avec le langage PHP, sans la lourdeur et la complexité des frameworks Java.

Solutions commerciales

Les plateformes J2EE et .NET sont prédominantes dans les grandes entreprises 2 . Ces plateformes sont la base d'applications sensibles, elles permettent une forte intégration au système d'information existant et une gestion accrue des systèmes transactionnels. Que ce soit WebSphere d'IBM, WebLogic de BEA Systems pour J2EE, ou les produits Microsoft pour .NET, ces plateformes sont distribuées avec de nombreux outils très puissants (IDE, interface d'administration…) mais nécessitent de nombreuses heures de formation et sont complexes à maîtriser dans leur globalité.


96