Formation Programmation Réactive avec Reactor

Notée : (28)*

Apprenez la programmation réactive en développant des applications robustes grâce aux Reactive Streams et Reactor lors de cette formation orientée pratique de 3 jours !

Prix (Formation inter-entreprise)

1800€ HT / personne

Durée

3 jours

Dates

Nous pouvons organiser des sessions à d'autres dates ou dans d'autres villes (Bordeaux, Lille, Lyon, Marseille, Montpellier, Nantes, Nice, Paris, Strasbourg, Toulouse...)

Cette formation Programmation Réactive avec Reactor se concentre sur la programmation réactive en Java. Ce paradigme de programmation s'est démocratisé pour traiter de nombreuses problématiques rencontrées dans le développement d'applications modernes, telles que la tolérance à la panne, la montée en charge ou encore la vitesse de réponse du système.

La formation Programmation Réactive avec Reactor s'adresse à des développeur·se·s ayant des notions en programmation fonctionnelle qui souhaitent maîtriser la programmation réactive de bout en bout. Cela se fera par une approche essentiellement pratique en étudiant les flux réactifs (Reactive Streams).

Lors de cette formation, vous utiliserez la librairie Reactor pour savoir à son terme :

  • traiter des données dont le volume est non prédéterminé
  • augmenter la maintenabilité de votre application
  • avoir un code uniformisé, de la récupération de la donnée jusqu'à l'affichage

A l'issue de la formation, les participant·e·s repartiront avec les supports de formation ainsi que les corrigés des TPs.

Cette formation utilise la version 17 de Java, et la version 3 de Reactor.

Installations nécessaires sur votre machine : JDK 17

Envie d'aller plus loin ?

Découvrez nos formations de l'écosystème Java :
- la formation Java Spring Batch pour développer des batchs performants et robustes,
- la formation Java Spring Web pour comprendre et utiliser le framework Spring,
- et enfin la formation Apache Kafka pour mettre en œuvre le broker de message et la plate-forme d'event streaming Kafka.

Les objectifs

  • Comprendre l'intérêt de la programmation réactive
  • Connaître la spécification Reactive Stream et ses implémentations (Reactor, RxJava, Java 9 Flow)
  • Maîtriser la librairie Reactor
  • Traiter des problèmes de programmation concurrente
  • S'appuyer sur un modèle de communication asynchrone

Pré-requis

  • Avoir des notions en programmation fonctionnelle
  • Avoir des bases en Java et notamment connaître l'utilisation des lambdas
  • Connaître le fonctionnement des threads
  • Ordinateur portable à apporter

Le programme de la formation Programmation Réactive avec Reactor

Jour 1 : Découverte des Reactive Stream et prise en main de Reactor

Introduction
  • Intérêt de la programmation réactive
  • Historique de la programmation réactive
  • Tour d'horizon de l'écosystème
La spécification
  • Publisher et Subscriber
  • Flux d’événements asynchrone
  • Implémentation par l'API Flow
Sur quoi s'appuie Reactive Stream
  • La programmation fonctionnelle
  • Utilisation des lambdas
  • Pattern Observer
  • Les opérateurs
Reactor
  • Introduction
  • Abonnement avec subscribe()
  • Gestion de la contre-pression (backpressure)
  • Abstraction du threading model

Jour 2 : Concepts avancés

Debug, tests et observabilité
  • Écrire des scénarii de test
  • Effectuer des assertions
  • Émettre des événements et gérer le temps
  • Gérer ses métriques avec Micrometer
Threading
  • Notion de Scheduler
  • Différences entre subscribeOn() et publishOn()
  • Créer et choisir le bon Scheduler
Les Publishers de Reactor
  • "eager" / "lazy" : comparatifs entre just(), defer() et ses dérivés
  • "push" vs "pull" : stratégies de gestion de la contre-pression
  • "hot" vs "cold" : cas d'usage avec les processors
  • Comparatif avec RxJava
Zoom sur les opérateurs
  • Transformer et filtrer les événements
  • Combiner plusieurs sources
  • Écrire son propre opérateur

Jour 3 : Cas concrets et développement d'applications

Cas pratiques
  • Reactor et la concurrence
  • Traitement des erreurs
  • Gestion du contexte en environnement multi-threadé
  • Performance vs Résilience
