Les 20, 21 et 22 avril 2016 se déroulait la 5ème édition de Devoxx France, un événement qui regroupe des spécialistes du monde Java mais pas que : Javascript, mobile, devops, architecture Web et infrastructure sont des domaines abordés par les nombreuses conférences, talks et ateliers.
En plus des conférences et ateliers, il y avait les exposants, 45 au total. Certains plus familiers que d’autres puisque nous avons rencontré Nao chez Aldebaran ; Mirakl était présent aussi ; StackOverFlow ; Jahia avec un certain Xavier Battut… Les échanges peuvent être multiples et de natures très différentes.
Vous pouvez retrouver, à l’aide du programme de cette édition, les vidéos des conférences sur YouTube. Il est possible qu’il y en ait qui vous intéressent et qui ne sont pas dans celles décrites plus bas.
Voici les sujets qui nous ont tapé dans l’œil :
ArrayList
et LinkedList
sont dans un bateau (José Paumard)
On les utilise régulièrement, et pourtant, il y a une sacrée différence entre ces deux classes, notamment en terme de performance.
José Paumard nous a expliqué leur mode de fonctionnement, avec POC1 à l’appui, avant de nous indiquer comment surcharger ces algorithmes en utilisant des lambdas, et ça, ça nous a plu.
3 heures pour développer un microservice avec les micro frameworks Java (Laurent Baresse, Igor Laborie)
Un Hands-On Lab2 dans lequel on a pu apprendre par la pratique les outils suivants :
- Feign : un outil simplifiant les accès à des services tiers, notamment en écrivant seulement des interfaces et en utilisant des annotations.
- Spark Java : un outil simplifiant l’écriture de webservices, en définissant notamment des routes.
Ce sont des outils simples à prendre en main et que l’on réutilisera facilement sur des projets de plus grosse envergure… en tout cas, on l’a déjà prévu !
Autre point à noter, nous avons découvert un dépôt GitHub plein de petits projets intéressants et utilisés à très grande échelle : celui de Netflix.
Akka : découvrons les bases (Guillaume Scheibel)
Guillaume Scheibel nous présente les bases de la programmation réactive, un mécanisme d’échange de message, avant de nous expliquer l’utilisation du framework Akka basé sur le langage Scala.
Attention, il faut avoir des bases de Scala si l’on veut vraiment comprendre toutes les subtilités (ce qui est heureusement notre cas), mais cette conférence nous donne au moins des bases sur la programmation réactive.
Dropwizard : création de services REST production-ready en 25 min (Alexander Dejanovski)
Nous étions curieux de voir comment créer un service REST production-ready en 25 minutes et nous n’avons pas été déçu.
Alexander Dejanovski nous a présenté Dropwizard qui fournit également des métriques permettant de faire de la supervision, tout ça en mode out-of-the-box.
Nous avons également apprécié le couplage avec Hystrix (un circuit breaker) qui permet de facilement couper les accès en cas d’indisponibilité.
Java SE 8 pour les développeurs Java EE (José Paumard, David Delabassee)
En tant que développeurs J2EE, on avait hâte d’assister à cette conférence dans laquelle les speakers nous ont présenté l’utilisation de la nouvelle API Date, des Repeatable Annotation, des nouveautés de la classe String et autres classes utilitaires relatives (StringJoiner), des Streams et des Completable Future.
Tout cela orienté développement J2EE, bien entendu.
String Concatenation de 1 à 9 (Remi Forax)
En complément de la conférence Java SE 8 pour les développeurs Java EE, on voulait aller plus loin sur la compréhension du mécanisme de concaténation des chaines de caractères. Vous vous êtes déjà demandé comment la concaténation était réalisée par la JVM ? Cette présentation est faite pour vous !
A la découverte du service discovery (Jean-Eudes Couignoux)
Consul est un outil de service discovery, développé par Hashicorp (qu’on connait notamment pour Vagrant) fonctionnant comme un annuaire de service, avec un fonctionnement en cluster (leader vs client) et des échanges au format JSON : on a pu ici le découvrir à travers un cas pratique.
On a aimé le fait que l’outil possède une interface de consultation HTTP et DNS (port 8600) pour récupérer les infos des services répertoriés.
JAVA Agent en Action (Yoann Buch)
On savait que ça existait, on en utilise (JRebel en est un bon exemple), par contre, en créer de nouveaux, on y avait pas vraiment pensé, et pourtant ! Yoann Buch nous a expliqué le fonctionnement via un exemple d’interception du chargement des .class
avant leur stockage dans la JVM. Créer des agents est finalement très simple.
Jigsaw est là pour nous sauver (Remi Forax)
Remi Forax nous a présenté le projet Jigsaw, de l’OpenJDK, qui permettra dans Java 9 de compiler les fichiers sources par modules, améliorant ainsi la scalabilité et la sécurité.
On aime le fait d’avoir un avant-goût du projet qui refaçonnera sûrement la compilation de demain, et la notion de découpage des packages en modules augmentant la complexité du projet, mais optimisant sa structure.
Cette conférence était la plus importantes à nos yeux car elle concerne notre avenir dans le développement d’applications JAVA. Il faudra changer la manière de penser notre projet, le travail de l’architecture sera très différente.
Conclusion
Une partie des conférences nous a présenté de nouveaux outils et fourni les bases pour les utiliser et on a beaucoup appris sur les technologies que l’on utilise au quotidien, exactement ce que l’on attend d’un événement comme Devoxx !
Rendez-vous l’année prochaine, le prochain Devoxx France devrait être prévu juste après la sortie de Java 9 !
Xavier Battut
10 janvier 2017
Euhh merci cher Benoît de parler de « Jahia » !… pour être plus précis je parlais de la solution e-Commerce « Jahia Commerce Factory » s’appuyant sur une architecture réactive et distribuée (Akka, Spark…) et offrant des fonctionnalités « temps réel » pour les marketeurs : Web analytics ou encore recommandation en ligne.