GWT Avancé : Code Splitting et gestion de l'historique

02/08/2010
GWT
Suite à l'article de janvier, voici la suite avec pour toile de fond l'évolution de Driveo l'application SaaS de gestion d'auto école.

Les limites du code splitting

Malgré les analyses poussées que peuvent fournir les outils de GWT (SOYC - Story Of Your Compile), on arrive rapidement à la limite de l'exercice du fait que l'application n'a pas été structuré dès le début pour être chargeable bloc à bloc en fonction des besoins de l'utilisateur.

Le principe est de découper le menu en plusieurs sous-menus. Chaque sous-menu regroupe les appels aux fonctionnalités propre à une habilitation. Chaque sous-menu doit gérer le cycle de vie des gestion des écrans/objets propres à son habilitation.Ensuite, en fonction des habilitations, le menu père va charger en asynchrone les différents sous-menus. Les points de séparation (split) se feront à ce niveau. Chaque écran étant indépendant et n'interagissant qu'avec le bus événementiel, la premier javascript (le .cache.html) devrait être de taille très raisonnable.

Pour cela, j'ai du refactorer (réécrire une partie du code) le menu de Driveo. De plus, afin de gérer les changements d'écran de la manière le plus souple possible, il m'a semblé nécessaire de le gérer de manière événementiel. Pour cela GWT possède une fonction native : la gestion de l'historique.

La gestion de l'historique

Si on écoute les présentations et qu'on lit les docs des gars de l'équipe GWT de Google : on DOIT commencer par la mise au point de la gestion de l'historique quand on conçoit une application basée sur GWT.

Comme ce n'est pas très funky et que pas grand chose n'est visible pour les clients, je ne l'ai fait que 1 an et demi après...

La chose est relativement aisée et c'est bien documenté : Large scale application development and MVP. Le code source de l'exemple est même disponible. L'exemple comprend une utilisation de la gestion de l'historique avec GWT.