Architecture
  • Communication Client / Server / Base de données
  • Gestion des batchs
  • Reactive Stream dans les microservices
  • Spring Webflux, Spring Data Reactive et R2DBC

Mises en pratique :

  • Manipulation des interfaces Subscriber et Publisher
  • Mise en place de la librairie Reactor
  • Utilisation des Schedulers
  • Écriture de tests unitaires avec StepVerifier
  • Utilisation de différents opérateurs
  • Création d'une application WEB réactive avec Spring Boot, MongoDB/PostgresSQL et RSocket
  • Utilisation du service Google PubSub dans une architecture réactive

Télécharger le programme

Le(s) formateur(s)

Guillaume DROUET

Guillaume DROUET

Guillaume est développeur depuis 10 ans et spécialisé dans le monde des APIs WEB. Il a travaillé en tant que consultant et formateur en ESN puis en startup dans la région Lilloise.

Aujourd'hui, il est freelance et intervient en tant que tech lead chez ses clients où il les conseille au quotidien sur des problématiques de qualité du code, d'architecture et de performance applicative.

Il aime partager et apprendre via différents axes, c'est pour cela que il donne des formations en parallèle de ses missions. A ce titre, il est également vacataire à l'Université depuis 2014.

Voir son profil détaillé

A propos de Human Coders

Human Coders c'est un centre de formation pour développeurs avec :

  • une certification Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • de nombreux clients qui nous font confiance depuis des années
  • un manifeste pour garantir des formations à taille humaine, des formateurs passionnés, de véritables workshops...
  • 103 formations au catalogue, 1453 sessions depuis nos débuts en 2012 avec une moyenne de satisfaction de 4,6/5
  • la possibilité de vous proposer un accompagnement personnalisé ou du conseil après la formation

9 témoignages

Formation riche sur des concepts pas toujours évidents. Bravo pour la pédagogie et la capacité à rendre le sujet clair. Bon équilibre entre t...

Formation riche sur des concepts pas toujours évidents. Bravo pour la pédagogie et la capacité à rendre le sujet clair. Bon équilibre entre théorie et travaux pratiques. Les TP sont bien pensés pour vraiment apprendre et comprendre et ne pas juste appliquer du copier-coller de support.

Voir plus

Cours très bien structuré et formateur en parfaite maîtrise de son sujet. Beaucoup d'aspects sont passés en revue, certaines leçons font écho ...

Cours très bien structuré et formateur en parfaite maîtrise de son sujet. Beaucoup d'aspects sont passés en revue, certaines leçons font écho à des précédentes pour assurer un rappel de ce qui a été vu, les TP sont parfaitement en phase avec l'étape en cours. Formation vraiment excellente !

Voir plus

Programme très complet et assez approfondi. Niveau de difficulté un peu élevé. Nécessite un bon niveau initial en Java.

Programme très complet et assez approfondi. Niveau de difficulté un peu élevé. Nécessite un bon niveau initial en Java.

La formation était très complète mais certains exercices étaient très difficiles.

La formation était très complète mais certains exercices étaient très difficiles.

Très bonne formation. Excellente communication.

Très bonne formation. Excellente communication.

Formation très intéressante, durée idéale pour bien appréhender tous les concepts.

Formation très intéressante, durée idéale pour bien appréhender tous les concepts.

Formation complète et très intéressante. Il est je pense nécessaire de maitriser parfaitement java et notamment la programmation fonctionnell...

Formation complète et très intéressante. Il est je pense nécessaire de maitriser parfaitement java et notamment la programmation fonctionnelle pour appréhender plus facilement le contenu très riche de cette formation.

Voir plus

Formation très riche et complète. Merci au formateur, on sent l'expérience qui se cache derrière.

Formation très riche et complète. Merci au formateur, on sent l'expérience qui se cache derrière.

Formation complète et poussée. Cependant, assez dense. Pas toujours simple d'engranger tous les concepts au fil de l'eau ! Réfractaires à la ...

Formation complète et poussée. Cependant, assez dense. Pas toujours simple d'engranger tous les concepts au fil de l'eau ! Réfractaires à la programmation fonctionnelles, passez votre chemin...

Voir plus

Besoin d'aide ?

