Java - Niveau Expert

Concevoir et implémenter des architectures Java robustes, évolutives et performantes
Informations pratiques
PUBLIC VISÉ
Développeurs expérimentés ayant une bonne maîtrise de Java et des concepts de programmation orientée objet, souhaitant approfondir leur expertise dans les domaines avancés du langage et des architectures Java complexes.
Prérequis
Maîtrise des bases de Java, des concepts fondamentaux de la POO, et des outils de développement Java (IDE, Maven). Expérience en développement avec Java ou tout autre langage orienté objet.
Méthodes et moyens
Travaux pratiques : formation alternant théorie et pratique.
Objectifs visés

Ce que vous saurez faire à l'issue de la formation

À l’issue de la formation, les participants seront capables de :

  • Concevoir et implémenter des architectures Java robustes, évolutives et performantes
  • Utiliser les fonctionnalités avancées du langage Java pour résoudre des problèmes complexes
  • Appliquer des principes de conception avancés, des design patterns, et des bonnes pratiques d’architecture logicielle
  • Optimiser les performances d'applications Java en utilisant les dernières fonctionnalités et outils
Programme détaillé

Un parcours structuré, module par module

Chaque module alterne apports théoriques, démonstrations et exercices pratiques pour ancrer les acquis.

Introduction aux concepts avancés de Java

  • Vue d’ensemble de la plateforme Java et des évolutions récentes (Java 17 et au-delà)
  • Comprendre l’architecture de la JVM, le garbage collector, et la gestion de la mémoire
  • Analyse des dernières fonctionnalités du langage : Records, Pattern Matching, Sealed Classes, Text Blocks, etc.

Optimisation de la performance en Java

  • Comprendre et analyser la gestion de la mémoire en Java : heap, stack, et garbage collection
  • Optimisation des performances avec la JVM : tuning, monitoring (JVisualVM, JConsole, JProfiler)
  • Stratégies de gestion de la mémoire et gestion des fuites mémoire
  • Amélioration des performances avec des collections adaptées (ConcurrentHashMap, CopyOnWriteArrayList, etc.)
  • Optimisation des entrées/sorties (I/O) : meilleures pratiques avec les flux, buffers, et NIO

Conception avancée avec la programmation fonctionnelle

  • Lambda expressions et Stream API pour une programmation fonctionnelle en Java
  • Utilisation des Optional pour éviter les nulls et améliorer la sécurité du code
  • Programmation réactive avec Reactive Streams (frameworks comme Project Reactor)
  • Combinaison de la POO et de la programmation fonctionnelle pour des architectures plus flexibles et lisibles

Architecture Java avancée

  • Design Patterns : Application des patterns de conception pour résoudre des problèmes complexes (Singleton, Factory, Strategy, Observer, etc.)
  • Création et gestion des microservices avec Spring Boot, communication entre services via RESTful APIs, gRPC, et WebSockets
  • Gestion des transactions et des connexions avec JPA et Hibernate
  • Introduction aux architectures hexagonales et clean architecture en Java

Programmation concurrente et multi-threading

  • Compréhension des threads, ExecutorService, Callable et Future
  • Synchronisation des threads : synchronized, Locks, Atomic variables
  • Introduction aux CompletableFuture et aux concepts de la programmation asynchrone
  • Résolution des problèmes de concurrence et des deadlocks dans un environnement Java multi-threadé

Tests unitaires et TDD (Test-Driven Development)

  • Mise en œuvre des tests unitaires avancés avec JUnit 5 et Mockito
  • Test-Driven Development (TDD) : Stratégies et bonnes pratiques pour la rédaction de tests en amont
  • Tests d’intégration et tests fonctionnels
  • Outils de couverture de code : JaCoCo, SonarQube
  • Introduction à la gestion des tests dans des projets multi-modules

Utilisation des outils modernes et des bonnes pratiques de développement

  • Mise en œuvre de CI/CD avec Jenkins, GitLab CI, ou GitHub Actions pour Java
  • Gestion des dépendances avec Maven et Gradle
  • Surveillance et gestion des logs avec SLF4J, Logback, et ELK Stack
  • Sécurisation des applications Java : protection contre les attaques courantes (Injection SQL, XSS, CSRF)

Gestion de projets complexes et évolutifs

  • Stratégies de développement pour des applications modulaires et évolutives
  • Modularité avec le système de modules Java (JPMS - Java Platform Module System)
  • Gestion des versions et des dépendances dans des environnements complexes
  • Utilisation de Docker pour le développement et le déploiement d'applications Java en conteneurs

Cas pratiques et projets avancés

  • Développement d'une application Java complexe intégrant des microservices, une base de données, et une architecture de communication (REST/gRPC)
  • Application des concepts de programmation concurrente et de performances dans un projet réel
  • Résolution de cas d'architecture Java complexes en groupe

Modalités d'évaluation

  • En cours de formation, par des études de cas ou des travaux pratiques
  • Et, en fin de formation, par un questionnaire d'auto-évaluation
Certification et financement

Une formation certifiée qualité

SKILLIA Academy est certifié Qualiopi au titre des actions de formation. Nos formations sont finançables via OPCO, CPF ou plan de développement des compétences.

Attestation de formation délivrée
Financement OPCO et CPF
Formateurs experts certifiés
Nos formateurs

Des experts terrain, praticiens de leur discipline

Chaque formation est animée par un consultant SKILLIA sélectionné pour son expertise sectorielle et sa pédagogie. Nos formateurs cumulent expérience opérationnelle et pratique régulière du transfert de compétences.

Praticiens en activité — Une expérience opérationnelle actuelle, mise au service de cas concrets.
Sélection exigeante — Expertise sectorielle et qualité pédagogique évaluées pour chaque intervenant.
Prix
3 030 € HT
Durée
5 jours