Aller au contenu

Yet Another Entrepreneur Blog

Je suis Youen Chéné, fondateur de Webvert, contributeur à Boavizta, advisor au Bear Studio, 10ans+ bénévole à Codeurs en Seine.

Ici, je parle Web, Sobriété Numérique, Programmation, Entreprenariat, Domotique et Rétrogaming (Amiga).

Retrouvez ce blog sur Gemini

Catégorie: Java

Devoxx Belgium 2014 (2)

Note : gros retard sur mon blog, je profite de l'acalmie du mois d'Août pour le mettre à jour. Quelques articles un peu décalés dans le temps...

Le résumé de la deuxième journée à Devoxx Belgique.

Keynote - Google Material design

La journée a commencé avec une revue des principes de material design. Il faut que je vérifie une chose, coté web est-ce qu'on aura un framework à bootstrap permettant une intégration facile?

Devoxx Belgium 2014 (1)

Voici le retour de ma première journée à Devoxx Belgique.

Keynotes

Devoxx s'étends au fur et à mesure sur l'ensemble de l'europe. Après Anvers, Paris et Londres, en juin prochain il y aura un devoxx pologne à Cracovie (krakow).

Red Hat digère ses différents rachats et nous propose un PAAS (platform de développement dans les nuages). Au programme de programmation d'application mobile et un middleware basé sur activemq et camel (donc du rachat de fuse source) avec à priori un éditeur en ligne.

Retour Devoxx 2014 (2) - Coté intervenant

Cette année, j'ai eu l'honneur d'être sélectionné sur plus de 600 propositions pour un quickie de 15 mn à Devoxx France. Au départ avec @dbaeli, on avait proposé une conférence 50 mn pour croiser nos deux regards sur un sujet en contre-programmation par rapport à la conférence : la management d'une équipe.

15 mn cela a l'air court comme cela, mais en fait c'est bien compliqué. Il faut couper, reformuler, sélectionner chaque morceau. Il faut faire passer plusieurs messages, sans être trop dense, avec quelques temps de pause et sans trop frustrer l'auditoire par des généralités.

Retour Devoxx 2014 (1)

Voici 3 ans que je vais à Devoxx France. La conférence soeur de Devoxx Belgique (anciennement Javapolis), qui réunit près de 1500 développeurs sur Paris pendant 3 jours. Si le Paris Java User Group est à l'origine de la conférence, la conférence couvre java et tout l'écosystème lié. Il est donc possible de faire 3 jours de conférence sans voir une ligne de java.

Premier jour

On commence comme en 2013 sur un lab avec mon DevOps préféré. L'année dernière on avait fait Puppet, cette année on a fait chef. Enfin on a essayé, le lab était un peu une catastrophe, un manque de préparation ou une naiveté de la part des intervenants. Seuls quelques personnes sous linux et avec une bonne connexion wifi ont pu aller assez loin pour juger. De mon coté, sur ce que j'ai pu voir, j'ai trouvé que les scripts chef sont moins intuitifs que puppet (et que ruby sous windows il faut oublier...)

9ème Réunion – Soirée spéciale SOA avec l’ESB Open Source Petals

Le Mardi 15 juin, j'introduirai une présentation SOA et Open Source avec un consultant de la société PetalsLink (issue de Object Web) du côté de la vatine (Mont Saint Aignan / Rouen). En effet, le monde des suites SOA est en train d'être renouvelé par acteurs issus de l'Open Source et du monde Java. Ces nouvelles suites SOA avec l'outillage Java ont la particularité de faire entrer les projets SOA dans un mode plus industriel avec les outillages de build et d'intégration continue.

La neuvième réunion du NormandyJUG !!!

Critique du livre Programmation GWT 2 de Sami Jaber

Après un gros mois très dense pour la sortie de la version Multi-Agence de Driveo, j'ai enfin un peu de temps pour bloguer quelque chose. Cet article, sera donc consacré à la critique de l'excellent Programmation GWT 2 sortie en Janvier. Un article qui aurait du paraitre ce même mois, si La poste ne m'avais pas retenu le livre pendant un mois dans le centre de tri.


Le livre Programmation GWT 2 : Développer des applications RIA et Ajax avec Google Web Toolkit est le premier livre qui expose les nouveautés de la dernière version GWT sortie en décembre 2009.

Tout d'abord, le livre n'est pas vraiment piur les débutants qui souhaitent découvrir GWT, mais plutôt aux programmeurs ayant un minimum pratiqué le framework de Google. Non pas, que les chapitres d'introductions sont mauvais au contraire, mais que cela risque d'être trop dense et trop rapide.