Vous souhaitez discuter avec nous à propos de votre projet de formation ?
Vous voulez plus d'information sur une formation ou notre fonctionnement ?


Rappel Email

Nos forces

  • Des formations à taille humaine
  • Des formateurs passionnés
  • Des véritables workshop
Accéder au Manifeste

Nos clients

Formation Programmation Réactive avec Reactor

Notée : (28)*

Apprenez la programmation réactive en développant des applications robustes grâce aux Reactive Streams et Reactor lors de cette formation orientée pratique de 3 jours !

Cette formation Programmation Réactive avec Reactor se concentre sur la programmation réactive en Java. Ce paradigme de programmation s'est démocratisé pour traiter de nombreuses problématiques rencontrées dans le développement d'applications modernes, telles que la tolérance à la panne, la montée en charge ou encore la vitesse de réponse du système.

La formation Programmation Réactive avec Reactor s'adresse à des développeur·se·s ayant des notions en programmation fonctionnelle qui souhaitent maîtriser la programmation réactive de bout en bout. Cela se fera par une approche essentiellement pratique en étudiant les flux réactifs (Reactive Streams).

Lors de cette formation, vous utiliserez la librairie Reactor pour savoir à son terme :

  • traiter des données dont le volume est non prédéterminé
  • augmenter la maintenabilité de votre application
  • avoir un code uniformisé, de la récupération de la donnée jusqu'à l'affichage

A l'issue de la formation, les participant·e·s repartiront avec les supports de formation ainsi que les corrigés des TPs.

Cette formation utilise la version 17 de Java, et la version 3 de Reactor.

Installations nécessaires sur votre machine : JDK 17

Envie d'aller plus loin ?

Découvrez nos formations de l'écosystème Java :
- la formation Java Spring Batch pour développer des batchs performants et robustes,
- la formation Java Spring Web pour comprendre et utiliser le framework Spring,
- et enfin la formation Apache Kafka pour mettre en œuvre le broker de message et la plate-forme d'event streaming Kafka.

Les objectifs

  • Comprendre l'intérêt de la programmation réactive
  • Connaître la spécification Reactive Stream et ses implémentations (Reactor, RxJava, Java 9 Flow)
  • Maîtriser la librairie Reactor
  • Traiter des problèmes de programmation concurrente
  • S'appuyer sur un modèle de communication asynchrone

Pré-requis

  • Avoir des notions en programmation fonctionnelle
  • Avoir des bases en Java et notamment connaître l'utilisation des lambdas
  • Connaître le fonctionnement des threads
  • Ordinateur portable à apporter

Le programme de la formation Programmation Réactive avec Reactor

Jour 1 : Découverte des Reactive Stream et prise en main de Reactor

Introduction
  • Intérêt de la programmation réactive
  • Historique de la programmation réactive
  • Tour d'horizon de l'écosystème
La spécification
  • Publisher et Subscriber
  • Flux d’événements asynchrone
  • Implémentation par l'API Flow
Sur quoi s'appuie Reactive Stream
  • La programmation fonctionnelle
  • Utilisation des lambdas
  • Pattern Observer
  • Les opérateurs
Reactor
  • Introduction
  • Abonnement avec subscribe()
  • Gestion de la contre-pression (backpressure)
  • Abstraction du threading model

Jour 2 : Concepts avancés

Debug, tests et observabilité
  • Écrire des scénarii de test
  • Effectuer des assertions
  • Émettre des événements et gérer le temps
  • Gérer ses métriques avec Micrometer
Threading
  • Notion de Scheduler
  • Différences entre subscribeOn() et publishOn()
  • Créer et choisir le bon Scheduler
Les Publishers de Reactor
  • "eager" / "lazy" : comparatifs entre just(), defer() et ses dérivés
  • "push" vs "pull" : stratégies de gestion de la contre-pression
  • "hot" vs "cold" : cas d'usage avec les processors
  • Comparatif avec RxJava
Zoom sur les opérateurs
  • Transformer et filtrer les événements
  • Combiner plusieurs sources
  • Écrire son propre opérateur

Jour 3 : Cas concrets et développement d'applications

Cas pratiques
  • Reactor et la concurrence
  • Traitement des erreurs
  • Gestion du contexte en environnement multi-threadé
  • Performance vs Résilience
