
Le PSUG vous propose un rejeu du handson scala de Devoxx le 15 avril à 19:30 dans les locaux de Xebia.
Vous n’avez pas pu aller à Devoxx ? Vous y étiez, mais la foule en délire vous a empêché de vous approcher de la salle du hands’on Scala avant que nous ne soyons contraints de fermer les portes pour raisons de sécurité ? Vous aviez choisi de ne pas faire ce hands’on mais la keynote de Martin Odersky vous a convaincu que Scala est l’avenir ?
Ne vous inquiétez pas, l’équipe des flatmapDukes organise une scéance de repêchage pour le hands’on ! Ce hands’on vous permettra de découvrir le langage Scala à travers la pratique d’une série de tests unitaires commentés. Les animateurs sont là pour vous aider ou répondre aux questions.
Ca se passera le Lundi 15 avril chez Xebia a partir de 19h, inscriptions sur l’eventbrite.
Grails est un framework web permettant de développer rapidement en Groovy des applications modernes. Mais qui dit "applications web modernes" dit également "JavaScript", beaucoup de JavaScript. Il devient donc vite nécessaire de tester le code écrit en JS, de façon à trouver rapidement les nombreuses régressions qui ne manqueront pas d’arriver au cours de la vie de l’application. Dans cet article, je vous propose une façon d’intégrer des tests JavaScript dans votre projet Grails, mais surtout de voir comment les lancer simplement depuis le shell Grails avec la commande test-app :js
Lire la suite de cet article »
De la touche "F5" aux frameworks de tests
Les tests unitaires sont aujourd’hui une norme dans le développement des applications Java. L’amplification des techniques Agiles et du mouvement Software Craftsmanship ont poussé à mettre les tests unitaires comme prérequis au développement d’applications.
Concernant le développement d’applications front en javascript, les tests se limitent souvent à une vérification manuelle du comportement attendu sur le navigateur. La touche “F5” et les “alert” en sont les principaux outils. Qui n’a pas passé des heures à rafraîchir sa page et à regarder les messages d’alertes pour comprendre le changement de comportement d’un module lors d’une modification du code ?
Ceci entraîne une perte de temps énorme, la confiance envers son code lorgnant vers 0 ainsi qu’une maintenance qui devient quasiment impossible.
Heureusement, au fil du temps les navigateurs ont sorti des outils permettant de faciliter les tests du code tels que Firebug pour Firefox ou le puissant outil de développement présent dans Chrome (je n’ai malheureusement pas encore utilisé les outils IE). Ces outils sont d’une aide inestimable mais les tests sont toujours fait manuellement.
Des frameworks de tests unitaires pour Javascript existent pourtant depuis plus de 10 ans. L’apparition de Node.js et de frameworks de développement front en javascript (Angular, Backbone, Ember…) ont fait passer le javascript dans une dimension supérieure et permettent aujourd’hui le développement partiel ou total d’applications dans ce langage. Ce développement impose de facto l’utilisation de tests (unitaires, d’intégration…).
Nous allons voir dans cet article la logique des tests unitaires en javascript pur afin de mieux appréhender le fonctionnement des frameworks de tests automatisés tel que Jasmine, mocha ou QUnit. Nous montrerons d’ailleurs une version de ces tests avec QUnit afin de commencer à voir les possibilités que peuvent nous offrir ces frameworks.
Lire la suite de cet article »
Dans la troisième partie de la soirée Vue d’ensemble du DDD, Jérémie Grodziski nous explique quels sont les liens entre le Domain Driven Design et les paradigmes fonctionnel et orienté objet. On a souvent tendance à assimiler l’approche DDD à la bonne manière de concevoir un système sous la forme de classes (orienté objet). C’est totalement juste. Cependant, on peut très bien envisager d’appliquer ces concepts avec un langage fonctionnel comme le montre un certain nombre d’arguments avancés dans cette vidéo :
Cette troisième partie a succédée à la présentation générale du DDD ainsi qu’à la vidéo détaillant ses principaux Building Blocs.
Parmi les Building Blocks définis dans l’approche DDD, certains sont plus simples et fondamentaux que d’autres. Ceux-là permettent de mettre en place du DDD dans un projet de manière progressive et pragmatique tout en ayant un retour sur refactoring extrêmement gratifiant. Avec cette vidéo, vous allez découvrir dans les détails ce qui font les spécificités d’un Value Object et d’une Entity au sens DDD des termes. Cette présentation a succédé à l’introduction au DDD dispensée ce soir là par Jérémie Grodziski.
Si vous souhaitez approfondir l’univers du DDD, la prochaine vidéo sera bientôt disponible. Elle démontrera les liens entre DDD et les paradigmes fonctionnels et orientés objet ainsi qu’une scéance de questions/réponses teintée de retours d’expériences de la vie réelle.
L’objectif de cet article est de présenter le gestionnaire de cache disponible dans la bibliothèque Guava.
Guava est une bibliothèque utilitaire publiée par Google qui couvre un grand nombre de domaines (collections, IO, reflections, programmation fonctionnelle, etc …) et est souvent déjà présente dans un grand nombre de nos projets.
Cependant, la raison de l’inclusion de cette bibliothèque est rarement l’utilisation du gestionnaire de cache alors qu’il a toute sa place dans de nombreuses situations.
Lire la suite de cet article »
La prochaine session du Paris Scala User Group aura lieu mardi 05 mars à 19h30 dans les locaux de Xebia.
À l’occasion de cette nouvelle soirée du PSUG, le format change un peu pour vous proposer un codecamp.
L’idée est de partager, avec un peu de pratique et/ou discussion concrète sur du code.
Les participants suggèrent des sujets (si possible des sujets qu’ils connaissent, sur lesquels ils travaillent, tout le monde vote à la louche pour choisir les sujets qui interessent l’auditoire et on se repartit en n (à priori 2) groupes de discussion avec le laptop sous la main pour derouler du code/slide etc., ce pendant 20 min. Il y aura 3 ou 4 sessions de 20 minutes avant de conclure sur un buffet.
Pour que les choses se passent bien, il est donc souhaitable d’avoir un minimum de connaissance scala et des sujets à proposer pour qu’il y ait des échanges constructifs.
N’hésitez pas à vous inscrire sur eventbrite
Notez bien l’adresse :
Xebia
156 boulevard Haussmann à Paris
Immeuble A – 7e étage

Après l’article sur FEST-Assert, la série des Craftsman Recipes continue avec bon goût : j’ai nommé Mockito.
Le principe fondamental du test unitaire est qu’il doit remplir la condition sine qua none de l’unicité et de l’isolation complète. Cependant, dans certains cas, l’unité de test interagit directement avec des objets non instanciables, ni contrôlables aisément. Le Mocking est une réponse à cette problématique, puisque par définition, un Mock est un objet simulé qui reproduit le comportement d’un objet réel de manière contrôlée.
Voyons dans la pratique comment faire du Mocking avec Mockito et par la même occasion rendre nos tests plus joyeux. À noter que l’ensemble du code source est disponible sur Github.
Lire la suite de cet article »

Écrire des tests unitaires, c’est bien. Écrire des tests unitaires maintenables et lisibles, c’est encore mieux. Mais quand ils échouent, combien de temps vous faut-il pour trouver la source du problème ?
Pour pallier à quelques manques de JUnit, FEST-Assert est une bibliothèque Java puissante. Elle permet de chaîner les assertions sur un même objet ou encore de définir des messages d’erreur très personnalisés pour les cas d’échec. Elle propose des assertions spécifiques pour de nombreux types Java, et même bientôt pour Guava et Joda Time !
Mais si vous avez des classes de votre projet qui reviennent de manière récurrente dans vos tests, il est alors temps de créer vos propres assertions FEST !
Voyons cela en pratique avec ce nouvel article de la série Craftsman Recipes. À noter que l’intégralité du code présenté se trouve sur ce repository Github avec un tag pour chaque étape.
Lire la suite de cet article »

La prochaine session du Paris Scala User Group aura lieu jeudi 17 janvier à 19h30 dans les locaux de Xebia.
À l’occasion de cette nouvelle soirée du PSUG, Nicolas Martignole nous fera la présentation de l’architecture du site web Zaptravel.com.
Réalisé avec Play2 / Scala, comment fonctionne un site grand public à fort trafic avec Scala ? Pourquoi Scala ? Pourquoi Redis ? Nicolas proposera un retour d’expérience sur le projet qu’il développe depuis bientôt un an. Avec plusieurs milliers de données (avion, hotel, activité, photos, lieu), comment la plateforme est-elle construite ?
Il partagera aussi son expérience de nouveau développeur Scala. Après avoir commencé en juin 2011, cela fait maintenant plusieurs mois qu’il est passé du côté Scala. Si vous êtes développeur Java, vous pourrez ainsi entendre le témoignage d’un développeur Java.
L’évènement est complet mais il y a souvent des désistements de dernière minutes, n’hésitez pas à vous inscrire sur la liste d’attente eventbrite pour être prévenu si des places se libèrent.
Notez bien l’adresse :
Xebia
156 boulevard Haussmann à Paris
Immeuble A – 7e étage