• A la une
  • Catégories
  • Dossiers
  • +

Pour une approche de Ruby plus en douceur qu'avec Rails, découvrez Sinatra, un autre framework Ruby pour créer des sites de quelques pages sans efforts.

La problématique Rails

"Ruby on Rails, c'est bien joli, mais c'est une vraie usine, moi, j'ai besoin que de trois pages, et j'ai pas envie de m'embêter avec du MVC."

Ça, je l'ai entendu déjà quelques fois, et je dois admettre que c'est vrai. Oui, Rails est une usine. Non pas que le framework soit lourd à l'execution, ou qu'il fabrique des chaises, mais il possède une quantité de fichiers impressionante.

Prenons comme exemple un site vitrine tout simple, sans base de donnée ni back office. Juste 4 pages: home, produits, l'équipe, nous contacter. Quels sont les fichiers importants (j'entend qu'il faudrait modifier, peu importe le nombre de fichiers venu avec le framework) pour créer ce site en Rails?

  • config/routes.rb. C'est de là que se fera le routing. Ça n'est pas tres compliqué, mais pas si simple que ça à apréhender non plus.
  • app/controllers/home_controller.rb. Ou tout autre nom, il vous faudra au minimum 1 controller.
  • app/views/layouts/application.html.erb. Le layout. C'est ici que s'integreront les vues.
  • app/views/home/*.html.erb. Une vue par page.

Ces quelques encarts supplémentaires, que je ne compterai pas, car nécessaires partout. Seul leur emplacement est un peu embêtant:

  • public/stylesheets/style.css
  • public/javascripts/application.js
  • public/images/*.png (si vus voulez des images, hein ^^)

En tout 7 pages, soit 3 de plus qu'en PHP si on avait voulu faire très sale. Maintenant, partons du fait que vous utilisez déjà un layout en PHP (avec smarty, ou tout autre moteur de templates), et nous ne sommes plus qu'à deux pages du PHP, voire moins, selon comment vous l'utilisez.

(note - Si vous n'utilisez pas de moteur de templates, et que vous faites encore tout à la dure, avec un fichier *.html ou *.php qui contient tout à chaque fois, du head au footer, sauvez votre vie et renseignez vous sur les templates. Simplement mettre le head, le menu et le footer dans des fichiers séparé en php et les inclure est très simple, et vous évitera de vous faire une luxation chaque fois que vous vourez faire une modification sur votre site et que vous devez la copier-coller dans 11 fichiers différents)

Il faut aussi compter sur quelque chose d'autre: home_controller.rb et routes.rb ne sont pas "simples". Ils sont très loin d'être compliqués : en une heure, un développeur aura déjà bien compris comment jouer avec. Encore faut-il être développeur et avoir une heure à passer sur une techno qui ne nous interesse que moyennement.

La solution avec Sinatra

C'est là dessus que Sinatra viens vous sauver, vous qui avez déjà eu envie de tester ruby (et toutes les incroyables technos qui vont avec), mais sans vous prendre la tête avec Rails.

Sinatra est un framework bien plus léger, bien plus simple. Il ne fera jamais autant de choses, mais il suffit bien dans beaucoup de situations. Reprenons l'exemple précédent. Combien de pages doit-on prévoir?

  • app.rb. C'est là qu'ira votre code de gestion des adresses, ainsi que vos variables si besoin, et aussi vos vues, si vous voulez.

Et c'est tout?! Oui, c'est tout... à condition de faire moche, comme la dernière fois en php. Mais soyons réalistes. Quelle serait l'architecture réelle de notre dossier d'application?

  • views/        Pour un endroit propre où mettre les templates
  • public/        Pour les ressources statiques.
  • tmp/           Nécessaire, pour le cache, et autre choses comme ça.
  • logs/           J'aime avoir des rapports d'erreurs détaillés. Pas vous?
  • config.ru     Le seul fichier apporté par le framework. Vous le copierez collerez pour chaque projet et voilà.
  • app.rb         Dans lequel nous allons gérer l'adressage
  • views/*.*     Vos templates. Au moins une par page, plus un layout.

Ca peut donner l'impression de beaucoup de dossiers, mais dans le tas, il y a deux dossiers vides (tmp et logs) dont vous n'avez pas à vous soucier et un fichier config.ru que vous n'avez pas à toucher non plus. Il ne vous reste que des templates et app.rb.

Sinatra nous offre donc, avec une architecture propre et a peine plus compliquée que celle d'un site php standard, un site web robuste, avec un gain convenable de performance (les fichiers ne sont lu qu'au démarrage de l'application, donc pas d'accès au disque), plus toutes les gems de ruby, que ce soit pour l'authentification, les différents moteurs de templates, ... bref, le bonheur.

Conclusion

Cet article peut sembler bizarre, et je m'en excuse.

 Il se continuait normalement sur tout un tutoriel sur l'utilisation de Sinatra, mais n'ayant pas pu trouver d'hébergeur mutualisé peu chèr avec Ruby et Passenger d'installé, il n'est d'aucune utilité, vous ne pourrez pas réellement l'essayer.

Je lance donc ici un appel. Quelqu'un connait-il un hébergeur permettant d'héberger simplement et à moindre coup des application Ruby Rake? Quelqu'un possède t'il une societé d'hébergement, et accepterait d'installer un mod appache supplémentaire pour pouvoir héberger du ruby? Si oui, merci de me le faire savoir.

 

  • Partager l'article en 1 clic !

    N'hésitez pas à aider le BlogDuWebdesign
Avatar_thumbAuteur : Benjamin voir son blog

Développeur autodidacte depuis quelques années, déjà, je suis le développeur du blog du webdesign, où mon rôle est de concretiser les différentes idées et maquettes.

Devenez membre !

Rejoignez la communauté des créatifs du web !
- Partagez vos créations
- Gagnez en visibilité
- Créez votre blog facilement
> En savoir plus

Créer mon compte
twitter birdtwitter birdtwitter birdtwitter birdtwitter bird
twitter bird
Ouvrir