Architecture
  • Communication Client / Server / Base de données
  • Gestion des batchs
  • Reactive Stream dans les microservices
  • Spring Webflux, Spring Data Reactive et R2DBC

Mises en pratique :

  • Manipulation des interfaces Subscriber et Publisher
  • Mise en place de la librairie Reactor
  • Utilisation des Schedulers
  • Écriture de tests unitaires avec StepVerifier
  • Utilisation de différents opérateurs
  • Création d'une application WEB réactive avec Spring Boot, MongoDB/PostgresSQL et RSocket
  • Utilisation du service Google PubSub dans une architecture réactive

Télécharger le programme

Le(s) formateur(s)

Guillaume DROUET

Guillaume DROUET

Guillaume est développeur depuis 10 ans et spécialisé dans le monde des APIs WEB. Il a travaillé en tant que consultant et formateur en ESN puis en startup dans la région Lilloise.

Aujourd'hui, il est freelance et intervient en tant que tech lead chez ses clients où il les conseille au quotidien sur des problématiques de qualité du code, d'architecture et de performance applicative.

Il aime partager et apprendre via différents axes, c'est pour cela que il donne des formations en parallèle de ses missions. A ce titre, il est également vacataire à l'Université depuis 2014.

Voir son profil détaillé

A propos de Human Coders

Human Coders c'est un centre de formation pour développeurs avec :

  • une certification Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • de nombreux clients qui nous font confiance depuis des années
  • un manifeste pour garantir des formations à taille humaine, des formateurs passionnés, de véritables workshops...
  • 103 formations au catalogue, 1453 sessions depuis nos débuts en 2012 avec une moyenne de satisfaction de 4,6/5
  • la possibilité de vous proposer un accompagnement personnalisé ou du conseil après la formation

9 témoignages

Formation riche sur des concepts pas toujours évidents. Bravo pour la pédagogie et la capacité à rendre le sujet clair. Bon équilibre entre t...

Formation riche sur des concepts pas toujours évidents. Bravo pour la pédagogie et la capacité à rendre le sujet clair. Bon équilibre entre théorie et travaux pratiques. Les TP sont bien pensés pour vraiment apprendre et comprendre et ne pas juste appliquer du copier-coller de support.

Voir plus

Cours très bien structuré et formateur en parfaite maîtrise de son sujet. Beaucoup d'aspects sont passés en revue, certaines leçons font écho ...

Cours très bien structuré et formateur en parfaite maîtrise de son sujet. Beaucoup d'aspects sont passés en revue, certaines leçons font écho à des précédentes pour assurer un rappel de ce qui a été vu, les TP sont parfaitement en phase avec l'étape en cours. Formation vraiment excellente !

Voir plus

Programme très complet et assez approfondi. Niveau de difficulté un peu élevé. Nécessite un bon niveau initial en Java.

Programme très complet et assez approfondi. Niveau de difficulté un peu élevé. Nécessite un bon niveau initial en Java.

La formation était très complète mais certains exercices étaient très difficiles.

La formation était très complète mais certains exercices étaient très difficiles.

Très bonne formation. Excellente communication.

Très bonne formation. Excellente communication.

Formation très intéressante, durée idéale pour bien appréhender tous les concepts.

Formation très intéressante, durée idéale pour bien appréhender tous les concepts.

Formation complète et très intéressante. Il est je pense nécessaire de maitriser parfaitement java et notamment la programmation fonctionnell...

Formation complète et très intéressante. Il est je pense nécessaire de maitriser parfaitement java et notamment la programmation fonctionnelle pour appréhender plus facilement le contenu très riche de cette formation.

Voir plus

Formation très riche et complète. Merci au formateur, on sent l'expérience qui se cache derrière.

Formation très riche et complète. Merci au formateur, on sent l'expérience qui se cache derrière.

Formation complète et poussée. Cependant, assez dense. Pas toujours simple d'engranger tous les concepts au fil de l'eau ! Réfractaires à la ...

Formation complète et poussée. Cependant, assez dense. Pas toujours simple d'engranger tous les concepts au fil de l'eau ! Réfractaires à la programmation fonctionnelles, passez votre chemin...

Voir plus

* Nombre de personnes ayant répondu au questionnaire de satisfaction sur cette formation depuis 2012