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é :
Best pratice coding exchange party, animé par Xavier Bucchioty
Au cours de cette année, Xavier a affûté ses armes et a intégré plein de nouvelles bonnes pratiques qu’il nous a exposées, code à l’appui !
Voici une liste non exhaustive des sujets abordés :
- WebServices jquery.ajax / Jersey
- Style de code en java (builder/factory method…)
- Guava et la FluentAPI
- Une API custom de reduce en Java
- Fest Assert
A l’instar de la session Code Clinic présentée au XKE d’Octobre, nous avons pu discuter autour d’un code "de la vraie vie" des meilleures façons de réparer des erreurs de programmation (anti-pattern, lisibilité, simplification).
Le slot s’est terminé par la reprogrammation en Scala d’une classe Java pour démontrer l’efficacité du langage pour résoudre certains problèmes de conception.
Vert.x – Un serveur asynchrone, animé par Guillaume Arnaud
Lancé il y a moins d’un an, vert.x voit sa notoriété grandir au fil du temps. Boîte à outils, serveur asynchrone, node.js killer, polyglotte, Guillaume cherchait le terme qui se prêtait à ce nouveau framework. Rien de mieux que de demander l’avis aux Xebians pendant ce slot qui était aussi une excellente occasion de se frotter à des technologies en vogue :
- Java 7
- nio2
- sockjs/websocket
- mongodb
- Groovy / Javascript
Au travers d’une application en frontal d’un serveur mongo, nous avons pu se frotter à la richesse de vert.x. Des cas d’utilisations se sont dessinés comme par exemple pour mettre en place un cache de niveau 2 ou ajouter une couche de monitoring via des websockets. Ce hands-on nous a permis également de se confronter à certaines subtilités du clustering et de s’apercevoir que la dernière version 1.3 introduit des régressions par rapport à la version précédente.
Beer distribution game, animé par Nathaniel Richand
Comme à son habitude, Nathaniel a proposé un slot ludique dans lequel il fallait simuler une chaîne de production de caisses de bière en jouant le rôle d’un grossiste, d’un détaillant, d’un distributeur ou de l’usine de fabrication. Les Xebians étaient-ils capable d’optimiser leurs stocks tout en satisfaisant les commandes du client ?
Ce jeu, inventé dans les années 60 au MIT, met en valeur un grand nombre de principes du Lean Manufacturing et challenge fortement nos croyances sur notre supposée maîtrise d’un système complet.
Le monitoring d’application Web Java, mise en place rapide et pragmatique, animé par Julien Smadja
Ce slot avait pour but de montrer que l’on peut monitorer une application Web très facilement et gratuitement en quelques minutes.
Avec les bons outils on peut détecter des regressions sur les performances ou des attaques de personnes malveillantes :
- A l’aide de sites tels que Monitis ou Monitor.us, il est aisé de configurer des moniteurs capables de pinger des pages Web, de dessiner des graphiques de temps de réponses et d’en obtenir un rapport quotidien ou hebdomadaire par mail.
- JavaMelody est la boîte à outils parfaite pour savoir ce qu’il se passe sur son application. Très facile à installer, elle permet de suivre les temps d’exécution des requêtes HTTP, de les lier aux requêtes SQL générées par celles-ci, de vérifier l’état des caches et des sessions HTTP. Il serait impossible de lister tout ce que JavaMelody met à notre disposition !
Dans un exemple concret d’une regression des performances de l’application détectée par Monitis, Julien a démontré qu’en utilisant un simple AspectJ chronométrant l’exécution des méthodes publiques, nous sommes capable de trouver rapidement le coupable. On peut ainsi corriger le problème, redéployer l’application et constater le retour à la normale sur les graphiques Monitis.
L’écosystème scala : le bon, la brute et le truand, animé par Jean Helou
Jean nous a présenté un survol rapide de l’écosystème Scala avec un système de notation pour distinguer les éléments simples (les bons), les éléments avec un ROTI (Return Over Time Invested) élevé nécessitant un apprentissage non négligeable (les brutes) et enfin les éléments qui selon lui doivent être évités (les truands). La présentation couvrait quelques fonctionnalités du langage Scala, l’outil SBT, et une dizaine de bibliothèques. Pour chaque cas il a présenté du code, souvent tiré d’applications, pour permettre d’évaluer la complexité réelle d’utilisation par rapport à la complexité perçue. Concernant les truands, il a nommé des alternatives parfois moins connues mais offrant les mêmes fonctionnalités.
Blue Ocean Strategy, animé par Audrey Pedro
La Blue Ocean Strategy est un modèle de segmentation marketing. L’océan rouge et l’océan bleu représentent l’univers du marché, chacun avec ses caractéristiques propres. L’objectif à travers cette stratégie est d’arriver à identifier l’océan bleu afin de positionner son produit.
Audrey nous a permis de découvrir ce modèle et de l’appliquer ensuite à un cas pratique.
Nginx for real, animé par Séven Lemesle
Apache est le serveur Web de référence mais sa complexité de configuration n’est peut être plus autant justifiée.
NginX est un concurrent sérieux dont les parts de marché ne cessent de croître depuis sa création.
Dans ce slot, Séven a montré la simplicité de NginX et comment se passer d’Apache. Ce Hand’s On couvrait les cas d’utilisation suivants :
- Le reverse proxy
- Le load-balancing
- L’utilisation des caches
- Les rewrite rules
- …
En résumé, tout ce qu’il fallait savoir sur le serveur http numéro deux du marché, déjà utilisé par les grands du web !
Coaching agile pour les débutants, animé par Nicolas Jozwiak
Nicolas a tenu à partager avec nous son expérience d’un an de coaching agile. C’était l’occasion de montrer en quoi consiste le rôle de coach agile et comment il peut être adapté à la sauce Xebia !
Coffee-Script, animé par Jean-Laurent de Morlhon
Cette session à mi-chemin entre un dojo et un hand’s on était composée d’une série d’exercices taillés pour l’occasion.
Coffee-Script est un langage qui perce dans le monde du web. Cela ressemble à du javascript, avec du vrai fonctionnel dedans matiné de Ruby et de Python.
Il est possible d’utiliser les fold-left, fold-right, map.each sans syntaxe qui pique les yeux ! Installation de node.js et habitudes de craftman (tests unitaires par exemple) étaient au programme.
Et n’oubliez pas, Xebia recrute ! Envoyer nous votre CV à recrutement@xebia.fr ou via le formulaire de contact.