Ruby on Rails

De Libre choix
Aller à : navigation, rechercher
Ruby on Rails
Serveur d'applications, framework Framework de développement web "agile"
Rich.: 3, Exploit.: 2, Tend.: Yellow Arrow Up.png
Environnement Ruby
Licence MIT License


Résumé

Rails est un framework de développement d'applications web reposant sur des bases de données relationnelles.

Il suit les principes du "design pattern" appelé Modèle-Vue-Contrôleur. Rails fourni un environnement de développement cohérent prenant en compte aussi bien Ajax pour ce qui concerne la vue, les requêtes/réponses dans le contrôleur et le mapping objet-relationnel dans la base.

Productivité

Pour améliorer la productivité du développeur, le framework utilise et/ou favorise l'emploi de divers principes:

  • « Low Barrier to Entry » : tout en étant très puissant (le développeur avancé, par exemple, est encouragé à métaprogrammer), les fonctionnalités de base sont particulièrement intuitives et le débutant réalise très rapidement des applications
  • « Convention plutôt que configuration » : le comportement par défaut correspond aux besoins courants et la configuration est bien entendu possible
  • « Principe de surprise minimale » : les noms de méthodes collent au plus près à la fonctionnalité. Le code fait donc ce à quoi on s'attend en le lisant et il n'est d'ordinaire pas nécessaire de chercher un nom de méthode dans la documentation
  • Très peu de dépendances : le développeur débutant est tout de suite productif car n'a à installer qu'une base de données pour commencer à travailler (l'emploi de SQLite simplifie encore cela)
  • Modifications immédiatement visibles : tout comme PHP et contrairement à Java, les modifications dans l'éditeur du développeur se traduisent par un changement de comportement instantané (plutôt qu'après plusieurs dizaines de secondes ou minutes de compilation).

Maintenance

Le framework facilite la maintenance du logiciel :

  • « DRY (Don't Repeat Yourself) » : le framework pousse le développeur à éviter la duplication de code afin d'éviter la chasse aux bogues dupliqués par «copié-collé». Techniquement, cela repose beaucoup sur les techniques de métaprogrammation rendues possibles par Ruby.
  • Rails est livré avec un framework de test complet pour les objets métiers, les actions des contrôleurs et des comportements d'utilisateurs. Il gère également les mocks simulant les interfaces avec des composants externes.
  • Les changements de version sont facilités par l'utilisation de migrations pour le schema des données en base. L'intégralité du schema est décrit par du code Ruby intuitif (méthodes add_table, add_column, add_index...) permettant de revenir en arrière.

Limitations

  • Le framework est peu adapté à un schéma de bases de données non conforme à ses principes (en particulier, la version standard de Rails ne gère pas les clefs composées). La migration de données d'une application existante peut s'avérer indispensable et partager une base de données avec des applications non Rails est parfois impossible.
  • Les calculs sont plus lents qu'avec un langage compilé. Cela ne desservira guère une application web reposant sur une base de données, d'autant que l'ajout de serveurs est facile. Il est possible d'implémenter en langage C les calculs gourmands.
  • Gourmand en mémoire, il n'est guère adapté à l'hébergement mutualisé de masse.