Formation

Comprendre les enjeux et bénéfices d'une migration à Java 11

En ligne - Sur demande

1000 €HT / personne

2 jours

Objectifs

Vous n’avez pas encore franchi le pas d’un passage à Java 9 dont le support a expiré dès la sortie de Java 10 ? Avec la sortie de Java 11, c’est autour de Java 10 de perdre tout support.

La sortie, le 25 septembre 2018 de Java 11 - première version LTS depuis Java 8 - a marqué un tournant majeur. D’une part, le support commercial de Java 8 proposé par Oracle expire en janvier 2019, d’autre part, Oracle a revu son engagement et sa politique de support pour les LTS à compter de Java 11.

Une fois passées en revue ces annonces pour le moins préoccupantes, mais aussi celles des sociétés actives de la communauté OpenJDK qui vous rassureront, vous pourrez vous concentrer sur les vrais sujets opérationnels liés au grand saut que constitue le passage de Java 8 à Java 11.

  • Faire le point sur le nouveau cycle de release de la plateforme Java et les différents niveaux de support offerts par Oracle et la communauté OpenJDK
  • Identifier et utiliser les évolutions du langage introduites par les versions 9 à 11 de Java
  • Comprendre les principes de modularité introduits par Java 9 et les mettre en œuvre sur un projet
  • Identifier et utiliser les nouvelles APIs introduites par les versions 9 à 11 de Java
  • Identifier et savoir recourir aux nouveaux outils ou évolutions d’outils proposés par les version 9 à 11 de Java
  • Identifier les points clés d’une migration de Java 8 à Java 11

Depuis l’arrivée de Java 9, la plateforme Java offre des mises à jour espacées de 6 mois là où, par le passé, plusieurs années pouvaient séparer deux versions. Pour autant, toutes les versions ne disposent pas de la même durée de vie. Java 9 et Java 10 sont exclues des versions disposant d’un support long terme.
Pour la grande majorité des projets, la migration vers Java 9 et son système de modularité ne fait sens qu’à compter de la sortie de Java 11, le 25 septembre 2018. Cette version est assortie d’un support long terme (LTS) au même titre que Java 8 dont le support gratuit fourni par Oracle expire en janvier 2019.
Vous vous posez sans doute la question de l’obligation de migrer, des enjeux et bénéfices d’une migration ? Cette formation vise à vous éclairer sur ces différentes dimensions et vous aide à appréhender ce qui vous attend tôt ou tard en vous aidant à élaborer votre propre stratégie.

Tout au long de la formation vous apprendrez par la pratique à vous familiariser avec les particularités de Java 9 à 11, que ce soit sur de petits exercices guidées visant à rapidement ancrer les concepts, que sur un projet de complexité moyenne sur lequel vous pourrez appliquer une démarche de migration.

Cette formation s’adresse à toute personne responsable technique d’un projet Java, mais également à tout·e développeur·se Java désireux·ses d’identifier, comprendre et utiliser les fonctionnalités de Java introduites dans les versions 9 à 11.

Acquis à l'issue de la formation

  • Comprendre le cycle de release
  • Connaitre les nouveautés de Java
  • Savoir migrer une application
  • Mettre en œuvre les principes de modularité

Public concerné et pré-requis

  • Connaissance préalable de Java
  • Être familier de Java 8 (le langage)

Evaluation

En début de formation, une autoévaluation est effectuée pour évaluer le niveau, ainsi que les attentes de chaque participant. Ainsi nous pouvons organiser au mieux les différents groupes de travail.
Par la suite, le formateur effectue une évaluation continue à l'aide des nombreux exercices pratiques.
En fin de formation, la progression et les acquis sont autoévalués par chacun des participants. Le formateur fournit à chacun des participants une évaluation, ainsi que les axes d'amélioration.
En option, un accompagnement postformation peut être effectué. Cela fera l'objet d'un devis complémentaire.

Programme

  • Première journée
    • Rappels des principaux points clés (langage / API) de Java 8
    • Généralités sur la fréquence de release et le support des versions post Java 8
    • Faisons le point sur le support des différents JDK / JRE (8 à 11) par Oracle et la communauté autour d’OpenJDK (RedHat, Microsoft & Azul, etc.)
    • Principes de modularité introduits par Java 9
      • Installation et aperçu de la mise en oeuvre de la modularité sur le dernier JDK / JRE
      • Compilation et exécution d’un programme élémentaire
      • Les modules du JDK / JRE dépréciés en Java 9 et retirés en Java 11
      • Cas d’un programme élémentaire utilisant une API présente dans un module du JRE désactivé par défaut
      • Analyse des dépendances d’un programme élémentaire
      • Cas d’un programme élémentaire utilisant une API présente dans un module du JRE activé par défaut
      • Cas d’un programme élémentaire utilisant une API externe définie sous la forme d’un module
    • Prise en charge de la modularité par les outils de développement
      • Utilisation avec un IDE (IntelliJ, Eclipse)
      • Utilisation avec un outil de build (ANT, Maven, Gradle)
    • Évolutions du langage
      • Local variable type inference
      • Local-Variable Syntax for Lambda Parameters
    • Revue des dépréciations / retraits dans le JDK
  • Seconde journée
    • Construction d’une application en tant que module
      • Déclaration d’un module
      • Ajout de dépendances vers d’autres modules
      • Notion d’unnamed-module et d’auto-module
    • Packaging et exécution d’une application Java 9 / 10 / 11
      • Création d’un jar et exécution avec le modulepath
      • Création d’un bundle avec jlink
      • Création d’un installateur / exécutable avec javapackager
    • Créer son propre module réutilisable
      • Restrictions de visibilité
      • Exposer un service
      • Cas de la réflexivité
    • APIs
      • La nouvelle API HTTP Client
      • Programmation réactive
      • TLS 1.3
      • Multi-resolution Images
      • JavaFX
    • Outillage
      • L'outil CLI de REPL : JShell
      • Single-file programs
      • La JavaDoc
      • Gestion de la dépréciation d’API
      • Multi-release JAR
      • Le Garbage Collector G1 et les autres GC expérimentaux

Formateur

Eric Siber
Eric Siber

Eric est développeur depuis 2003, après une formation d'ingénieur à Centrale Lille. Après un début de carrière en société de services informatique, il est passé indépendant en 2016.

Spécialisé sur la plateforme Java et l'écosystème Spring / Pivotal, il intervient pour ses clients en audit / conseil, en tant que formateur et en tant que développeur / expert / lead technique, mais également en tant que Scrum Master ou Coach Agile/Craft.

Eric notamment animé plusieurs cursus de formation longue de reconversion au métier de développeur lors desquelles il s'est fait une priorité de transmettre les bonnes pratiques du métier de développeur, méthodes pédagogiques orientées vers l'apprentissage par la pratique qu'il applique sur les formations HackYourJob.

Il a donné des formations en entreprises au travers d'autres organismes de formation. Il anime régulièrement des BBLs.