Le grand intérêt du livre est que les différents chapitres évoquent des points pratiques à réutiliser dans ses projets comme les bibliothèques de courbes et de graphiques, le drag & drop, la gestion de l'historique, etc...

L'autre point intéressant est la description des nouveautés de GWT 2.0 et des points très techniques comme le eRPC, le JSNI, JSON, la nouvelle gestion des CSS, les tests, le chargement à la demande, le modèle de placement CSS et l'UIBinder.

Le chapitre le plus attendu est le chapitre 15 sur les "Design pattern GWT", où il y a des sujets très utile comme les chargements incrémentales. J'ai découvert et adopté ce mode à travers ce livre, il permet permette de fluidifier l'affichage d'une longue liste d'élément sans bloquer la navigateur. Les patterns MVC et MVP sont aussi présentés (cf mon article précédent). Il y a même une partie sur la sécurité.

Le problème de ce chapitre est qu'il est beaucoup trop court et que l'on reste sur sa faim. J'aurais aimé un chapitre par sous partie et pour permettre de développer chaque patron d'utilisation de GWT. De plus, j'aurais aussi aimé voir apparaitre les limites d'utilisation des patterns (par exemple UI Binder + un framework MVP).

Il faut cependant garder à l'esprit que c'est le premier livre sur GWT qui va aussi loin.

Vous l'aurez compris, en tant que programmeur GWT, je vous recommande fortement ce livre. Enfin, vous pouvez même écrire vos questions, remarques et contributions dans le wiki de l'ami Sami.

Sixième réunion du Normandy JUG : Scrum

Vous l'attendiez avec impatience, elle arrive enfin !

La sixième réunion du NormandyJUG !!!

Scrum et l'agilité des équipes de développement

  1. Scrum en 5min
  2. Revue pratique : review, retro, planning, daily, impediment.
  3. Retours d'expérience (petites équipes, grandes équipes)
  4. L'esprit derrière tout ça [Agile Manifesto, Lean, Scrum, ...]
  5. Les outils : du papier à l'iphone
  6. Débat : comment commencer ?

La session sera interactive et vous permettra de découvrir scrum concrètement par des travaux pratiques.

Envoyez vos questions sur Scrum à normandyjug@googlegroups.com, ou @dbaeli, @nicogiard sur Twitter.

Lieu : eXia / CESI (à Mont Saint Aignan) à partir de 19h00, le Mardi 23 Février

5ème réunion du Normandy JUG : JEE 6 et Glassfish

La 5ème réunion du Normandy Jug a mis à l'honneur le tout neuf JEE 6 avec Antonio Goncalvez un expert JCP qui a participé aux spécifications de JEE6 EJB 3.1 et JPA 2.0 et avec Alexis Moussine Pouchkine l'évangéliste de Glassfish sur Paris.

Ils s'agissaient aussi de 2 membres du Paris Jug (1er jug de de France) qui ont l'habitude des présentations et cela s'est remarqué. Cela a même permis d'attirer près de 16 personnes au restaurant d'après Jug qui a du se finir vers 2h du matin.

La présentation était donc de très bonne facture, un poil longue à la fin (mais c'est la marque de fabrique du Normandy Jug). Comme j'avais lu le livre de Antonio sur JEE 6, la présentation restait assez digeste sauf sur quelques thèmes un peu plus dense (JPA, CDI). Sur ce dernier thème (CDI), c'est resté obscure jusqu'au "Ha mais oui, en fait le truc qu'il explique sur les qualifier c'est comme dans Spring!".

En parlant de Spring, il y a avait quelques utilisateurs et fan de Spring dans ma rangé et celle de derrière. J'en fais d'ailleurs partie. Le principal commentaire était "ah JEE a enfin rattrapé son retard sur Spring". Pour être plus politiquement correcte, on peut dire que JEE devient aussi séduisant que Spring.

D'une manière plus objectif, JEE 6 est devenu aussi productif et est même parfois meilleur (exemple: le @webservice qui permet d'exposer des méthodes en services web SOAP).

Cependant j'ai le sentiment qu'ils ont un peu loupé le coche avec le profile web en n'intégrant pas le REST. En effet, le profile web 1.0 correspond au besoin web d'il y a 2/3 ans. Du coup, cela va gêner le positionnement commerciale du JEE web profile. En effet, il risque d'être moins compétitif face à Ruby On Rails, PHP et même Spring qui intègre le REST et même des choses qui viennent du web comme l'OpenID (sans spring-security).

