Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Du développement à la livraison avec JavaFX et le JDK9

332 vues

Publié le

Java 9 arrive et avec lui son mécanisme de modularisation Jigsaw. Notre manière de concevoir et livrer nos applications va évoluer de même que les outils que nous utilisons. Cette évolution n’aura pas les mêmes enjeux et contraintes en fonction du type de développement ciblé: une application serveur ou bien une application cliente. Une sensibilisation aux nouveautés de Java 9 ainsi qu’une application utilisant JavaFX seront réalisés au cours de cette présentation. Ces dernières permettront de mettre en lumière les impacts de Java 9 sur les phases de développement, de construction et de livraison d’une application cliente de même que nos pratiques au quotidien.

Publié dans : Ingénierie
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

Du développement à la livraison avec JavaFX et le JDK9

  1. 1. Thierry Wasylczenko @twasyl DU DÉVELOPPEMENT À LA LIVRAISON avec JavaFX et le JDK 9
  2. 2. A PROPOS groupe Everial Ingénieur R&D Knowings @twasyl SlideshowFX JStackFX
  3. 3. QUI? Fait du déploiement (continu) d'application web? Fait du déploiement (continu) d'application lourde? Sait ce qu'apporte le JDK9? A déjà testé le JDK9?
  4. 4. SOMMAIRE Java 9 JavaFX 9 Construction continue Livraison continue Conclusion
  5. 5. JAVA 9
  6. 6. MODULARISATION Java 9 introduit Jigsaw, la mécanique de modularisation du JDK. Jigsaw est similaire sur bien des concepts à OSGi: Notion de modules et non de bundles Export de packages Utilisation de packages
  7. 7. QU'EST CE QU'UN MODULE? Un module est une collection de packages utilisés exportés ouverts Un module est décrit à l'aide du fichier module-info.java. Un module peut être ouvert.
  8. 8. QU'EST CE QU'UN MODULE JAVA 9? module com.twasyl.slideshowfx { requires javafx.controls; exports com.twasyl.slideshowfx.utils to java.utils; }
  9. 9. QU'EST CE QU'UN BUNDLE OSGI? Bundle-Name: My bundle Bundle-Activator: com.twasyl.slideshowfx.utils.UtilsActivator Export-Package: com.twasyl.slideshowfx.utils Import-Package: org.osgi.framework, javafx.controls
  10. 10. Java 9 ce n'est pas que ça
  11. 11. TRY-WITH-RESOURCES Avant Java 9: try(final ByteArrayOutputStream output = ...) { // ... } // J'ai besoin de output!!
  12. 12. TRY-WITH-RESOURCES Donc ... ByteArrayOutputStream output = null; try(output = ...) { // ... } output.toByteArray();
  13. 13. TRY-WITH-RESOURCES Avec Java 9: final ByteArrayOutputStream output = new ... try(output) { // ... } output.toByteArray();
  14. 14. MAIS AUSSI Méthodes privées pour les interfaces Garbage collector G1 activé par défaut Nouvelle API pour @Deprecated Nouvelles méthodes utilitaires pour les collections : {List | Set | Map }.of(...)
  15. 15. OU ENCORE Une nouvelle API pour parcourir les stacktraces Support d'Unicode 8.0 La généricité des enum
  16. 16. OU ENCORE Une meilleure gestion des chaînes de caractères La Javadoc se dote d'un champ de recherche ! JShell est un REPL (Real Eval Print Loop) permettant d'exécuter du code Java sans avoir à écrire toute la syntaxe du langage.
  17. 17. JAVAFX 9
  18. 18. GÉNÉRALITÉS Les nouveautés de JavaFX 9 se situent surtout sous le chapeau : Modularisation complète pour s'accorder avec Jigsaw API publique pour les skins des contrôles Support du HDPI pour Linux GTK 3 pour Linux Mise à jour de WebKit
  19. 19. Cela vous parle?
  20. 20. JIGSAW (ENCORE) Jigsaw apporte une encapsulation forte: Comment accéder aux champs privés annotés @FXML? Comment charger les ressources de son application: Les *.fxml? Les images? Les feuilles de style …
  21. 21. @FXML - CONTROLLER Quel est le problème? public class MonController implements Initializable { @FXML private Button button; }
  22. 22. @FXML - MODULE-INFO.JAVA module com.twasyl.slideshowfx { // ... opens com.twasyl.slideshowfx.controllers to javafx.fxml; }
  23. 23. CHARGEMENT DES RESSOURCES Est-ce que cela vous choque? Ou? ClassLoader.getResource(...); scene.getStyleSheets().add("/com/twasyl/slideshowfx/css/Default.css");
  24. 24. CHARGEMENT DES RESSOURCES Il faudra faire comme cela : Class.getResource(...);
  25. 25. FEUILLES DE STYLE Attention au @... dans les FXMLs <BorderPane> <stylesheets> <URL value="@../css/default.css" /> </stylesheets> </BorderPane>
  26. 26. Démonstration
  27. 27. PACKAGING Possible via: javapackager ant Support des applications modulaires Taille du package moins importante Temps de chargement plus rapides
  28. 28. Démonstration
  29. 29. CONSTRUCTION CONTINUE
  30. 30. CE QUI EST NÉCESSAIRE? Un gestionnaire de source Un outil de construction
  31. 31. GESTIONNAIRE DE SOURCES Toujours utiliser un gestionnaire de version des sources (VCS) pour: garder une trace des changements partager son code résoudre efficacement les conflits de modification concurrente
  32. 32. git
  33. 33. GIT Tirer parti du mécanisme de branches Maîtriser les commandes essentielles : git commit --amend git merge git rebase git pull git push
  34. 34. GIT-FLOW Une branche master pour les releases Une branche development pour les développements des versions futures Des branches feature pour chacune des fonctionnalités Des branches bugfix pour les bugs Pour en savoir plus
  35. 35. GITHUB Tirer parti de la fonctionnalité de releases Gestionnaires de ticket Wiki Intégrés avec beaucoup de services de construction et de livraison continue
  36. 36. Construction
  37. 37. OUTIL DE CONSTRUCTION Intéressant et utile pour : exécuter les tests unitaire et d'intégration gérer les dépendances du projet construire de manière aisée le livrable du projet gérer les modules Jigsaw Ne sont pas prets
  38. 38. OUTILS DE CONSTRUCTION gradle Support limité de Java 9 et Jigsaw Compilation sans Jigsaw possible maven Travail en cours
  39. 39. LIVRAISON CONTINUE
  40. 40. ENJEUX Livraison continue Déploiement continu JAR JavaFX 1 WAR + n JARs n plateformes clientes cibles 1 plateforme serveur cible Hébergement des binaires pour téléchargement Serveur cible
  41. 41. TRAVIS CI Construire un projet sur: Linux OS X .travis.yml Supporte git
  42. 42. APPVEYOR Construire un projet sur Windows x86 amd64 appveyor.yml Supporte git
  43. 43. Démonstration
  44. 44. INCONVÉNIENTS La version de Java peut être dépendante du service utilisé La sauvegarde des artefacts produits n'est pas toujours possible Temps de construction limité
  45. 45. BINTRAY Permet pour les binaires de les héberger par version les télécharger S'intègre avec gradle l'étape de construction permet donc l'upload
  46. 46. CONCLUSION
  47. 47. CONCLUSION Jigsaw (mais pas que) Axé performance Nouveaux composants Mise à jour des IDEs des outils
  48. 48. RESSOURCES , Jonathan Giles, Kevin Rushforth - JavaOne 2016 , Chris Bensen - JavaOne 2016 , Joe Darcy - JavaOne 2016 , Katharine JavaFX: New and Noteworthy Packaging Java Applications JDK 9 Language, Tooling, and Library Features How do you solve a problem like Java 9 modules and reflective access? JEPs
  49. 49. SOURCES DE LA DÉMONSTRATION https://github.com/twasyl/So Shake16
  50. 50. FAQ

×