{"id":2921,"date":"2016-03-07T11:03:19","date_gmt":"2016-03-07T10:03:19","guid":{"rendered":"http:\/\/www.alpesjug.fr\/?p=2921"},"modified":"2016-03-22T19:50:53","modified_gmt":"2016-03-22T18:50:53","slug":"en-mars-les-furets-sortent-de-leurs-terriers-soiree-continuous-delivery-le-16-mars","status":"publish","type":"post","link":"https:\/\/www.alpesjug.fr\/?p=2921","title":{"rendered":"En mars les furets sortent de leurs terriers &#8211; Soir\u00e9e Continuous Delivery le 16 Mars"},"content":{"rendered":"<div class=\"post-bodycopy clearfix\">\n<p>Deux pr\u00e9sentations pour le prix d&rsquo;une soir\u00e9e, \u00e7a va d\u00e9livrer s\u00e9v\u00e8re le Mercredi 16 Mars 2016 \u00e0 19h.<\/p>\n<h3>Pr\u00e9sentation <b>DomainModel().stream()<\/b><\/h3>\n<p><b> <\/b>Pour faire du traitement de donn\u00e9es, les listes, tableaux et maps sont les structures de donn\u00e9es les plus faciles \u00e0 manipuler. Malheureusement la plupart des applications sont con\u00e7ues autour d&rsquo;un mod\u00e8le m\u00e9tier.<br \/>\nChez LesFurets.com nous avons r\u00e9solu ce probl\u00e8me en d\u00e9veloppant un KVM (Key Value Mapping). Ce framework est utilis\u00e9 au c\u0153ur de l&rsquo;application et cohabite avec le mod\u00e8le m\u00e9tier. Gr\u00e2ce au mapping bidirectionnel de notre mod\u00e8le m\u00e9tier vers un mod\u00e8le cl\u00e9-valeur, les manipulations de donn\u00e9es deviennent extr\u00eamement simples \u00e0 r\u00e9aliser. La mise en place de ce nouveau paradigme a n\u00e9cessit\u00e9 un important refactoring de l&rsquo;application et a permis de l&rsquo;ouvrir \u00e0 de nombreux outils actuels (Stream Java 8, RxJava, Spark, Cassandra)<b><\/b><\/p>\n<p>Le projet est disponible sur GitHub: <a class=\"moz-txt-link-freetext\" href=\"https:\/\/github.com\/lesfurets\/model-map\">https:\/\/github.com\/lesfurets\/model-map<\/a><b><br \/>\n<\/b><\/p>\n<h3>Le conf\u00e9rencier <b>Gilles Di Guglielmo<\/b><\/h3>\n<p><b><\/b>Gilles travaille depuis 15 ans pour diff\u00e9rents \u00e9diteurs de logiciels (ILOG, PrimaSolution, Courtanet) sur des sujets tr\u00e8s vari\u00e9s: librairie graphique 2D, moteur de r\u00e8gles, plate-forme de services, code g\u00e9n\u00e9ration de mod\u00e8le m\u00e9tier. Actuellement, il est architecte pour le site LesFurets.com, et aime prendre l&rsquo;air de temps en temps \u00e0 San Francisco ou \u00e0 Anvers. Il a pr\u00e9sent\u00e9 diff\u00e9rentes sessions \u00e0 JavaOne, Devoxx, SoftShake, CodeGeneration et plusieurs Java User Group en France.<\/p>\n<\/div>\n<div class=\"post-bodycopy clearfix\"><\/div>\n<div class=\"post-bodycopy clearfix\">\n<h3>Pr\u00e9sentation\u00a0<b>Continuous merge chez LesFurets.com<\/b><\/h3>\n<p><b> <\/b>Nous allons faire un tour d&rsquo;horizon de notre process de mise en production chez LesFurets.com pour comprendre comment nous arrivons \u00e0 faire du continuous delivery, avec des mises en production tous les jours. Nous allons surtout parler de notre outil \u00ab\u00a0git octopus\u00a0\u00bb, qui nous permet de faire du continuous merge, et de d\u00e9tecter en amont les probl\u00e8mes de merge entre nos branches.<\/p>\n<h3>Le conf\u00e9rencier <b>Salvador Diaz<\/b><\/h3>\n<p>Tech lead \/ architecte mexicain (garanti sans accent) de l&rsquo;\u00e9quipe \u00ab\u00a0journey\u00a0\u00bb chez LesFurets.com, je m&rsquo;int\u00e9resse depuis longtemps aux techniques de gestion de code, de construction d&rsquo;application et de delivery.<\/p>\n<div>\n<div>\n<p class=\"p1\"><strong>Inscription<\/strong>:<\/p>\n<p><a href=\"http:\/\/www.meetup.com\/fr-FR\/AlpesJUG\/events\/229406408\">http:\/\/www.meetup.com\/fr-FR\/AlpesJUG\/events\/229406408<\/a><\/p>\n<p class=\"p1\"><strong>Cette soir\u00e9e se d\u00e9roulera sur le campus \u00e0 la\u00a0Maison Jean Kuntzman\u00a0le Mercredi 16 Mars \u00e0 partir de 19h00.<\/strong><\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Deux pr\u00e9sentations pour le prix d&rsquo;une soir\u00e9e, \u00e7a va d\u00e9livrer s\u00e9v\u00e8re le Mercredi 16 Mars 2016 \u00e0 19h. Pr\u00e9sentation DomainModel().stream() Pour faire du traitement de donn\u00e9es, les listes, tableaux et maps sont les structures&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2921","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"_links":{"self":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts\/2921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2921"}],"version-history":[{"count":2,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts\/2921\/revisions"}],"predecessor-version":[{"id":2944,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts\/2921\/revisions\/2944"}],"wp:attachment":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}