Une formation 100% Ruby

Posté le 16 janvier 2013 @ 16 h 21 min par Matthieu Segret

Je donne maintenant la formation Ruby on Rails au moins une fois par mois depuis aout 2011. Cette formation comprend une première journée entièrement dédiée à Ruby, idéale pour débuter. Régulièrement, les personnes que je forme à Ruby on Rails me disent qu’elles auraient aimé que la partie Ruby soit plus approfondie.

J’ai donc décidé avec Camille d’ajouter à cette journée d’introduction à Ruby, deux jours supplémentaires entièremenent consacrés à Ruby. Ces deux jours permettent d’approfondir les notions avancées du langage et de son écosystème : utilisation avancée des modules, métaprogrammation, création de DSL, débogage d’un programme Ruby, gestion des thread et processus, création et publication de gem, présentation de quelques bibliothèques indispensables…

Cette formation 100% Ruby sera d’une réelle utilité pour les développeurs Ruby on Rails qui souhaitent approfondir leur connaissance du langage mais également pour ceux qui souhaite maitriser ce langage indépendament de Ruby on Rails.

Vous pourrez découvrir le programme complet de la formation Ruby sur Human Coders Formations !

[Présentation] Ruby : Block, Proc et lambda

Posté le 14 janvier 2013 @ 11 h 32 min par Matthieu Segret

En tant que formateur Ruby, je rencontre régulièrement des développeurs manipulant les block, Proc et lambda sans toujours comprendre comment cela fonctionne. J’ai donc eu l’idée de faire cette présentation au Meetup Paris.rb (10 décembre 2012)

Les avantages de Ruby on Rails (7/10) : Active Record

Posté le 24 juillet 2012 @ 17 h 48 min par Matthieu Segret

Pour avoir utilisé d’autres ORM, Active Record fonctionne comme beaucoup d’autres mais avec une touche de simplicité et une grande puissance.

Par exemple, aucune déclaration Ruby n’est nécessaire pour rendre un objet persistant, si la classe de cet objet hérite de Active Record, l’ORM inspectera la table correspondant à cette classe pour connaître l’ensemble et de ses champs et leur type. La classe implémente automatiquement les accesseurs pour chaque attribut.

Les associations entre entités se font sans effort, une déclaration dans votre modèle suffit. Vous pourrez après cela naviguer facilement dans votre grappe d’objets en écrivant du code Ruby, par exemple : comment.owner.name pour récupèrer le nom de l’auteur d’un commentaire. Active Record générera la requête SQL avec la bonne jointure automatiquement. Vous pouvez par la suite définir les politiques de suppression, de cache, de sauvegarde pour chaque relation.

La mise en place de règles de validations est déconcertante de facilité, une simple déclaration dans votre modèle vous permet d’assurer l’intégrité de vos enregistrements. De plus, ces règles de validations fonctionnent de pair avec la vue pour permettre sans effort l’affichage des erreurs dans un formulaire (même avec la localisation !).

Il est utile de préciser que l’utilisation d’Active Record n’est pas obligatoire, vous pouvez connecter à vos modèles d’autres types d’ORM selon vos besoins : Data Mapper, Mongoid, etc.

Je vous invite à lire les autres avantages de la série : les avantages de Ruby on Rails

Les avantages de Ruby on Rails (6/10) : le déploiement sur le cloud

Posté le 15 février 2012 @ 13 h 51 min par Matthieu Segret

Une chose qui a changé ma vie de développeur lorsque je suis entré dans le monde Ruby c’est la possibilité de déléguer l’administration de son application sur le cloud avec Heroku, Engin Yard ou Cloud Foundry.

L’administration système n’a jamais été une passion pour moi. Donc pouvoir déployer mes applications en un «git push» sur Heroku est un gain de temps considérables.

Si on ajoute à cela les services proposés sur le cloud (backup journalier de la base de données, mise en place de cron, monitoring des instances de production avec New Relic, gestion des erreurs avec Airbrake, mise en place de cache : Redis ou MemCache, création de certificats SSL ..) Tous ces services ne sont pas une exclusivité Ruby on Rails, mais avec Rails c’est souvent plug & play !

Je vous invite à lire les autres avantages de la série : les avantages de Ruby on Rails

