Open-REX - GWT 2.0      10/06/2010     David Laurent
•  Cette présentation vous est fournie sous licence   Creative Commons Attribution Share Alike•  Vous êtes libres :    o  ...
Retour dexpérience•  Application comptable Carrefour    o  Gestion de campagne marketing    o  < 50 utilisateurs    o  GWT...
And now ... :-) :-| :-(Points abordés•  Introduction / Performances / Architecture / Tests•  Compilation de bonnes pratiqu...
Google Web Toolkit•  GWT Manifesto / les designs axioms (2006)   o    Lexpérience utilisateur est primordiale   o    Simpl...
Des apps AJAX écrites en JAVA
Exemples introductifs•  EntryPoint, Widgets, Module, GWT, Service RPC
Exemples introductifs•  Handler, Event, ServiceAsync RPC
Démos #1•  Exemples du SDK   o  Sample Hello   o  Sample Mail (versions antérieures à GWT 2.0)   o  Sample Mail (version 2...
Démarrage
#1 Concevoir pour les perfs•  La vitesse compte!•  Limites de temps de réponse    o  0.1 secondes : impression dinstantané...
#1 Démarrage
#1 Démarrage optimisé
#1 Récupération des données•  Pièges à éviter   o  trop de requêtes HTTP   o  récupérer des données dont on a pas besoin• ...
#1 Calcul de rendu, Affichage•  Pièges à éviter   o  créer des composants trop tôt   o  lorsque ce nest pas nécessaire   o...
#1 Interactions utilisateurs•  Une intéraction utilisateur doit être inférieure à 100 ms•  Handler trop long à répondre bl...
Démos #2•  Exemples du SDK   o  Sample Showcase (Chargement à la demande)   o  Sample Simple RPC   o  Sample Simple RPC mo...
#2 Architecture : Principes•  Le test logiciel ne consiste pas à écrire des tests mais ...   des logiciels testables•  Que...
#2 Bonne / mauvaise isolation
#2 Mauvaise isolation + Code natif
#2 Séparation des responsabilité
#2 Model View Presenter
#2 Model View PresenterMartin Fowler lentomologiste du pattern énonce :  o  Passive     View : A screen and components wit...
Démos #3•  Exemples GWT Docs   o  Sample Contacts 1•  Webdriver / Selenium 2•  Tests de charges serveur    o  junit + cont...
Future ... GWT 2.1•  MVP refactorisation   o  Model : RequestFactoryServlet, Record, SyncRequest   o  Presenter : Activity...
Upcoming SlideShare
Loading in...5
×

Présentation Rex GWT 2.0

634

Published on

Présentation Ippon Technologies REX GWT 2.0 du jeudi 10/06/2010
www.ippon.fr
blog.ippon.fr

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
634
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Présentation Rex GWT 2.0"

  1. 1. Open-REX - GWT 2.0 10/06/2010 David Laurent
  2. 2. •  Cette présentation vous est fournie sous licence Creative Commons Attribution Share Alike•  Vous êtes libres : o  De reproduire, distribuer et communiquer cette création au public•  Selon les conditions suivantes : o  Paternité. Vous devez citer le nom des auteurs originaux mais pas dune manière qui suggérerait quils vous soutiennent ou approuvent votre utilisation de lœuvre. o  A chaque réutilisation ou distribution de cette création, vous devez faire apparaître clairement au public les conditions contractuelles de sa mise à disposition sous licence identique Creative Commons Share Alike. o  Chacune de ces conditions peut e o  Rien dans ce contrat ne diminue ou ne restreint le droit moral de lauteur ou des auteurs.
  3. 3. Retour dexpérience•  Application comptable Carrefour o  Gestion de campagne marketing o  < 50 utilisateurs o  GWT basé sur GXT•  Application de vente FranceBillet / Fnac o  Guichet de vente du réseau de billetterie o  > 10000 utilisateurs / jour o  + de 1000 points de vente magasin o  Infrastructure hétérogène ≠ réseaux de commercialisation  navigateurs, tailles décran, écran guichet + écran client o  Réelles contraintes de performances o  Objectifs de charge de 100 000 réservations / heure o  GWT only•  Expérience utilisateur ... UI + Vitesse !
  4. 4. And now ... :-) :-| :-(Points abordés•  Introduction / Performances / Architecture / Tests•  Compilation de bonnes pratiques Google IO + GTAC en // mises en oeuvre terrain•  Démos sur la base des samples du GWT SDKGoogle IO 2009•  Measure in Milliseconds: Performance Tips for•  Google Web Toolkit Architecture: Best Practices For Architecting Your GWT AppGoogle IO 2010•  Measure in milliseconds redux: Meet Speed Tracer•  Architecting for performance with GWT•  Architecting GWT applications for production at GoogleGoogle Test Automation Conference 2009•  Even better than the real thing : Lessons learned from testing GWT applications•  Selenium: to 2.0 and Beyond!
  5. 5. Google Web Toolkit•  GWT Manifesto / les designs axioms (2006) o  Lexpérience utilisateur est primordiale o  Simplifier le développement dapplications AJAX   Java debugging non-négociable, ... o  Les principaux composants doivent être utiles indépendamment   Widgets, RPC disponibles mais non obligatoires, ...   Le compilateur Java-to-Javascript est utile sans les libs gwt-user o  Interopère avec lexistant   Protocoles autres que RPC, pour coopérer les composants nont pas besoin dun serveur spécifiquement GWT   Rendu avec CSS o  Faciliter la réutilisation de code AJAX   partage de composants et dapplications entières via JARs o  Optimiser de façon agressive les performances   Ne pas faire à lexécution ce que lon peut faire à la compilation o  Proposer la sécurité par défaut   Ne pas exposer les services automatiquement
  6. 6. Des apps AJAX écrites en JAVA
  7. 7. Exemples introductifs•  EntryPoint, Widgets, Module, GWT, Service RPC
  8. 8. Exemples introductifs•  Handler, Event, ServiceAsync RPC
  9. 9. Démos #1•  Exemples du SDK o  Sample Hello o  Sample Mail (versions antérieures à GWT 2.0) o  Sample Mail (version 2.0 et au delà)•  InspectorWidget o  inspecter rapidement le nb de widget dun état du DOM o  inspecter rapidement la nature des widgets
  10. 10. Démarrage
  11. 11. #1 Concevoir pour les perfs•  La vitesse compte!•  Limites de temps de réponse o  0.1 secondes : impression dinstantanéité o  1 seconde : impression dininterruption o  10 secondes : maintient de lattention•  Points de contention dune application 1.  émarrage D 2.  écupération des données R 3.  alcul de rendu, Affichage C 4. nteractions utilisateur I
  12. 12. #1 Démarrage
  13. 13. #1 Démarrage optimisé
  14. 14. #1 Récupération des données•  Pièges à éviter o  trop de requêtes HTTP o  récupérer des données dont on a pas besoin•  Principes o  concevoir des interfaces RPC avec précaution  interfaces côtés serveur adaptées à lUI  les services génériques amènent à requêtes + données non nécessaires o  récupérer que ce dont on a besoin o  attention aux types qui sont sérialisés avec RPC o  grouper si possible les requêtes (batch requests)
  15. 15. #1 Calcul de rendu, Affichage•  Pièges à éviter o  créer des composants trop tôt o  lorsque ce nest pas nécessaire o  associer les données aux widgets•  Principes o  Utiliser le LazyPanel o  Savoir quand utiliser des widgets : events ? parent ? o  Comment éliminer des widgets  Utiliser UiBinder pour remplacer les widgets / HTML  Utiliser le pattern Flyweight pour listes, tables et tree o  UiBinder : templates dHTML et de Widgets (+ simple)  utiliser HTML autant que possible  utiliser des CSS optimisées avec CssRessource  les règles CSS les + simples = + rapides
  16. 16. #1 Interactions utilisateurs•  Une intéraction utilisateur doit être inférieure à 100 ms•  Handler trop long à répondre bloque le thread (unique) JS•  Evénements ne peuvent être intercepté si JS en exécution•  Deffered Command, Incremental Command•  Le Layout est plus rapide avec les LayoutPanels
  17. 17. Démos #2•  Exemples du SDK o  Sample Showcase (Chargement à la demande) o  Sample Simple RPC o  Sample Simple RPC modifié en deRPC•  Mesure des performances avec SpeedTracer o  Comparaison Simple RPC / deRPC o  à suivre en 2010 dans la version 2.1 :  SpeedTracer côté serveur et ...  SpeedTracer en Intégration Continue  identifier les regressions de perfs au commit
  18. 18. #2 Architecture : Principes•  Le test logiciel ne consiste pas à écrire des tests mais ... des logiciels testables•  Quels sont les principes de structuration énoncés pour les applications GWT?•  Le principe fondamental : o  isolation / séparation des responsabilités
  19. 19. #2 Bonne / mauvaise isolation
  20. 20. #2 Mauvaise isolation + Code natif
  21. 21. #2 Séparation des responsabilité
  22. 22. #2 Model View Presenter
  23. 23. #2 Model View PresenterMartin Fowler lentomologiste du pattern énonce : o  Passive View : A screen and components with all application specific behavior extracted into a controller so that the widgets have their state controlled entirely by controller. ... A Passive View handles this by reducing the behavior of the UI components to the absolute minimum by using a controller that not just handles responses to user events, but also does all the updating of the view. This allows testing to be focused on the controller with little risk of problems in the view.” o  Presenter : The view of MVP is a structure of these widgets. It doesnt contain any behavior that describes how the widgets react to user interaction. The active reaction to user acts lives in a separate presenter object. The fundamental handlers for user gestures still exist in the widgets, but these handlers merely pass control to the presenter. The presenter then decides how to react to the event
  24. 24. Démos #3•  Exemples GWT Docs o  Sample Contacts 1•  Webdriver / Selenium 2•  Tests de charges serveur o  junit + contiperf + gwtrpc4j
  25. 25. Future ... GWT 2.1•  MVP refactorisation o  Model : RequestFactoryServlet, Record, SyncRequest o  Presenter : ActivityManager, Activity o  View : EditorSupport•  Améliorations Widget Library o  CellWidgets
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×