Julien Smadja

Julien Smadja est consultant chez Xebia où il intervient notamment sur des problématiques liées à la testabilité et la qualité des projets. Intéressé par l'intégration continue, il participe à l'évangélisation de produits comme Jenkins et Sonar.

 

Février – Un XKE pas comme les autres …

Article publié par et le 22 février 2013.

Catégorie(s) : Divers

 

Aucun commentaire »

Mots-clefs :

Les consultants de Xebia se retrouvaient cette semaine lors du XKE (Xebia Knowledge Exchange), rendez-vous mensuel au cours duquel Xebia France se réunit afin d’échanger et de partager sur les dernières technologies Java/JEE, SOA et Agilité. Un XKE un peu spécial en ce mois de février puisqu’il s’agissait d’un nouveau hackathon Xebia. Les présentations des Xebians devenant de plus en plus interactives et comportant de nombreuses séances de live coding, l’organisation d’un nouveau hackathon devenait une évidence.

 

Le hackathon est un marathon du développement. Les hackathons se sont répandus dans le milieu des années 2000 et bénéficient d’une couverture médiatique depuis deux, trois ans. Poussés par des sociétés, des écoles ou de simples passionnés, ils réunissent créatifs et développeurs se regroupant pour répondre à un sujet dans un temps très court, en général un week-end. La puissance de ces événements est réelle, en 2010 GroupMe a levé 10 millions de dollars suite à un hackathon organisé par Techcrunch. En aout 2011 Skype achète GroupMe pour 80 millions ! En France des événements comme les BeMyAPP rassemblent chaque mois plus de monde et surtout plus d’investisseurs.

Le teasing

Lire la suite de cet article »

Rétrospective du XKE de novembre

Article publié par le 15 novembre 2012.

Catégorie(s) : Divers

 

2 commentaires »

Comme chaque premier jeudi du mois, tous (oui tous) les consultants de Xebia se sont réunis jeudi dernier pour la journée du XKE (Xebia Knowledge Exchange).

Voici un résumé du programme proposé :

Lire la suite de cet article »

Rétrospective de notre XKE d’octobre

Article publié par le 11 octobre 2012.

Catégorie(s) : Divers

 

2 commentaires »

Comme chaque premier jeudi du mois, les consultants de Xebia se sont réunis en fin de semaine dernière pour le XKE (Xebia Knowledge Exchange).

La journée a commencé par trois slots en parallèle :

Java 8 apportera d’importantes nouveautés au sein du langage Java, à tel point que même le JDK s’en trouvera profondément modifié. Parmi ces nouveautés, il en est une qui ressort parmi les autres : le projet lambda (JSR 335). Son but est d’accroître la productivité des développeurs en orientant Java vers la programmation fonctionnelle. Pour y arriver, la JSR 335 apportera de nouveaux moyens d’expression : les lambda expressions qui proposent une syntaxe simplifiée pour déclarer des closures, les virtual extension methods qui permettent d’ajouter des services à des interfaces existantes avec des implémentations par défaut, ainsi que toute sorte d’extensions de l’API Collection pour faciliter gestion des flux et parallélisation des traitements, etc.

Ce slot a commencé par une présentation des nouveautés apportées par le Lambda Project et la façon le projet est géré, ainsi que ses , accompagné de démo en live avec l’une des dernières versions de l’OpenJDK. Puis lors d’un débat, nous avons discuté des éventuels changements qu’apportera Java 8 dans notre façon de concevoir des logiciels et de coder, de l’intégration des lambdas et des autres nouveautés de la JSR 335 dans les frameworks, mais aussi des craintes à avoir avec d’éventuelles dérives.

Lire la suite de cet article »

Rétrospective de notre XKE de Septembre

Article publié par le 13 septembre 2012.

Catégorie(s) : Divers

 

Aucun commentaire »

Comme chaque premier jeudi du mois, les consultants Xebia se sont réunis en fin de semaine dernière pour le XKE (Xebia Knowledge Exchange).

