Tout d'abord, toute l'équipe du BreizhJUG se joint à moi pour vous souhaiter une excellente année 2016 !
Nous commencerons l'année en beauté avec 2 sujets des développeurs des furets le Jeudi 12 janvier à 18h30 à l'ISTIC.
Nous avons reçu plusieurs demandes pour utiliser Meetup et, pour cette session de Janvier, il est possible de s'inscrire :
Nous verrons à l'usage si on ne garde que Meetup qui est plus riche en fonctionnalités.
Les sujets de la soirée seront limités à 40 mn chacun :
DomainModel().stream()
Pour faire du traitement de données, les listes, tableaux et maps sont les structures de données les plus faciles à manipuler. Malheureusement la plupart des applications sont conçues autour d'un modèle métier.
Chez LesFurets.com nous avons résolu ce problème en développant un KVM (Key Value Mapping). Ce framework est utilisé au cœur de l'application et cohabite avec le modèle métier. Grâce au mapping bidirectionnel de notre modèle métier vers un modèle clé-valeur, les manipulations de données deviennent extrêmement simples à réaliser. La mise en place de ce nouveau paradigme a nécessité un important refactoring de l'application et a permis de l'ouvrir à de nombreux outils actuels (Stream Java 8, RxJava, Spark, Cassandra)
Programmation réactive pour l'orchestration de services au sein de la JVM
Lorsque vous effectuez une recherche d'assurance sur LesFurets.com, nous interrogeons jusqu’à 40 partenaires pour offrir un maximum d'offres à nos clients. Pour collecter ces offres, nous utilisons des patterns à base de locks, threads et files d'attentes en mémoire pour orchestrer des services au sein de la JVM. Bien que matures, ces constructions sont de très bas niveau et sont sujettes à de nombreuses erreurs : il manque des abstractions pour aider à mettre en œuvre des politiques pour l'optimisation des ressources, la résilience et la performance. La programmation réactive propose une approche différente pour aborder ces problèmes de concurrence en permettant aux développeurs de décrire les opérations sur les flux de données. Dans cette présentation, nous comparons différents patterns pour appliquer une programmation réactive sur un composant critique de notre architecture. Nous donnons des exemples de différentes API telles que RxJava2, Reactive Streams (Java 9 Flow) et CompletableFutures pour implémenter une orchestration de services tout en garantissant la qualité de services pour les utilisateurs.

Gilles Di Guglielmo (@gdigugli)
Gilles travaille depuis 15 ans pour différents éditeurs de logiciels (ILOG, PrimaSolution, Courtanet) sur des sujets très variés: librairie graphique 2D, moteur de règles, plate-forme de services, code génération de modèle métier. Actuellement, il est architecte pour le site LesFurets.com, et aime prendre l’air de temps en temps à San Francisco ou à Anvers. Il a présenté différentes sessions à JavaOne, Devoxx, SoftShake, CodeGeneration et plusieurs Java User Group en France.

Ozan Gunalp (@ozangunalp)
Ingénieur docteur avec 5+ ans d'expérience dans les systèmes distribués, l'Internet des objets et les processus de développement logiciels. Chez LesFurets.com je m'intéresse à l'amélioration de la qualité et du pipeline de livraison de logiciel.