Les avantages de Ruby on Rails (5/10) : Rake, le lanceur de tâches

Posté le 15 décembre 2011 @ 14 h 29 min par Matthieu Segret

Pour avoir pas mal utilisé Ant lorsque je faisais du Java, je me souviens du temps perdu pour débogguer mes scripts. Je me disais alors, pourquoi coder des scripts en XML ?

Avec Rake, je peux écrire mes tâches en Ruby. Comme Ant, je peux gérer une dépendance de tâche si nécessaire.

Il est très simple de charger tout le contexte d’un projet Rails dans une tâche Rake afin par exemple de manipuler la partie métier d’une application.

On peut aussi très facilement utiliser un système de Cron avec des tâches Rake pour les lancer périodiquement.

Je vous invite à lire les autres avantages de la série : les avantages de Ruby on Rails

Les avantages de Ruby on Rails (4/10) : Rack

Posté le 8 décembre 2011 @ 12 h 56 min par Matthieu Segret

Rack est une couche d’abstraction entre le serveur web et votre code Ruby. Pour les pythonistes, Rack est l’équivalant de WSGI.

Les autres me diront : « A quoi ça sert ? ».

Le premier intérêt de Rack, c’est de servir « d’adapteur universel » entre la plupart des serveurs web et du code Ruby. L’interface est très simple : une méthode qui prend la requête en entrée et retourne la réponse en sortie.

Il n’y a pas besoin de rentrer dans la technique pour voir d’autres avantages. Les « tranches » Rack peuvent se superposer, la réponse en sortie d’un Rack peut être branchée à l’entrée d’un autre Rack. Ces Racks que l’ont appellent middlewares ont différentes utilités : mise en place de cache avec Rack::Cache, Rack::Throttle pour limiter le nombre et la fréquence des requêtes HTTP provenant d’un client, Rack::Honeypot pour filtrer les spams, etc. Vous trouverez d’autres exemples ici.

Enfin dernier grand avantage : Rack peut rendre vos applications web modulaire ! En effet vous pouvez créer des applications Ruby on Rails entières avec modèles, vues et contrôleurs et les réutiliser comme un module d’une autre application Rails. C’est comme cela que fonctionne par exemple ActiveAdmin et Devise. A noter que Ruby on Rails n’est qu’un ensemble modulaire de « tranches » Rack.

Je vous invite à lire les autres avantages de la série : les avantages de Ruby on Rails

Les avantages de Ruby on Rails (3/10) : la gestion des bibliothèques

Posté le 1 décembre 2011 @ 11 h 47 min par Matthieu Segret

En 2 ans de Java, je n’ai jamais rien compris à Maven, pourtant avec Nexus, la gestion des bibliothèques durant le déploiement devait être plus simple… J’ai fini par me dire que l’installation automatisée des bibliothèques et la résolution de leurs dépendances devait être un métier à part !
Ici c’est Rubygems et Bundler qui m’ont fait changer d’avis (tous deux sont inclus par défaut dans Rails).

Rubygems permet de facilement publier, installer et mettre à jour des bibliothèques Ruby (que l’on appelle « gems »).

Grâce à Bundler, vous pouvez dans un seul fichier déclarer la liste des gems utilisés par votre projet. Si vous ajoutez ou enlevez la déclaration d’une gem, Bundler le détecte et installe ou supprime automatiquement la gem en question. Bundler résout les dépendances, les doublons, les différences entre les environnements (développement, tests, staging, production.. ). Cela redevient humain de gérer les bibliothèques dont dépend votre projet !

Je vous invite à lire les autres avantages de la série : les avantages de Ruby on Rails

Les avantages de Ruby on Rails (2/10) : SASS et CoffeeScript

Posté le 22 novembre 2011 @ 14 h 55 min par Matthieu Segret

Certains me diront : « SASS et CoffeeScript, ce ne sont pas des exclusivités de Ruby on Rails ? ». Et ils auront raison ! Seulement je n’aurais pas utilisé ces langages s’ils n’étaient pas par défaut dans Rails.

