16 novembre 2012

Devoxx Day 4

Deuxième journée de conférence, et surtout quatrième journée à dormir peu après une soirée mouvementée, j'accuse un peu le coup :)

Les keynote commencent avec l'annonce de JBoss de la "short-list" pour le nouveau nom de JBoss AS. J'ai d'abord cru à une blague mais ce sont bien les propositions retenues. On aura donc peut être droit à un "J-Béret by RedHat" :-/

On passe à la keynote de Google, présentant les nouveaux Nexus 4 et 10, l'intégration Jenkins (by Cloudbees, youpi!) dans AppEngine, et les dernières fonctionnalités "hype" de Chrome, sur fond de talk sur la "vie online" et notre responsabilité de développeurs et d'early-adopters pour mettre en place une vraie sécurité, du genre 2-step verification login, utilisation systématique de https, ... sans perdre de vue l'expérience utilisateur. On conclut rapidement sur l'utilisation d'OpenId et le "one click signup" qui se multiplie sur les sites web.

Je zappe la session suivante pour discutter un peu, avant de rejoindre les London-Jug guys présentant un talk sur les anti-patterns de développement,  sur le mode "gentil et méchant flic", très sympa et pleine d'humour.

Après le casse croute passé au côté de l'équipe CodeStory, je suis une session sur les test en Javascript. Le framework Jasmine y est mis en oeuvre pour modulariser une appli JS en fragments testables unitairement. Pour la partie graphique, après un premier essai utilisation Selenium (12 secondes pour exécuter 3 tests basiques), le speaker présente un runner JavaScript permettant d'exécuter les tests dans la JVM en mode émulation. Très rapide et avec feedback dans l'IDE on a donc un outil performant. Dernière option proposée : utiliser PhantomJS (browser headless basé sur webkit) plus proche de la réalité mais qui est plus délicat à intégrer (maven-exec) - amha un Custom Runner JUnit devrait pouvoir y remédier, si ça tente quelqu'un ;) Une combinaison de ces recettes permet donc de monter un CI Javascript très productif.

J'ai apprécié ce talk car j'avais été interpelé par l'équipe CodeStory qui utilise Mocha et Zombie pour obtenir des tests web rapides et fonctionner efficacement en full TDD. Avec le talks sur Testacular plus tôt cette semaine, je vois que l'écosystème JavaScript est toujours aussi prolifique et de mieux en mieux outillé.

Merci à Arnaud qui me prête un tournevis pour remettre en état mon MacBook qui souffre un peu (trop de bière, petite nature) avant de passer à une façon plus DevOps de gérer l'infrastructure, présentée par Patrick Debois himself. Initiée par CFEngine, puis Puppet et Chef, la catégorie des "Configuration Manager" adresse un besoin de traçabilité/reproductibilité que l'on connait bien dans le développement logiciel et qui s'applique aujourd'hui à l'identique dans le monde des Ops.

Patrick présente en parallèle Chef et Puppet en comparant les concepts avec leur équivalent en programmation java : class <-> definitions, héritage <-> attribut "cookbook", etc. Puppet et Chef se distinguent essentiellement par la culture qui les sous-tends. Le premier propose un DSL volontairement restreint, plutôt contraignant (pas de boucles !) - le second en permettant d'écrire n'importe quoi en Ruby ouvre la porte à des utilisations maladroites et ingérables. Puppet utilise par ailleurs un graphe des tâches à exécuter qui peut être interrogé alors que Chef exécute purement les cookbooks de manière séquentielle, mais ainsi de façon plus prédictible. 

Avec le développement de ces outils d'infrastructure as code, on voit apparaître de l'outillage (Gepetto, RubyMine), règles de codage, patterns et anti-patterns, gestion de dépendances, visualisation, debugging (encore naissant), testing qui nous sont familiers.

La taille relative de mes notes par rapport aux autres talks montrent à quel point ce talk m'a intéressé ;)

Je m'offre un petit moment de calme avant d'aller découvrir les nouveautés de Groovy 2.0 (j'aime bien Groovy, il me permet de coder du Java comme d'hab tout faisant des trucs géniaux lorsque c'est utile). Les AST transformation en particulier me donnent envie de creuser le sujet. Je vous renvoie sur la chaîne Parleys du BreizhJug si vous voulez suivre ce talk en version FR

La journée aurait du se terminer ici, mais après le succès de son quickie, nous avons droit à un "replay" de Chet Haase présentant d'une manière délirante un nouveau process de développement. Un pur moment de délire qui fait du bien, avec un Chet qui arrive a garder un sérieux sans faille dans son costume de consultant d'un jour.

La fin de journée permet de joindre le BOF des JUG-Leaders, occasion annuelle de faire le point sur les relations entre JUGs, avant de rejoindre le NoX pour la Devoxx Party, qui permet de dépenser un peu des calories que la bière belge nous aura fait prendre cette semaine, et aussi de faire connaissance avec la gente féminine à péage qui occupe le night-club.