En même temps, j'ai de plus en plus l'impression que le monde du web et celui de Java sont bien 2 communautés différentes. En témoigne, les exemples de page web avec de la mise en page à la base de tableaux d'éléments non tabulaires. Du coup, j'ai promis que j'enverrai les corrections à @agoncal.

Pour finir, le récapitulatif de mes twits sur le twitter de normandyjug :

GWT avancé : Event Bus, MVP et Code Splitting

Pour ce début d'année 2010, voici un nouvel article sur l'utilisation de GWT avancé. Cela concerne des techniques de programmation permettant de construire des applications GWT ambitieuse maitrisable ("Large Scale Application".

Les enjeux

Derrière ces articles techniques, il y a aussi des enjeux commerciaux.

L'impression de vitesse est très importante pour les tous les utilisateurs. Pour Driveo, c'est un critère discriminant dans le choix de la solution par rapports aux concurrents offline. Cela passe donc par la maitrise du premier chargement et donc la taille du fichier javascript généré par GWT.

L'agilité à corriger, maintenir et à faire évoluer l'application est aussi un facteur très différenciateur pour Driveo par rapport à la concurrence offline qui évolue plus lentement. Pour cela, la maintenabilité et la maitrise de la croissance d'une application doit passer des pratiques de conception le permettant.

Event Bus et MVP

Cette partie est la plus compliquée. Cependant, le paragraphe va être court. En effet, il y a la présentation donnée au normandy jug et surtout Google a surtout un article complet dessus.

Vous trouverez donc ma présentation au normandyjug qui évoque l'objectif de découplage des composants d'une application.

Enfin, l'équipe GWT a sortie un tutoriel nommé Large scale application development and MVP. Le code source de l'exemple est même disponible. L'exemple comprend même une utilisation de la gestion de l'historique avec GWT.

Le code de Driveo est cours de migration vers ces pratiques (20% sur Bus Events, 10% sur MVP). Les premiers avantage sont une diminution du code et meilleur maitrise de la maintenance.

Cependant, la migration en mode événementiel est à prendre avec des précautions car cela influence la conception complète de l'application. Il faudra veiller à éviter la prise en compte d'événement en double (par le bus events (nouveau code) et par listener/handler (ancien code)) car la localisation de prise en compte de l'évènement n'est pas la même.

Enfin, la partie la plus importante est le découplage des modules constituant l'application. Cela va permettre un code splitting plus efficace.

Code Splitting

Par le simple ajout de GWT.runAsync, dans l'embranchement principale de l'application (le menu, l'accueil, le tableau de bord), il est possible de reporter le chargement de certains modules en fonction du profil de l'utilisateur ou du module (si c'est un module peu fréquemment utilisé).

Le problème c'est que c'est efficace uniquement si les modules sont correctement découplés. On en revient donc aux pratiques de Bus Events et MVP.

Heureusement, pour pouvoir analyser ce découplage, l'équipe de GWT a ajouté l'analyse SOYC de votre code (SOYC = Story Of Your Compile). Cela vous permet, entre autre, d'avoir des rapports HTML qui permettent de savoir dans quel bloc de javascript compilés vos classes GWT se trouvent.

Pour cela, il faut ajouter les arguments " -compileReport -XsoycDetailed extra /path/path/report/application " à votre ligne de compilation. Attention, pour moi, avec ses options la compilation est passé de 9mn à 33mn! Il ne faut donc pas les laisser par défaut.

Pour conclure voici un graphique d'évolution de la taille de Driveo (Javascript compilé par GWT + CSS + noyau d'images) :
Cliquez sur l'image pour voir les détails

Cinquième réunion du NormandyJUG : Java EE 6 et Glassfish V3

La cinquième réunion de l’association NormandyJUG aura lieu le Mardi 19 Janvier 2010 à partir de 19h00, dans les locaux de l’eXia / CESI (à Mont Saint Aignan).

Les thèmes de la soirée sont les suivants :


Et encore une fois, grâce à nos amis de chez JetBrains, Des T-Shirts et des Licences TeamCity et/ou IntelliJ IDea à Gagner !!!

Merci aussi à eXo Platform (via Dimitri Baeli) pour les goodies surprise!

Et enfin, merci aux Editions Pearson pour l’exemplaire de Apache Maven qu’ils m’ont autorisé à vous faire gagner!