Dans la fenêtre d’impression, choisissez « Enregistrer en PDF » comme destination.
Réf. JAV-EXP
Java - Développer des applications avancées
Langages & Développement Logiciel
Durée
28 à 35 heures (4 à 5 jours) selon le format
Modalités
Présentiel, Classe à distance
Reconnaissance
Formation non certifiante (attestation de fin de formation)
Format de vente
Inter-entreprise ou Intra-entreprise
Délai d’accès
Inter : jusqu’à 5 jours ouvrés avant la session ; intra : en moyenne 15 jours ouvrés après l’acceptation du devis
Tarif intra
Sur devis
Pourquoi suivre cette formation
Java reste au cœur des systèmes d'entreprise. Cette formation vous apprend à concevoir des applications Java robustes : architecture propre, traitements parallèles, accès aux données, API REST, performance, tests et déploiement.
À l’issue de cette formation, les participants seront capables de
Structurer des architectures logicielles découplées et évolutives
Utiliser pleinement la programmation fonctionnelle (Streams, Lambdas)
Écrire du code asynchrone et concurrent performant (Virtual Threads)
Optimiser les accès aux données relationnelles avec JPA et Hibernate
Concevoir des API REST professionnelles et documentées
Diagnostiquer les fuites de mémoire et optimiser les performances de la JVM
Sécuriser la non-régression grâce aux tests unitaires et d'intégration avancés
IMPACTTerrain35 heures (5 jours) · dont une journée en décalé3 225 € HTpar participant (inter-entreprises)
Chaque format reprend le précédent et y ajoute des journées.
Public visé
Développeurs Java, ingénieurs logiciels, architectes d'applications ou lead développeurs souhaitant approfondir leurs compétences sur l'écosystème Java moderne.
Prérequis
Maîtriser la syntaxe de base de Java et les concepts fondamentaux de la programmation orientée objet (classes, héritage, interfaces).
Prérequis techniques à distance
La classe virtuelle se tient sur Microsoft Teams : AMBIA fournit à chaque participant un compte pour la durée de la formation. En intra-entreprise, elle peut aussi se tenir sur l’outil que l’entreprise utilise déjà, par exemple Zoom ou Google Meet.
Le participant se connecte depuis un ordinateur équipé d’une caméra, d’un micro, d’un accès à internet et d’un navigateur à jour, dans un lieu calme. Si la formation le demande, le formateur donne accès à un poste de travail à distance, depuis le navigateur.
Pendant la formation, l’assistance technique répond à support@ambia-skills.fr.
Objectifs pédagogiques
Identifier les principes de conception SOLID et les nouveautés majeures de Java moderne.
Expliquer le fonctionnement de la mémoire de la JVM et des différents ramasse-miettes (Garbage Collectors).
Mettre en œuvre des pipelines de traitement fonctionnel complexes via l'API Stream.
Diagnostiquer les problèmes de concurrence et de performance (deadlocks, fuites de mémoire, requêtes N+1 JPA).
Auditer la qualité et la couverture de code d'une suite de tests JUnit / Mockito.
Concevoir, conteneuriser avec Docker et déployer une application Java robuste et performante.
Programme détaillé
Jour 1ACTION
Matin
Architecture logicielle et code propre (Clean Code) en Java
Maîtriser les principes du Clean Code et l'organisation en couches pour concevoir des applications maintenables et robustes.
Organiser son code en respectant les principes SOLID.
Mettre en œuvre le patron de conception Injection de Dépendances (IoC).
Configurer et découpler son application grâce aux architectures hexagonales ou en couches (N-Tier).
Atelier pratique
Refactoring pas-à-pas d'une application Java monolithique rigide (« code spaghetti ») pour la rendre modulaire et découplée.
Cas métier
Core Banking - Conception de l'architecture d'un moteur de transactions financières.
Compétence acquise
Être capable de concevoir et d'auditer l'architecture modulaire d'une application professionnelle Java.
Livrable
Squelette d'architecture propre, découplée et prête pour l'injection de dépendances.
Après-midi
Programmation fonctionnelle, Streams et Optional
Exploiter la puissance de la programmation fonctionnelle Java pour écrire un code concis, lisible et sécurisé contre les erreurs de pointeurs nuls.
Manipuler les expressions Lambda et les références de méthodes.
Maîtriser l'API Stream pour filtrer, transformer et agréger des collections de données complexes.
Sécuriser la gestion de l'absence de valeur grâce à la classe Optional.
Atelier pratique
Traitement avancé de flux de données (pipeline de filtres, groupements complexes et transformations de type Map/Reduce).
Cas métier
Analyse de Données Logistiques - Filtrage, tri et agrégation en temps réel d'un flux d'expéditions de colis.
Compétence acquise
Maîtriser le paradigme fonctionnel de Java pour manipuler les structures de données de façon élégante et fluide.
Livrable
Module de traitement de données optimisé, sans boucles for traditionnelles ni vérifications if (x != null).
Jour 2ACTION
Matin
Concurrence et programmation multithread (Virtual Threads)
Concevoir des applications hautement performantes et scalables en gérant la concurrence de manière moderne et sécurisée.
Maîtriser le cycle de vie des threads traditionnels et les verrous (ReentrantLock, structures thread-safe).
Implémenter l'asynchronisme avec l'API CompletableFuture.
Découvrir et intégrer les Virtual Threads de Java moderne (Project Loom) pour optimiser l'utilisation du processeur.
Atelier pratique
Mise en œuvre d'un pool d'exécution concurrent pour traiter des tâches lourdes en parallèle sans bloquer le thread principal.
Cas métier
Moteur de Réservation - Gestion de la concurrence d'accès lors de réservations simultanées de billets de transport.
Compétence acquise
Être capable de développer une logique asynchrone performante et tolérante aux accès concurrents massifs.
Livrable
Service d'exécution asynchrone hautement scalable, optimisé par les Virtual Threads.
Après-midi
Accès aux données avancé avec JPA et Hibernate
Configurer et optimiser de manière Premium la persistance des données relationnelles avec JPA et Hibernate.
Maîtriser les correspondances d'héritage et les relations complexes (One-to-Many, Many-to-Many bidirectionnelles).
Gérer l'état des entités (transient, persistent, detached) et le mécanisme de mise en cache.
Écrire des requêtes performantes (JPQL, Criteria API) et auditer les requêtes SQL générées.
Atelier pratique
Résolution du piège classique de performance « N+1 SELECT » et mise en place de stratégies de chargement paresseux (Lazy Loading).
Cas métier
Catalogue E-Commerce - Gestion des stocks et des fiches produits complexes avec chargement optimisé des avis clients associés.
Compétence acquise
Savoir concevoir une couche de persistance performante, exempte de fuites de mémoire ou de lenteurs d'accès à la base de données.
Livrable
Modèle de données JPA hautement optimisé, testé et validé avec zéro requête redondante.
Jour 3ACTION
Matin
API REST avancées et validation des données
Concevoir, structurer et sécuriser des Web Services RESTful robustes répondant aux standards actuels de l'industrie.
Structurer des contrôleurs REST respectant scrupuleusement les niveaux de maturité de Richardson.
Gérer de manière centralisée les exceptions de l'application et les codes de retour HTTP associés.
Valider les données d'entrée via l'API Bean Validation.
Atelier pratique
Création d'une API REST complète dotée d'une gestion globale d'erreurs et de filtres d'interception.
Cas métier
API de Facturation - Conception des points d'accès pour l'envoi, la validation et la récupération de factures en entreprise.
Compétence acquise
Être capable de structurer, documenter et exposer des endpoints RESTful professionnels.
Livrable
API REST Java fonctionnelle, sécurisée par de la validation d'entrée et documentée via OpenAPI.
Après-midi
Gestion de la mémoire, réglage de la JVM et performance
Comprendre le fonctionnement intime de la machine virtuelle Java (JVM) pour identifier et corriger les goulots d'étranglement de performance.
Maîtriser l'organisation de la mémoire de la JVM (Stack vs Heap, Metaspace).
Analyser le comportement des différents Garbage Collectors (G1, ZGC).
Diagnostiquer les fuites de mémoire (Memory Leaks) à l'aide d'outils de profilage professionnels.
Atelier pratique
Analyse et résolution en direct d'une erreur d'essoufflement de la mémoire de type OutOfMemoryError sur une application volontairement corrompue.
Cas métier
Plateforme de Streaming - Profilage et réduction de l'empreinte mémoire d'une application traitant des volumes massifs de métadonnées.
Compétence acquise
Savoir profiler une application Java en temps réel et ajuster finement les options de démarrage de la JVM.
Livrable
Rapport de diagnostic de performance de l'application avec correctifs méthodologiques appliqués.
Jour 4ACTION
Matin
Tests unitaires avancés et mocking
Écrire des suites de tests de haute qualité avec JUnit 5 et Mockito pour garantir une régression zéro lors des évolutions logicielles.
Maîtriser le cycle de vie de JUnit 5 et l'utilisation des assertions avancées.
Mettre en œuvre le bouchonnage (Mocking) avec Mockito pour isoler les composants testés.
Utiliser des techniques d'injection de dépendances simulées pour tester des cas d'erreurs complexes ou exceptionnels.
Atelier pratique
Écriture d'une suite de tests unitaires complète avec couverture de code maximale sur des algorithmes métiers complexes.
Cas métier
Moteur de Calcul d'Assurance - Écriture des tests d'une logique d'attribution de primes de sinistres dépendante de plusieurs web-services externes.
Compétence acquise
Être en mesure d'architecturer et d'automatiser des campagnes de tests unitaires isolées, rapides et fiables.
Livrable
Suite de tests JUnit 5 / Mockito robuste avec indicateur de couverture de code optimal.
Après-midi
Tests d'intégration et déploiement en conteneurs
Configurer des tests d'intégration réalistes s'appuyant sur de vraies infrastructures et préparer l'application pour le déploiement cloud (Docker).
Écrire des tests d'intégration avec Testcontainers pour lancer des bases de données réelles à la volée pendant la phase de build.
Conteneuriser une application Java de manière optimale à l'aide de fichiers Docker multi-étapes (Multi-stage builds).
Intégrer les variables d'environnement externes pour rendre l'image hautement configurable.
Atelier pratique
Rédaction d'un script Dockerfile optimisé et exécution d'une suite complète de tests d'intégration connectée à une vraie base de données de test SQL conteneurisée.
Cas métier
Déploiement Industriel - Automatisation du packaging et de l'intégration continue d'un microservice de gestion des expéditions de commandes.
Compétence acquise
Être autonome pour valider l'intégration de son code Java avec de vrais services tiers et pour packager son application sous forme de conteneur d'entreprise prêt pour la production.
Livrable
Image Docker optimisée et sécurisée de l'application Java avancée, prête au déploiement en production.
Jour 5 · en décaléIMPACT
Matin
Diagnostic de l'architecture Java et de la persistance JPA
Analyser le modèle de données JPA et Hibernate et optimiser les requêtes SQL produites (problème du N+1 SELECT).
Analyse du code Java de l'entreprise : repérage des requêtes JPA inefficaces, jointures de chargement (fetch join), DTO et réglage du pool de connexions.
Après-midi
Sécurisation de l'API REST avec JWT
Configurer les filtres de sécurité et sécuriser les endpoints par jetons JWT.
Protection des ressources sensibles de l'API : chaîne de filtres de sécurité, authentification sans état par JWT et validation de la documentation OpenAPI.
Les ateliers et cas métier de ce programme pourront être adaptés par le consultant-formateur selon les besoins, le niveau et les prérequis des participants, pour favoriser l’atteinte des objectifs pédagogiques.
Méthodes et moyens pédagogiques
Méthodes mobilisées
Pédagogie active et immersive basée sur des simulations d'architecture complexes. Alternance de démonstrations techniques ciblées, de phases de programmation en autonomie (live coding) et de revues critiques de code collectives (code review).
Moyens techniques
Un poste informatique individuel par participant, environnement Java (JDK moderne), IDE professionnel (IntelliJ IDEA / Eclipse), Docker installé, accès aux espaces numériques AMBIA et fourniture d'un dépôt de code contenant tous les scénarios de test.
Moyens humains
Formation animée par un consultant-formateur expert senior, architecte Java en activité et spécialiste des architectures cloud-natives et des problématiques de performance de la JVM.
Modalités d’évaluation
Évaluation diagnostique
Questionnaire d'auto-évaluation technique envoyé 15 jours avant la session afin d'ajuster les cas métiers aux profils des participants.
Évaluation formative
Évaluation tout au long du parcours à travers les ateliers d'architecture et les revues de code collectives.
Évaluation sommative
Questionnaire de validation des acquis sous forme de QCM en fin de formation et évaluation des livrables de l'atelier de programmation avancée.
Suivi
Feuilles de présence signées par demi-journée, en présentiel comme à distance.
Attestation de fin de formation remise à chaque stagiaire, mentionnant les objectifs, la nature, la durée et les résultats de l’évaluation.
Certificat de réalisation adressé au client ou au financeur.
Questionnaire de satisfaction remis à l’issue de la formation.
Délai d’accès
Inter-entreprises : L’inscription est possible jusqu’à 5 jours ouvrés avant le début de la session, sous réserve des places disponibles.
Intra-entreprise : La formation débute en moyenne 15 jours ouvrés après l’acceptation du devis.
Ce délai peut être adapté selon la disponibilité des sessions, le positionnement du stagiaire et, le cas échéant, l’instruction du dossier de prise en charge par le financeur.
Accessibilité handicap
Nos formations sont adaptables aux personnes en situation de handicap. Veuillez nous contacter pour étudier les aménagements nécessaires.
Référent handicap : accessibilite@ambia-skills.fr. Aucune reconnaissance de la qualité de travailleur handicapé ni aucun justificatif médical n’est exigé.
Indicateurs de résultats
Indicateurs publiés à partir de 3 avis.
Mode de calcul : www.ambia-skills.fr/notre-approche#notes