Description
Cette formation Java avancé vous permettra de maîtriser les mécanismes essentiels pour développer des applications performantes, fiables et extensibles dans des environnements multi-threads.
Pendant 3 jours, vous apprendrez à :
- Gérer les accès concurrents
- Programmer avec des APIs asynchrones
- Exploiter des approches réactives modernes comme Reactive Streams et l’API Flow
- Maîtriser la conception modulaire, l’instrumentation du code et les outils de profiling, afin de bâtir des applications évolutives et maintenables.
Grâce à la création d'une application de gestion de tâches, vous mettrez immédiatement en pratique les notions abordées : de la gestion de la concurrence d’accès à la modularisation de l’application en passant par la découverte de la programmation réactive et de la programmation par aspect.
Public
Cet apprentissage Java s'adresse aux développeurs·se·s Java expérimenté·e·s souhaitant approfondir leurs connaissances. Elle est basée sur la version 17 de Java.
Les objectifs
- Comprendre et maîtriser les accès concurrents
- Programmer avec des APIs asynchrones
- Savoir étendre son code
- Débugger efficacement
Pré-requis
- Maîtrise du language Java (POO, collections, lambdas, streams)
- Ordinateur portable à apporter
Le programme de la formation Java avancé
Jour 1 : Threading et Concurrence
- Approfondir les techniques de synchronisation, couvrant l'utilisation de blocs synchron (synchronised blocks, Locks, Sémaphores, CountDownLatch, …)
- Explorer les collections et leur utilisation dans un contexte concurrent
- Étudier la gestion des threads (thread pools, Executor Service, ThreadLocal)
- Comprendre les mécanismes de gestion des threads dans les serveurs d'application
Mise en pratique :
- Créer le projet “fil rouge”
- Gérer les écritures simultanées de tâches dans un fichier
- Lancer des tâches de manière asynchrone
- Découvrir la gestion des fils dans un serveur d’application
Jour 2 : Échanges Inter-Applicatifs
- Explorer l'utilisation des CompletableFuture pour créer des chaînes de traitement asynchrones, gérer les tâches futures et effectuer des opérations parallèles.
- Approfondir les concepts de programmation réactive, en explorant la spécification Reactive Streams, l'API Flow et R2DBC.
- Parcourir les techniques pour créer, surveiller et gérer des processus système à partir d'applications Java.
- Étudier la journalisation en abordant la manière de suivre et d'analyser les activités de l'application.
Mise en pratique :
- Lister les tâches selon certains critères de manière non bloquante
- Utiliser les logs pour afficher les informations d’exécution
Jour 3 : Extensions Applicatives
- Approfondir la gestion des dépendances et des concepts modulaires pour organiser efficacement les composants de l'application et favoriser la réutilisation.
- Explorer l'Inversion de Contrôle en utilisant le Service Loader pour découpler les composants.
- Comprendre la programmation par aspect en étudiant comment séparer et gérer les préoccupations transversales dans le code.
- Appréhender l'instrumentation du code en utilisant javaagent et l'API Instrument pour apporter des modifications au bytecode et intercepter les comportements.
- Découvrir la collecte de données à des fins de profiling et de surveillance, en utilisant des outils comme Java Management Extensions (JMX)
Mise en pratique :
- Logguer toutes les entrées/sorties de méthodes utilisant la programmation par aspect
- Suivre la consommation mémoire de l’application avec les outils du JDK
Télécharger le programme
Formateurs
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.
En 2005, à Brest, suite à l'obtention de son Master en Mathématiques et Informatique, Vincent débute sa carrière de développeur. Au sein de nombreuses ESN (Entreprises de Services du Numérique), il devient lead développeur puis architecte.
Tout au long de ses missions, Vincent a eu l'opportunité de se familiariser avec la formation, partageant ainsi son expertise avec d'autres développeurs.
Par la suite, il rejoint l'éditeur Talend, où il passe cinq ans à travailler sur la data quality.
Enfin, depuis 2021, Vincent cherche à allier ses connaissances en développement Web et en gestion de données en freelance. Il met l'accent sur le back-end, et apprécie les défis liés au front-end, notamment en React.
Aujourd'hui, Vincent travaille autant pour le compte d'entreprises que pour ses projets personnels, tels que Animal-planner (https://www.animal-planner.com).
FAQ
Nos formations sont éligibles à plusieurs dispositifs de financement, selon votre situation. Human Coders est certifié
Qualiopi, ce qui permet la prise en charge par des organismes comme
Pôle emploi, votre OPCO ou encore le
CPF (Compte Personnel de Formation) pour certaines formations.
Pour en savoir plus, veuillez consulter notre page : Comment financer votre formation ?
Oui, la formation peut être proposée en présentiel ou en distanciel. Pour les inter-entreprises, les modalités (présentiel ou à distance) sont fonction de la session.
Nous pouvons organiser des sessions à d'autres dates ou dans d'autres villes (Bordeaux, Lille, Lyon, Marseille, Montpellier, Nantes, Nice, Paris, Strasbourg, Toulouse...)
Les formations se déroulent toujours en petit groupe de 3 à 6 stagiaires. Nous souhaitons que les formateurs et formatrices puissent passer un maximum de temps avec chacun·e.
Voici une journée type :
- 9h : vous êtes accueillis par votre formateur·rice autour d'un petit déjeuner (croissants, pains au chocolat, jus de fruit, thé ou café...)
- 9h30 : la formation commence
- 12h30 : pause de midi. Le·a formateur·rice mangera avec vous. C'est l'occasion d'avoir des discussions plus informelles.
- 14h : reprise de la formation
- 18h : fin de la journée
8 raisons de participer à une formation Human Coders
- Satisfaction client élevée : Un taux de statisfaction de 4,6/5 depuis 2012 (sur 1719 sessions réalisées). 99% des participants se disent satisfaits de nos formations
- Approche pédagogique unique : Des formations en petit groupe, des formateurs passionnés et expérimentés, de véritables workshops... (Plus d'infos sur notre manifeste)
- Catalogue de formations complet : 184 formations au catalogue, de quoi vous accompagner sur tout vos projets
- Écosystème dynamique : Nous accompagnons les dev depuis 13 ans avec des initiatives comme Human Coders News, les Human Talks, le podcast ou encore notre serveur Discord
- Financement facilité : Organisme certifié Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
- Références clients prestigieuses : De nombreux clients qui nous font confiance depuis des années
- Accompagnement sur mesure : Nous vous proposons un accompagnement personnalisé par nos consultants pour vous aider dans vos projets au-delà de la formation
- Valorisation professionnelle : Remise d'un diplôme, d'une attestation et d'une certification, suivant les formations effectuées, que vous pourrez afficher sur vos CV et réseaux sociaux