Parcours pédagogique Devoxx France 2023

Le

OXiane est le partenaire formation de Devoxx : la conférence des développeurs passionnés – 11ème édition

« 11 ans de Devoxx France et 11 ans de partenariat avec OXiane »

Le 11 avril 2023 – Formations en présentiel

Châteauform’ Learning Lab La Défense
40 Passage de l’Arche, 92800 Puteaux

+ du 12 au 14 avril 2023 – Conférences

Palais des Congrès Paris – Porte Maillot

 


Dans le cadre du parcours pédagogique Devoxx France, les inscrits via OXiane devront suivre une formation au choix :

  • Programmation Concurrente et Asynchrone en Java avec le projet Loom (José PAUMARD)
  • Aller plus loin avec Kubernetes (Alain REGNIER)
  • Software Craftsmanship : les bases (Christophe MARCHAND)
  • Progressive Web App – PWA, la synthèse (Nicolas HOIZEY)
  • Domain Driven Design : les bases du DDD à travers un retour d’expérience (Thierry VERCRUYSSE)
  • Le web a mal tourné, reprenons le contrôle avec l’écoconception et le Numérique Responsable (Laurent DEVERNAY)

Les formations auront lieu en présentiel (Châteauform’ Learning Lab La Défense, 40 Passage de l’Arche, 92800 Puteaux).
Une convocation avec tous les détails vous sera adressée environ 10 jours avant l’évènement.

Horaires des formations : 9h à 18h, accueil à partir de 8h30

Les badges d’accès aux conférences seront délivrés à l’issue des formations.
Les participants devront obligatoirement avoir suivi la journée de formation pour obtenir leur badge d’accès.

Tarif : 990 € HT/participant

A réception de l’inscription, une convention de formation professionnelle sera adressée au Client qui s’engage à nous en retourner un exemplaire signé.


Programmes

Programmation Concurrente et Asynchrone en Java avec le projet Loom
Formation animée par José PAUMARDJava propose un modèle de programmation concurrente intégré à son API depuis ses toutes premières versions. Deux évolutions majeures ont eu lieu depuis l’introduction de la classe Thread et du mot-clé synchronized : l’ajout de l’API java.util.concurrent en Java 5, le framework Fork / Join et l’API CompletableFuture en Java 8.
Une troisième évolution se prépare avec l’introduction du projet Loom dans le JDK, que l’on se propose de découvrir lors de cette journée.Public de la formationArchitectes, DéveloppeursPrérequisNotions de programmation concurrente (thread, race condition, synchronisation)
Les participants devront disposer de Java 20 sur leur machine pour réaliser les travaux pratiquesObjectifs

  • Comprendre les enjeux de la programmation asynchrone et réactive
  • Comprendre le coût du lancement de threads dans une application Java
  • Comprendre l’organisation des API Concurrentes, Asynchrones et Parallèle en Java
  • Comprendre la notion de Thread et de tâche concurrente
  • Comprendre la différence entre programmation concurrente et calcul parallèle
  • Maîtriser la notion de programmation concurrente structurée
  • Maîtriser la création de scope structuré
  • Maîtriser le lancement de tâches asynchrones
  • Maîtriser l’enchaînement de tâches et la gestion des erreurs
  • Maîtriser la création et la lecture de variable scoped-values

Programme

Les trois éléments de Loom sont couverts :

Les threads virtuels

  • Création de threads virtuels
  • Comment fonctionnent-ils, quel est leur coût en mémoire et en performance ?

La programmation concurrente structurée, centrée sur la classe StructuredTaskScope

  • Comment fonctionne cet objet ?
  • Son utilisation pour lancer des tâches asynchrones
  • Comment l’étendre pour exploiter les résultats de ces tâches ?
  • Gestion des timeout et de la fermeture de cet objet

Les variables ScopedValue

  • Problèmes du modèle de variables ThreadLocal
  • Fonctionnement des variables ScopedValue
  • Utilisation dans des cas réels

A l’issue de cette journée, vous aurez des idées précises sur la façon dont les threads virtuels fonctionnent, et comment vous pourrez les utiliser pour améliorer les performances de vos applications concurrentes et asynchrones. Vous aurez créé une petite application asynchrone construite sur la programmation concurrente structurée et des threads virtuels et vous aurez compris comment utiliser des ScopedValues dans ce contexte.

La journée se compose pour moitié d’explications théoriques et pour moitié de travaux pratiques sur machine. La version de Java utilisée est Java 20. Elle est indispensable pour la partie pratique.

A propos de José PAUMARD

José est Java DevRel – Java Platform Group chez Oracle. Consultant en informatique depuis environ 25 ans. Maître de conférences en mathématiques et informatique à l’université Paris 13, docteur en mathématiques appliquées, il a enseigné les technologies Java au niveau Master et dernière année d’école d’ingénieur depuis environ 20 ans.

