12 mars 2008
À mon sens, la 3e journée fut la meilleure. Nous avons vu les sujets plus avancés. Le contrôle de sessions et comment sécuriser les applications par groupe d’utilisateurs; les outils de tests intégrés dans Rails; AJAX et RJS; le déploiement d’application Rails avec Capistrano.
Étrangement, Rails n’incluent pas de gestion intégrée des sessions et des utilisateurs à même le framework. En fait, il existe quelques ‘plug-ins ’ qui incluent ces fonctions, mais Rails laissent aux développeurs le choix de l’implémentation.
J’ai été surpris de voir la qualité des outils de tests inclus à même le framework de Rails. Bien que parfois rudimentaire, il y a tout de même un bon nombre de fonctions déjà incluses pour effectuer des tests. Ce qui est bien différent de nombreux autres outils de développement avec lesquels j’ai eu la chance de travailler.
L’utilisation et l’intégration d’AJAX dans les projets développés sur RAILS sont vraiment d’une simplicité quasi infantile. Avec RJS, et les librairies de fonctions javascript srcriptaculous et prototype, il n’a jamais ét aussi simple de créer des sites transactionnels dynamiques et attrayants. En fait, les librairies et RJS permettent d’appliquer des fonctions javascript dynamiques en quelques lignes de code et parfois même une seule.
La facilité de déploiement des applications Rails avec Capistrano est vraiment impressionnante. Capistrano est une librairie de fonction Ruby permettant la gestion de sites web créés avec Ruby on Rails en mode production. Il permet le déploiement d’une application web très complexe en quelques clics de souris. De plus, il supporte très bien un environnement distribué et un déploiement en grappe. Nous n’avons qu’entrevu les fonctions de base de Capistrano, mais je peux voir un immense avantage comparé à des déploiements d’application conçue sur d’autres plateformes (PHP n’étant qu’un exemple).
En général le cours m’a été très profitable et je le recommande tous ceux qui ont une expérience limitée de Ruby on Rails et qui veulent se familiarisé rapidement. Il est certain qu’au cours de l’année prochaine, je vais m’inscrire au cours avancé.
Voilà c’est fait:

11 mars 2008
Aujourd’hui nous avons abordé les vues, plus particulièrement les “templates” et la facilité de composer des pages spécialisées avec Rails. Ensuite, nous avons vu les routes et REST. C’était un des points de Rails que j’espérais éclaircir durant ce cours et je fus bien servi. Rails 2.0 et les outils d’échafaudage (scaffolding) de cette version facilitent grandement la création d’application web respectant les règles REST (pour plus de détails sur REST). Des protocoles tels que SOAP et la norme WSDL 2.0 implémentent les standards REST.
La fin de l’après-midi a été réservée pour les liens, la navigation et la création des formulaires web avec Rails. Nous avons aussi eu droit aux explications concernant les relations entre modèles (one to many et many to many). C’est fascinant de voir combien il est simple d’utiliser et de manipuler les structures de données avec Rails. Du côté de PHP, même PEAR n’apportaient pas autant; il y a probablement juste CakePHP (basé su RAILS) qui offre des fonctions similaires.
10 mars 2008
Le réveil n’a pas été facile ce matin! Le déjeuner est servi à 8:15 et ce matin nous devons nous enregistrer. La première partie de la journée a touché principalement le langage Ruby, sa syntaxe et ses patterns. Je déplore un peu que nous ayons passé autant de temps sur Ruby, surtout que les organisateurs nous avaient demandé de faire une revue des 6 ou 8 premiers chapitres d’un livre Ruby (disponible sur Internet). Donc nous avons revu pas mal de choses que je m’étais tapées en lecture/lab avant. Je pense qu’une courte révision d’une heure aurait été suffisante.
La 2e partie de la journée a été consacrée à une introduction à Rails, aux principes MVC, aux controlleurs et modèles, aux outils de génération et à la structure des applications ROR. Le niveau d’abstraction qu’offre Rails quant à l’implémentation des données dans la base de données est vraiment très intéressant. Vous n’avez plus a vous préoccuper de requête SQL ou de la syntaxe spécifique de tel type de base de données. Rails créé un niveau d’abstraction vous permettant de travailler complètement avec des objets plutôt que des tables et champs. Ceci rend la portabilité d’une application Rails encore plus grande puisque vous pouvez déployer celle-ci sur plusieurs “saveurs” de base de données très simplement.
En soirée, course au Apple store le plus près pour trouver un iPhone 16Gb. Malheureusement, plus aucun 16 Gb en stock. Peut-être en recevront-ils demain…
Commentaire : Pourquoi est ce que certaines compagnies envoient des employés à des formations alors que visiblement ces employés n’ont absolument aucun intérêt à retenir quoi que ce soit de cette formation?
9 mars 2008
Je suis arrivé à Denver. La ville est plus petite que je pensais. La proximité des Rocheuses est vraiment un point positif de cette ville. En fait, les montagnes me semblent encore plus près de la ville qu’à Calgary. Je dirais a environ 20 ou 30 minutes de route. J’ai pris la décision de louer une voiture, mais je ne suis plus certain maintenant. L’hôtel ou se situe la formation est loin de l’aéroport et loin du centre-ville, mais prendre le taxi coutera de 70 a 80 $ US pour l’aller seulement. C’est surtout que j’arrive ici de soir et que malgré le GPS, la conduite le soir dans une ville inconnue n’est pas des plus intéressants.
UPDATE: J’ai finalement pris la voiture et branché mon GPS… et je me suis perdu! Le GPS m’a conduit à environ 30 Km de mon hôtel perdu en plein quartier résidentiel. Vraiment Garmin pourraient améliorer leur logiciel dans leur module GPS. Je me suis retrouvé en utilisant une carte et d’autres points d’intérêt près de l’hôtel; cette fois le GPS m’a conduit au bon endroit. Perdu une heure de route avec tout ça et je suis super fatigué. Ce ne sera pas facile demain !
9 mars 2008
Départ pour Denver aujourd’hui. Je vais faire une formation Ruby on Rails avec la gang de pragmatic programmer. Il semble que ce soit un des meilleurs cours ROR disponibles sur le marché. J’ai fais plusieurs heures de développement rails et ma seule crainte est que le cours ne soit pas suffisamment avancé pour moi. Il y a toutefois des sections de Ruby on Rails que je connais moins comme Capistrano (déploiement) et REST en général. De plus, un bon aperçu des possibilités AJAX de Rails sera bienvenu. On verra bien!