Formation Vert.x

Développement Web avec Vert.x

La légende prétend que Eclipse Vert.x serait issu d’un croisement entre Node.JS et Java. Ce qui est certain, c’est que c’est une boite à outil qui permet entre autres de développer des applications Web modernes, en mode réactif, sans serveur d’application.

Dans cette formation, vous apprendrez à utiliser les API de Vert.x pour le développement Web. Puis en étudiant ses principales fonctionnalités, vous arriverez à l’utiliser pour mettre en place une architecture réactive.

70% pratique
30% théorie

Informations pratiques

Durée 3 jours
Format Présentiel / Distanciel
Participants 8 personnes max
Certificat Attestation de formation

Public cible

Développeurs Java

Développeurs ayant une bonne connaissance du langage Java et souhaitant apprendre Vert.x pour créer des applications réactives

Architectes logiciels

Architectes souhaitant comprendre les patterns et bonnes pratiques Vert.x pour concevoir des architectures robustes.

Tech leads

Leaders techniques devant évaluer et comprendre Vert.x.

Prérequis

Prérequis obligatoires

  • Connaissance et pratique du dévelopemment Java
  • Fonctionnement du Web
  • Expérience avec Maven ou Gradle
  • Compréhension des bases de données relationnelles et SQL

Environnement technique

Outils de développement

IDE : IntelliJ IDEA, Eclipse IDE
JVM : 17 ou 21 LTS
Base de données : PostgreSQL ou Derby
Outils : Postman

Configuration système

Système : Linux, Windows, MacOS
Mémoire : 8 GB minimum, 16 GB recommandés
Stockage : 1 Go d'espace libre
Docker : pour les services externes (base de données,...)

Programme détaillé

Introduction

  • Avantages de la programmation non-bloquante

  • Techniques de programmation asynchrones en Java : callback, (completable) future, Rx

  • Architecture par thread pool contre architecture par event-loop

  • Champs d’utilisation : Web, IoT, microservices

Premiers pas

  • Définition d’un verticle

  • Démarrage d’un serveur Web

  • Gestion des erreurs

  • Interactions avec l’event bus

Architecture d’une application

  • Threads et exploitation des processeurs

  • Installation et configuration d’un verticle

  • Verticles et découpage métier

  • Intégration de services bloquants avec les service workers

  • Simplification des interactions avec les service proxies

  • Déploiement local ou déploiement distribué

RxJava

  • Programmation par callback contre programmation réactive

  • Principes de l’API RxJava

  • Amélioration de la qualité de service : timeout et retry

Développement Web

  • Serveur HTTP, options avancées

  • Organisation des routes

  • Client HTTP

Intégration

  • Interaction avec le système de fichiers

  • Principaux protocoles : HTTP/1, HTTP/2, WebSocket, MQTT,…

  • Base de données relationnelles avec JDBC

  • Cas particuliers de PosgreSQL et MySQL

  • MongoDB, Kafka

Tests

  • Test unitaire et mock

  • Test d’intégration, par service

Préparation au déploiement

  • Health check

  • Publication de métriques avec Vert.x metrics et Prometheus

  • Service discovery, circuit breaker

  • Déploiement avec Docker, prise en compte des contraintes mémoire et processeur

Objectifs et résultats attendus

Compétences acquises

  • Comprendre les avantages de la programmation non-bloquante et son impact sur la performance des applications.
  • Appliquer les patterns réactifs pour gérer la concurrency et la scalabilité
  • Créer et déployer des verticles Vert.x
  • Utiliser les service workers pour isoler les tâches bloquantes
  • Interagir avec des systèmes externes
  • Écrire des tests unitaires et d'intégration pour Vert.x

Livrables formation

  • Code source de tous les travaux pratiques
  • Projet final complet et fonctionnel
  • Slides de formation en PDF
  • Notes techniques
  • Ressources et liens utiles

Prêt à maîtriser Vert.x ?

Contactez-moi pour organiser cette formation pour votre équipe ou vous inscrire à la prochaine session.

Formation disponible en présentiel ou en distanciel.
Adaptation du contenu possible selon vos besoins spécifiques.