Cette présentation nous donnait l’occasion de partir à la découverte de Mongo et de son utilisation en Java avec Jongo. Le déploiement d’un serveur Jersey exposant ses documents, la création d’un client avec Backbone, le portage du serveur Java en JavaScript avec Node et déploiement sur Heroku faisaient partie de ce slot de trois heures ! Le code est disponible sur github avec correction dans l’historique.

  • Sonar III : Xebia versus Technical ‘Diablo’ Debt, animé par Julien Smadja

Sonar est actuellement en version 3.2. Les Xebians ont pu percevoir les nouveautés issues des versions 3.0, 3.1 et 3.2 avant de se concentrer sur trois métriques difficiles à appréhender de prime abord : LCOM4, Cyclomatic Complexity et Package Tangle Index. Après un bref rappel sur la théorie liée à ces métriques, il était question d’observer du code de production dans un état désastreux et d’essayer de l’améliorer. Le slot s’est terminé sur une liste des best practices et de la notion de Dashboards multiples, adaptés aux différentes phases de nos projets.

Avant de se lancer dans le développement d’applications iPhone/iPad, il est important de bien connaître ses outils. Alexis a présenté une initiation à Objective-C ainsi qu’à l’environnement de développement intégré XCode.

En utilisant des légos, les Xebians ont expérimenté quatre exercices où le problèmes à résoudre et le contexte dans lequel ils ont évolué étaient tour à tour simples, compliqués, complexes puis chaotiques. Cet exercice fut un très bon moyen d’aborder le framework Cynefin et de sentir, par la pratique, son intérêt. En effet, quand nous menons une transition agile, il est important de comprendre à quel type de système nous faisons face. Jouer ce jeu a montré aux Xebians comment décoder ce qui se passe en terme de structure d’organisation et de communication.

L’idée originale de ce slot invitait les Xebians à dérouler une présentation sur l’agilité en mode Pecha Kucha (c’est-à-dire 20 slides avec un enchaînement automatique toute les 20 secondes). Mais la réelle difficulté n’était pas là. Pour pimenter l’exercice, les participants ne connaissaient pas les supports à l’avance, ceux-ci étant sélectionnés le moment même depuis Slideshare à partir d’une recherche sur un mot clé. L’objectif de cet exercice était de tester la maîtrise d’un sujet par l’orateur: s’il connait suffisamment bien son sujet, il peut en parler avec le support de n’importe qui. Ce fut aussi l’occasion de mettre en lumière les bonnes et mauvaises pratiques de mise en page de présentation. Cinq Xebians se sont testés sur les thèmes de Scrum, Kanban, Software Craftsmanship, et contractualisation agile. Autant vous dire que l’agilité des Xebians a été mise à rude épreuve!

David nous a proposé un tour d’horizon du langage Scala et de quelques concepts liés au langage et plus particulièrement à la programmation fonctionnelle. Le but de cette session était de démystifier ces quelques concepts que l’on retrouve très souvent dès lors qu’on s’intéresse au langage. Si des concepts tels que les types algébriques, le pattern matching, les traits, la variance, les monades ou encore les typeclasses éveillent votre curiosité, sachez que cette session était faite pour vous.

L’objet de cette session était de découvrir un des logiciels d’automatisation de configuration de notre IT : Puppet. Au cours de ce Hands on, nous sommes partis d’un ensemble de machines OS-ready, jusqu’à aboutir au déploiement complet d’une application multi couches : un noeud MongoDB, un noeud Tomcat et un noeud HA Proxy. A la fin des trois heures de mise en place de la configuration, il n’a suffi que de quelques minutes pour déployer un dernier noeud Tomcat, load balancé par HA Proxy et relié à la base MongoDB !

Le Tomcat-as-a-Service d’Amazon est désormais disponible sur les data centers de la région EU-West (Ireland) ! Cette session nous a permis de découvrir ce PaaS qui supporte nativement le Blue Green Deployment. Bon nombre de concepts ont été abordés au cours de ce Hands On : de l’intégration à Jenkins au monitoring en passant par le scripting, le suivi des logs et bien d’autres encore.

Jekyll est une plateforme pour écrire des blogs & sites web. Elle est pragmatique, intelligente et terriblement puissante ! Utilisée par certains sites comme le blog de CodeStory ou le site de Xebia Studio, Jean-Laurent nous a présenté les bases de cet outil à travers des exemples « de la vraie vie » !