CoffeeScript est une manière alternative d’écrire du Javascript. Il s’agit d’un langage destiné à être compilé en javascript. Mon code est plus lisible, plus facile à maintenir, il m’évite les pièges basiques. CoffeeScript a été pour moi un grand changement dans ma façon de faire du JavaScript, du même ordre que la découverte de mon premier framework Javascript (Prototype). De plus la combinaison CoffeeScript / JQuery est un réel plaisir !

Si vous voulez en savoir un peu plus sur CoffeeScript, je vous conseille les slides de Jean-Hadrien Chabran.

Il y aussi son homologue pour CSS : SASS. SASS est compilé en CSS et ajoute ces fonctionnalités que j’attendais désespérément : les variables, les fonctions, l’imbrication des sélecteurs..

Et si l’on ajoute Compass, un framework CSS codé en SASS, faire du CSS devient enfin supportable !

Je vous invite à lire les autres avantages de la série : les avantages de Ruby on Rails

Les avantages de Ruby on Rails (1/10) : les bibliothèques

Posté le 17 novembre 2011 @ 11 h 10 min par Matthieu Segret

- Besoin d’une interface d’administration ? Je mets en place ActiveAdmin en moins d’une journée !

- Besoin d’un système d’authentification complet (validation de l’email, gestion de la perte du mot de passe, chiffrement du mots de passe etc..) ? En moins d’une heure j’ai tout cela avec Devise. Et une heure plus tard j’ai aussi la connexion Facebook, Twitter, LinkedIn avec OmniAuth.

- Besoin de mettre en place un moteur d’indexation de documents avec le célèbre Solr (basé sur Lucene)? Il me suffit d’une demi-journée pour écrire mes règles d’indexation avec Sunspot et moins d’une heure pour mettre en place Solr avec WebSolr.

Je n’ai jamais autant aimé écrire des formulaires depuis que j’ai découvert SimpleForm. J’écris mes formulaires en Ruby, et SimpleForm génère à partir d’un objet de mon modèle un formulaire avec label, annotations, affichage des erreurs, validation html5 pour chaque attribut spécifié.

Ruby on Rails foisonne de gems (bibliothèques) me permettant de mettre en place des fonctionnalités complexes avec une grande simplicité.

Vous semblez sceptiques ? Je vous invite à aller voir le site de Ryan Bates : RailsCasts qui vous donnera quelques échantillons.

Je vous invite à lire les autres avantages de la série : les avantages de Ruby on Rails

Quels sont les avantages de Ruby on Rails ?

Posté le 17 novembre 2011 @ 11 h 10 min par Matthieu Segret

 

Voici ce que je lis et j’entends quotidiennement :

« Je suis développeur PHP, je dois me former à Ruby on Rails pour un projet, je suis curieux de pouvoir comparer avec Symfony. »

« J’ai beaucoup entendu parler de Ruby on Rails, que fait-il de plus que les autres frameworks ? »

« Je suis venu à cet apéro Ruby car je voudrais en savoir plus sur Ruby on Rails.. »

Manifestement, il y a un grand besoin de comprendre pourquoi ce framework web fait autant parler de lui.

En retour j’entends :

« Ce que j’aime le plus dans Ruby c’est sa syntaxe élégante ! »

Question de goût donc ?

« Pour moi la force d’un programme écrit en Ruby, c’est sa capacité de s’écrire lui même »

Ça me fait une belle jambe !

« Ruby on Rails est très bien conçu : MVC, Migrations, Tests etc.. »

Les autres frameworks ne font pas la même chose ?


Depuis 5 ans les frameworks web se sont nourris les uns les autres. Lorsque l’un d’entre eux met en avant une bonne idée, celle-ci est souvent reprise et digérée par les autres.

C’est ainsi que beaucoup d’entre eux possèdent maintenant un environnement dit « full-stack », une architecture MVC (ou proche), un ORM, un language de templating, un gestionnaire de librairies, un système de tests, des migrations, etc. C’est le cas par exemple pour CodeIgniter, Symfony, Zend Framework, CakePHP, Django, Play!.

De plus les principes Don’t repeat yourself et Convention Over Configuration ont commencé à faire leurs bout de chemin chez tous ces frameworks.

Pourtant Ruby et Ruby on Rails gardent pour moi des atouts qui expliquent leurs popularités croissantes. J’ai donc décidé d’écrire une série d’articles sur ces avantages qui me servent au quotidien :