Il est fortement investi en qualité des applications logicielles et software craftsmanship depuis 2015 au travers de missions de coaching et de formation auprès de plusieurs sociétés (SGCIB, Renault, Crédit Agricole, Groupama, Accenture). La formation Software Craftsmanship qu’il a créée, commercialisée par la société Oxiane, est suivie par une centaine de développeurs chaque année.

Java Champion et Java Rockstar, il intervient régulièrement dans les conférences Java en France et à l’international : Devoxx (en France, en Belgique, en Angleterre), JavaOne, Oracle Code One, Goto, DevNexus, JFokus, etc.

Ses présentations sont visibles sur sa chaîne YouTube (https://www.youtube.com/user/JPaumard).

Fortement impliqué dans les communautés, José est trésorier de l’association qui organise les soirées Paris Java User Group depuis 10 ans, et a été organisateur de Devoxx France durant les trois premières années de la conférence, à partir de 2012.

Il participe en tant qu’expert aux groupes de standardisation de Java EE (JSR 365 sur CDI 2.0) et a notamment grandement influencé le design des API asynchrones de CDI, construites sur l’utilisation de l’API CompletionStage / CompletableFuture.

Enfin, José contribue à quelques projets Open source, disponibles sur son compte GitHub (https://github.com/JosePaumard).

 

Aller plus loin avec Kubernetes
Formation animée par Alain REGNIERDans cette formation d’une journée, Alain vous propose un bref rappel sur Kubernetes avant d’approfondir des sujets plus avancés tels que le réseau, l’API ou l’autoscaling.C’est l’occasion de bénéficier de son retour d’expérience et de bonnes pratiques.Public de la formationPersonnes ayant déjà un peu d’expérience avec Kubernetes et souhaitant approfondirPrérequisExpérience préalable de Kubernetes
Les activités et travaux pratiques nécessitent de disposer d’un accès à un cluster Kubernetes (ou de se créer un compte de test sur Google Cloud pour accéder à un cluster GKE)Objectifs

  • Approfondir sa connaissance de Kubernetes
  • Comprendre l’API de Kubernetes
  • Maîtriser l’autoscaling
  • Bénéficier des bonnes pratiques

Programme

  • Rappels sur Kubernetes
  • Démystification du réseau dans Kubernetes
  • La Kubernetes API (accès, fonctionnement, extensions…)
  • Les ressources avancées
  • L’autoscaling
  • Les bonnes pratiques
  • Quelques outils à connaître

A propos d’Alain REGNIER

Alain est reconnu dans les communautés IT en France et à l’international sur des expertises Kubernetes, GoogleCloud, et plus généralement la stratégie Cloud/DevOps. Il est reconnu « Google Developer Expert » sur GoogleCloud par Google.

Il est CTO de la société Kubo Labs, spécialiste de Kubernetes sur le Cloud et on premise.

Il accompagne les entreprises qui veulent passer à Kubernetes ou s’en servir plus efficacement en suivant les Bonnes Pratiques (stratégie, installation, formation, kubernetisation d’application, audit…).

Il a passé 10 ans dans la Silicon Valley, où il a travaillé à la fois pour des startups et pour de grandes sociétés. Alain a participé à la rédaction de plusieurs standards des Web Services et des Objets Connectés. Il est aussi le co-fondateur du GDG Paris (Google Developers Groups), du GDG Cloud Paris et de StartupVillage (http://www.startupvillage.fr).

Avec près de 90 000 abonnés sur Twitter, Alain anime une source et un relai d’informations pertinentes pour une veille technologique autour du Digital.

 

Software Craftsmanship : les bases
Formation animée par Christophe MARCHANDDans cette journée de formation, vous apprendrez les bases du Software Craftsmanship avec Christophe Marchand. Cette formation est construite en collaboration avec José Paumard.Elle s’inspire des formations liées au Software Craftsmanship qu’il a lui-même créés et animées et qui sont dispensées par OXiane.Chaque concept introduit sera mis en pratique par la réalisation d’un Kata, réalisé soit en MOB programming, soit en autonomie. Ces Katas seront déroulés en Java mais il n’est pas nécessaire de maîtriser ce langage pour suivre cette
formation. Les groupes formés par Christophe comportent régulièrement des développeurs JavaScript, .Net, Kotlin ou Scala.Public de la formationDéveloppeurPré-requis

  • Développer en Java (à défaut, maitrise d’un langage orienté objet)
  • Venir avec sa propre machine de développement avec : IDE Java, JDK 17, Maven 3.6
  • Disposer des accès à Maven Central (https://repo1.maven.org/maven2)
  • Pouvoir cloner depuis Github, Bitbucket ou GitLab

Objectifs

  • Découvrir les pratiques du Clean Code
  • Maîtriser les différentes étapes du développement TDD
  • Découvrir les principes du refactoring
  • Apprendre les bases du refactoring de code legacy

Programme

Les pratiques du Clean Code

  • Test Driven Development
  • Écriture de tests métier avec Gherkin et Cucumber
  • Règles de travail sur du Code Legacy
  • Mise en oeuvre par la pratique de Katas

Le refactoring

  • Les grands principes du refactoring
  • Les tests
  • L’extraction de méthode
  • L’inlining
  • Le nommage des variables et des méthodes
  • L’introduction de Design Patterns

A propos de Christophe MARCHAND

Christophe est développeur Java depuis 2000. Ses débuts dans l’industrie lui donnent le goût pour les belles réalisations de qualité. Dans le monde documentaire, Christophe met en place les chaînes d’intégration continue dans des langages où cela se faisait peu, participe au développement de frameworks OpenSource pour les tests unitaires dans les langages XSLT, XQuery et Schematron ; il participe à la définition de la nouvelle version du langage XProc 3.0 avec un Community Group du W3C. Plongé dans le monde du Software Craftmanship par José Paumard, il anime aujourd’hui des formations chez OXiane autour de Java, du Craft, des outils d’intégration continue, et de la qualité de code en général.

 

Progressive Web App – PWA, la synthèse
Séminaire animé par Nicolas HOIZEYLa notion de « Progressive Web App » (PWA) est encore très récente. Elle consiste à mettre en œuvre un ensemble de nouveaux standards du Web pour apporter aux sites et applications Web les capacités jusqu’ici réservées aux applications mobiles natives ou hybrides : installation simple, performance, fonctionnement offline, notifications, etc. Cette approche peut être structurante pour un projet web responsive (ou exclusivement mobile) car elle demande une réflexion en amont pour assurer une bonne conception.Ce séminaire apporte de manière synthétique les clés des Progressive Web Apps, de leur historique à leurs caractéristiques fonctionnelles et techniques, jusqu’aux contraintes et solutions de mise en œuvre.Public de la formationToute personne partie prenante dans l’élaboration d’un projet mobile Web ou natif, ou souhaitant simplement comprendre l’importance des Progressive Web AppsPré-requisCulture Web et mobileObjectifs

  • Appréhender l’état de l’art des Progressive Web Apps
  • Connaître les différentes stratégies de mise en oeuvre des Progressive Web Apps
  • Appréhender les impacts des Progressive Web Apps dans leurs stratégies digitale et mobile

Programme

Introduction

  • Petit retour sur l’histoire de la mobilité
  • L’impact de la mobilité sur le Web
  • Comparatif forces/faiblesses entre applications mobiles natives et Web

Les composants de base des PWA

  • Quelques API Web récentes bien utiles : fetch, IndexedDB
  • Un proxy dans le navigateur avec les Service Workers
  • La sécurité imposée avec HTTPS
  • Quel support dans les navigateurs ?
  • La dimension « Progressive » dans les PWA

Principales fonctionnalités des PWA

  • Accès direct à l’application sans installation
  • Installation en local de l’application avec le Web App Manifest et la Web App Install Banner
  • Lancement instantané et rapidité de fonctionnement avec l’architecture app-shell
  • Fonctionnement même sans réseau (offline) avec les Service Workers
  • Notifications avec l’API Push
  • Mise à jour en tâche de fond avec Background Sync

Outils pour la mise en œuvre

  • Bibliothèques
  • Composants et frameworks facilitant le développement : Workbox (ex sw-precache), frameworks intégrant de base les Service Workers
  • Outils de développement et débogage : devtools des navigateurs, Lighthouse

Autres nouvelles capacités web, potentiellement utiles aux PWA

  • Paiement simplifié avec l’API Payment Request
  • Lecture de QR code avec les API getUserMedia/Stream et Shape Detection
  • Réalité virtuelle

A propos de Nicolas HOIZEY

De formation ingénieur (EISTI), Nicolas a travaillé deux ans comme responsable technique de plates-formes temps réel de flux boursiers, un an comme chef de projet de développement d’applications Web
collaboratives, puis il est devenu analyste en R&D (web services, gestion de contenu web, mobilité, logiciel libre, etc.), avant de participer en 2001 à la création de Clever Age.
Nicolas intervient en clientèle pour des missions de conseil (choix de technologies et solutions, définition d’architectures back end et front end, cadrage de projet, etc.) sur de multiples sujets : e-commerce et omnicanal, gestion de contenus Web, intranets, qualité Web, performance, Responsive Web Design, Progressive Web Apps, etc.
Nicolas anime de nombreux séminaires et formations pratiques destinés aux maîtrises d’ouvrage et maîtrises d’œuvre. Nicolas intervient également dans des conférences, dont Gartner, Benchmark Group, École Polytechnique, Microsoft TechDays, Web UX, Paris Web, etc.

 

Domain Driven Design : les bases du DDD à travers un retour d’expérience
Séminaire animé par Thierry VERCRUYSSERejoignez-nous pour une journée de séminaire et retour d’expérience de découverte du Domain-Driven Design !Le “DDD” permet de créer sur le long terme des logiciels de gestion sur des sujets complexes, par le biais d’une approche centrée sur le métier.Cette journée s’adresse à toute personne du métier du logiciel désirant saisir les concepts clefs du DDD.Public de la formationTout public dans le monde de la création de logiciel : lead dev, product owner, architecte logiciel, architecte d’entreprise, business analyst, scrum master…Pré-requisPas d’expérience en développement requiseObjectifsComprendre les grands principes du DDD, les principaux patterns tactiques et stratégiquesProgramme

Matin

  • Introduction : place et enjeux du DDD
  • Le DDD Exploratoire – à la découverte des domaines

Après-midi

  • Le DDD Stratégique – les cibles d’architecture et structuration des équipes projet
  • Le DDD Tactique – vers la conception logicielle
  • Quiz & Wrap up

A propos de Thierry VERCRUYSSE

Thierry est consultant en architecture des systèmes d’information chez Clever Age avec plus de 15 ans d’expérience dans les domaines B2B/B2C, chaîne data client, chaîne data produit, architectures orientés services, intégration et data platforms. Il participe en conseil en amont des projets et accompagne les équipes dans la mise en œuvre des principes de conception DDD sur des projets de refontes et création de nouveaux produits ainsi que la DSI dans l’élaboration de stratégies d’architecture cibles…

 

Le web a mal tourné, reprenons le contrôle avec l’écoconception et le Numérique Responsable
Séminaire animé par Laurent DEVERNAYCette formation, sur le thème des GreenIT, propose d’aborder le sujet de l’écoconception et du Numérique Responsable sous une forme à la fois théorique et pratique, par des exemples concrets. Une part importante de la formation est consacrée à des activités (observation, mesures, retour d’expérience…)Public de la formationTout public dans le monde de la création logiciellePré-requis

  • Bases de développement web (HTML/CSS voire JS) souhaitées
  • Disposer d’un navigateur : de préférence une version récente de Chrome ou Firefox
  • si possible avec l’extension GreenIT-Analysis : https://chrome.google.com/webstore/detail/greenit-analysis/mofbfhffeklkbebfclfaiifefjflcpad?hl=fr
  • Accès aux sites web principalement utilisés :
    app.greenspector.com, ecoindex.fr, websitecarbon.com, https://www.webpagetest.org/
    https://ecoresponsable.numerique.gouv.fr/publications/referentiel-general-ecoconception/, https://github.com/cnumr/best-practices/, https://gr491.isit-europe.org/

Objectifs

  • Comprendre la notion de numérique responsable et plus particulièrement les impacts environnementaux du numérique
  • Identifier et réduire les impacts d’un site web

Programme

Matin

  • Introduction au Numérique Responsable et à ses différents domaines : quels impacts pour chacun et comment y remédier ?
  • Présentation, discussions et activités
  • Les grands principes de l’écoconception : bonnes pratiques et mesures
  • Définition, exemples et retours d’expérience

Après-midi

  • Application au cas des sites web : mener un audit, établir un plan d’action et définir un budget environnemental
  • Démonstration et mise en pratique

A propos de Laurent DEVERNAY

Tombé dans le Numérique Responsable il y a plusieurs années déjà, Laurent anime des ateliers de sensibilisation et cours sur le sujet auprès de la Mission Locale 31, d’organismes de formation, d’écoles et d’universités. Il a travaillé sur l’intégration du sujet dans les formations Simplon, sous ses divers aspects (accessibilité, écoconception, performance, économie de l’attention, données personnelles, etc).
Il a pris part à l’organisation d’un événement autour de l’Impact Écologique du Numérique, en collaboration avec la Maison de l’Avenir sur trois éditions consécutives.

Laurent contribue au collectif GreenIT et à l’INR (Institut du Numérique Responsable). Il a notamment contribué à la création d’un référentiel de conception responsable de services numériques, le GR491. C’est dans ce cadre qu’il a pu relire le Référentiel Général d’Ecoconception de Services Numériques de la DINUM. Il a aussi rejoint le collectif GoodIT! qui réunit des experts cherchant à sensibiliser sur le sujet du Numérique Responsable autour de Toulouse.

En parallèle de tout cela, Laurent travaille sur le sujet avec le W3C afin d’établir des guidelines et des standards pour le web.

Il travaille depuis fin 2021 pour Greenspector afin de pouvoir se consacrer à plein temps au sujet du Numérique Responsable et en particulier à l’écoconception appliquée au domaine du web.