Après cette journée bien chargée, les Xebians ont pu se retrouver pour l’apéritif et une session Retro-Gaming autour d’une Super Nintendo et de jeux mythiques tels que Street Fighter et Mario Kart.

Et n’oubliez pas, Xebia recrute ! Envoyer nous votre CV à recrutement@xebia.fr ou via le formulaire de contact.

Peut-on faire du TDD sur du code existant ?

Article publié par le 23 décembre 2011.

Catégorie(s) : Java / JEE

 

4 commentaires »

Notre quotidien de développeur consiste très souvent à modifier du code existant. Certes, nous avons parfois la chance de développer de nouveaux modules tout frais, tout neufs et le Test Driven Development est à son avantage.

Mais comment peut-on mettre en pratique le TDD sur du code déjà écrit, parfois mal pensé et non testé. Cet article va partir d’un exemple concret, une classe comme on pourrait en trouver sur tous les projets. Le but est de commencer une démarche TDD et de pousser au maximum son efficacité (mise en évidence d’un bug potentiel, ajout d’une nouvelle fonctionnalité, refactoring du code et refactoring des tests). Au final, la classe sera beaucoup plus apte à subir le changement et surtout, elle sera testée et couvrira tous les cas d’utilisation.

Lire la suite de cet article »

Visuwall – Mixer vos outils de build et de qualité

Article publié par et le 2 décembre 2011.

Catégorie(s) : Java / JEE, Méthodes agiles, Tests

 

4 commentaires »

Visuwall est un outil agrégeant et synthétisant les métriques fournies par Hudson, Jenkins, Bamboo, Teamcity et Sonar.

Pour faire simple, imaginez que sur un seul écran vous puissiez voir en un clin d’œil l’état de vos builds (succès/instabilité/échec), le nombre de tests unitaires et d’intégration agrémenté de métriques telles le nombre de lignes de code, la couverture de code et le respect des normes de codages.

Mieux qu’un long discours, nous vous proposons une courte vidéo de 3 minutes qui démontre la facilité avec laquelle vous pouvez démarrer facilement avec l’outil.

Si l’outil vous intéresse, il est disponible au téléchargement et le code source est à votre disposition sur github.

Si vous désirez en savoir plus sur le développement de ce projet, nous vous proposons une rétrospective de ces derniers mois, en partant de la genèse du projet jusqu’à son état actuel.

Lire la suite de cet article »

Tester les services asynchrones avec Awaitility

Article publié par le 23 mars 2011.

Catégorie(s) : Java / JEE, Tests

 

2 commentaires »

Mots-clefs :, ,

Les tests d’intégration impliquent souvent plusieurs composants d’une architecture technique (webservices, serveurs de mail, …). Si une action s’exécute sur un composant A qui fait appel à un composant B et si la condition à vérifier dépend de la bonne exécution de B, vous êtes dans un cas d’asynchronisme. La première idée qui vient à l’esprit est d’utiliser un timer, de mettre en pause l’exécution du test pour laisser le temps à l’action de se réaliser. On comprend très vite qu’une optimisation est à portée de main, et si au lieu d’attendre un temps constant on pouvait gagner du temps si l’action s’est réalisée plus rapidement que prévu.

Nous verrons dans cet article qu’il est possible de développer des tests automatisés capables de s’adapter facilement aux contraintes d’asynchronismes et de se passer d’un blocage à temps constant grâce à l’API Awaitility.

Lire la suite de cet article »

Testabilité des EJB 3.1. Prêt pour du TDD ?

Article publié par le 2 février 2011.

Catégorie(s) : Java / JEE

 

7 commentaires »

La testabilité est devenue un facteur à prendre en compte lors du choix d’un composant technique. Pour les EJB 3.0, il existait plusieurs manières de tester des services développés, Ejb3unit (figé depuis mi-2009) ou Arquillian (uniquement côté JBoss AS). Les EJB 3.1 offrent enfin une solution native, prête à l’emploi et simple à manipuler : l’EJB Container.

Cet article présente l’utilité de l’EJB Container et la manière de l’utiliser ; il s’appuie pour cela sur l’écriture d’un service et d’une suite de tests exécutables sur Glassfish 3 et sur JBoss 6.

Lire la suite de cet article »