Le principe est que chaque élément des sous-menus est une ancre (Anchor). Quand on clique sur cette ancre, l'URL est modifié (un #NomMenu est rajouté à la fin) et un événement javascript de type historique est créé. Il suffit alors de réceptionner et de filtrer ces évènements dans les sous-menus pour gérer le cycle de vie de l'écran (l'afficher, le cacher, le détruire, le re-créer).

Cependant, il faut bien tester la chose et bien vérifier le comportement de l'application au démarrage quand l'utilisateur démarre directement sur un lien marqué par un historique (avec le #NomMenu à la fin). En effet, le marque page de l'utilisateur a de fortes chances d'en avoir un et il faut bien rediriger l'utilisateur vers le bon écran et réémettant un évènement javascript d'historique.

L'effet sur Driveo

Si vous regardez la courbe suivante, l'ajout de code splitting sans restructurer la partie menu n'a tenu qu'un temps. L'ajout d'une fonction transverse à tous les écrans (la gestion multi-agence) a rajouté 200ko sur le premier fichier javascript GWT à charger par le navigateur.

La mise à jour du menu, lui à permis de descendre très fortement la taille du javascript initial (à 270ko - dans la courbe il y aussi le CSS et les images) et surtout de le stabiliser malgré l'ajout de fonctionnalités.


Cliquer sur l'image pour l'agrandir
Pas de commentaires

Nettoyage d'été : je revends de nombreux livres orientés entreprises ou informatique

17/07/2010
livre
Je suis en train de faire le ménage dans ma bibliothèque. En conséquence, je revends à très bon prix pas mal de livres orientés entreprise et informatique (entre autre).

Si certains des meilleurs sont parties (comme La semaine de 4 heures ou Crush It!), il en reste encore pas mal de livres dont 3 livres sur Spring et La Longue Traine.

Ils sont disponible sur Price Minister (Fort pratique pour ajouter des livres à la chaîne) : Boutique Price Minister Youen76.

Si vous êtes sur Rouen et qu'un livre vous intéresse n'hésitez pas à me contacter.

Pas de commentaires

Lecture de vacances : Price Minister - Toutes les entreprises ont été petites un jour

06/07/2010
entreprendre lectures
Pendant les vacances rien de tel qu'un livre d'un entrepreneur qui a réussi pour être gonflé à bloc pour affronter les réalités du marché au retour des vacances.

Le livre Priceminister : Toutes les entreprises ont été petites un jour, raconte l'histoire de site d'achat-vente Price Minister. L'idée, a recherche des associés, les débuts, les premières levées de fond, la première mise en production, la recherche de la rentabilité puis de la croissance. Si la fin de l'histoire est un peu courte, c'est qu'elle a sa continuité dans la presse quelques semaines après la sortie du livre.

Le livre est très romancé et se lit très vite. Les comparaisons avec le rugby n'étant pas pour me déplaire. L'auteur, Pierre Kosciusko-Morizet, laisse transparaître les deux points suivant de son livre :
  • la complémentarité et la qualité de l'équipe est très importante, c'est ce qui a permis à Price Minister de passer les différentes crises,
  • plus que l'idée (elle existait déjà aux US), c'est le travail qui fait qu'une entreprise se développe correctement.
Avec mon point de vue technique d'architecte du Système d'Information, en 2010, techniquement il est beaucoup plus simple de mettre en place une architecture pour le web (Cloud computing, technologie Open Source mature ... notamment au niveau de l'écosystème Java - Price Minister est repose sur du Java).

Enfin, le livre souffre de quelques manques qui m'aurait intéressé comme la mise en place des comptes séquestres avec les banques (qui a du être difficile à négocier ... car c'est la clef du système de garantie de Price Minister) et le départ d'un des fondateurs Nathalie (une ligne dans le livre).

PS: c'est en lisant le livre que j'ai découvert que l'ajout d'annonce était simplifié par la saisie du code barre. Avec 2 étagères de livres à faire disparaitre et moi qui n'avais pas le courage de saisir les annonces de livres sur le bon coin ou ebay, j'ai peux être trouvé une solution rapide.
Pas de commentaires

Améliorer sa productivité, 2 outils : Evernote et Dropbox

04/07/2010
evernote productivité dropbox outils
Ce sont deux outils à la mode qui font le buzz depuis un bon moment chez les geeks. A force d'en entendre parler, de lire des tweets et des articles de blogs dessus, j'ai finalement testé et adopté ces deux très bonnes solutions.

Tout d'abord, il y a Dropbox une solution qui permet d'avoir un dossier synchronisé entre plusieurs postes et en situation de mobilité (sur un téléphone ou une tablette). La solution est très simple, très efficace et sans bug. Mais surtout, le principal atout de la solution est son API. C'est ce qui fait que j'ai abandonné les dossiers synchronisés de Jungle Disk.
En effet, Dropbox est d'abord un écosystème très complet. Il est rempli aussi bien par la société Dropbox (qui fournit une application pour windows, mac, linux, iphone, ipad, Android etc...) que par les développeurs tiers. En effet de nombreuses applications (en particulier sur iPad) permettent d'accéder directement aux fichiers de sa dropbox.


Le second outil est Evernote. La solution permet de capturer/rédiger des prises de notes et de les synchroniser entre nos différents appareils (windows, mac, iphone, ipad, android, palm, blackberry, windows mobile, sony ericsson).
A la suite la mort annoncé de Google Notebook, je n'avais plus vraiment d'outils pour les prises de notes et les captures de page web. Evernote est de bien meilleur qualité et a de l'avenir (modèle freemium et une API pour étendre son écosystème).

A noter que le point commun entre ses 2 outils est qu'il ne s'agit pas d'un logiciel mais d'un écosystème ouvert à la twitter dont les données sont stockées chez le fournisseur de l'outil à la mode "cloud computing".
Pas de commentaires

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

28/05/2010
java normandyjug soa
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 !!!

Logo Petals

Soirée spéciale SOA avec l’ESB Open Source Petals

Pour le premier anniversaire du NormandyJug, nous vous invitons à une soirée spéciale SOA.

C’est l’ESB Open Source Petals qui sera à l’honneur, cet ESB, basé sur la norme JBI (Java Business Integration), annonce un vent de renouveau au sein du monde de la SOA représenté en grande majorité par des solutions lourdes et chères par des éditeurs comme IBM, Oracle, Software AG ou Tibco.

En effet, Petals a été choisi comme ESB pour Veolia IDF, la DGME et les Douanes (3 projets dans lesquels Logica est intégrateur) et a la particularité de reposer sur toute la pile d’outils du monde Java (Ant, Eclipse, Maven, etc…).

Pierre-Yves Gibello consultant sénior et formateur chez PetalsLink vous présentera les fonctionnalités de Petals au travers d’une présentation et de petites démos.

Youen Chéné consultant sénior et architecte SOA chez Logica Business Consulting (et habitué du NormandyJug), introduira la session avec des retours d’expériences et quelques notions pour mieux comprendre les architectures orientées services.

INSCRIPTION OBLIGATOIRE ICI

Lieu : eXia / CESI (à Mont Saint Aignan) à partir de 19h00, le Mardi 15 Juin

Agrandir le plan

IMPORTANT

Afin de nous permettre d’organiser au mieux la soirée nous vous serions reconnaissants de bien vouloir vous inscrire sur le site JugEvents.

L’entrée est entièrement gratuite et la soirée sera agrémentée d’un buffet offert par le sponsor de la soirée “Logica Business Consulting” :
Logo Logica Management Consulting

Sans oublier “Petals Link” qui fait venir un consultant depuis Grenoble :
Logo Petals Link

et “Enovea” :
enovea

Et merci à JetBrains ainsi que eXo Platform pour leurs goodies!
jetbrains
eXo platform

Un grand merci à nos speakers bénévoles, pour leur engagement dans cette neuvième soirée qui nous espérons va vous satisfaire autant voir plus que les huit précédentes !

Pas de commentaires