Développer en Ruby sur Google App Engine


Avec l’ajout du support de Java sur la plateforme Google App Engine en avril 2009, l’étendue des possibilités offertes aux développeurs de tout bord s’est vue considérablement augmentée.

Il est notamment possible grâce à JRuby, l’implémentation en Java du fameux langage Ruby, de combiner la simplicité de ce langage avec la puissance du Cloud de Google pour développer rapidement des applications web évoluées et performantes.

Etant encore totalement novice dans le domaine il y a quelques mois, j’ai pris plaisir à découvrir ces technologies au cours de mon dernier projet. Je vous propose d’en faire vous aussi l’expérience à travers ce billet maintenant qu’elles ont atteint un niveau de maturité raisonnable.

JRuby on AppEngine

(Lire la suite…)

Platform as a Service avec Ruby on Rails

Il arrive souvent que des applications de taille modeste soient développées en interne chez Octo dans le but de répondre à un besoin spécifique de l’entreprise tout en fournissant un bon prétexte pour faire de la veille technologique. Nous venons de démarrer un projet de ce genre pour réaliser une application de gestion de bibliothèque avec des fonctionnalités de type réseau social.

Pour le développement nous avons choisi le framework Ruby on Rails dont nous avons déjà vanté les mérites. D’autre part, d’aucuns nous disent que 2010 est l’année du cloud, en conséquence nous avons décidé d’explorer cette voie.

Nous allons voir dans cet article que l’écosystème Ruby on Rails propose un ensemble de services qui permettent de gérer le cycle complet d’une application web entièrement sur le cloud. La version de démo actuelle du projet est accessible ici.

(Lire la suite…)

ActiveLDAP, ActiveRecord pour le LDAP

ActiveRecord est un patron de conception pour le mapping entre du code et une base de données. Son implémentation la plus connues est celle de l’ORM utilisé par Ruby on Rails : ActiveRecord. Chaque table de la base de données est représentée par une classe, et chaque ligne d’une table par une instance d’une classe. Les attributs des objets sont les colonnes de la table en base. De plus, chaque objet est responsable de sa persistance, de fournir des opérations basiques de type CRUD (Create, Read, Update, Delete), et de la gestion de sa partie métier. Ce patron de conception a été popularisé par Martin Fowler qui sera un des speakers de l’USI 2010.

ActiveLDAP est une bibliothèque en Ruby qui se veut respecter au maximum l’interface proposée par ActiveRecord, mais pour un annuaire LDAP. Cet article va donc faire un tour des possibilités d’ActiveLDAP. On verra dans un premier temps comment l’installer pour fonctionner avec Ruby ou JRuby, puis comment l’utiliser à la manière d’ActiveRecord. Si vous avez quelques notions de Ruby et LDAP cela vous aidera à mieux comprendre l’article.

(Lire la suite…)

Cucumber pour les Railers

Ce billet va décrire comment mettre en place des tests Cucumber pour Ruby on Rails. Il est grandement recommandé de lire l’article de Vincent Coste, et d’avoir au moins des connaissances de base en Rails. C’est un article sur Cucumber et non sur le TDD/BDD, ainsi la méthode pour développer n’est pas conforme à ces méthodes de développement.

Nous avons pris la même application que dans l’article précédent. En effet, elle se prête bien aux tests Cucumber. Il s’agit du calcul d’une facture de téléphonie mobile, avec gestion du hors forfait. Notre application est loin d’être parfaite, des anciens choix de conception la rendent « particulière », et il va falloir faire avec pour l’intégration de nos tests. De plus, nos testeurs sont assez exigeants et veulent pouvoir écrire de nombreux tests et en français en plus !

(Lire la suite…)

Démarches de tests fonctionnels

Si vous êtes un habitué de notre blog, vous saurez à quel point les démarches de développement piloté par le test (TDD) nous sont chères. Allié à un bon outil de test fonctionnel le TDD s’avère être un levier de productivité très important.

L’objectif de cet article est de vous présenter les différents types d’outils de tests fonctionnels puis de donner quelques perspectives sur les outils de tests du futur.
(Lire la suite…)