Présentation Rex GWT 2.0

  • View
    610

  • Download
    2

Embed Size (px)

DESCRIPTION

Prsentation Ippon Technologies REX GWT 2.0 du jeudi 10/06/2010www.ippon.frblog.ippon.fr

Transcript

  • 1. Open-REX - GWT 2.010/06/2010 David Laurent

2. Cette prsentation vous est fournie sous licence Creative Commons Attribution Share Alike Vous tes libres :o De reproduire, distribuer et communiquer cette cration au public Selon les conditions suivantes :o Paternit. Vous devez citer le nom des auteurs originaux mais pas dune manire qui suggrerait quils vous soutiennent ou approuvent votre utilisation de luvre.o A chaque rutilisation ou distribution de cette cration, vous devez faire apparatre clairement au public les conditions contractuelles de sa mise disposition sous licence identique Creative Commons Share Alike.o Chacune de ces conditions peut eo Rien dans ce contrat ne diminue ou ne restreint le droit moral de lauteur ou des auteurs. 3. Retour dexprience Application comptable Carrefouro Gestion de campagne marketingo < 50 utilisateurso GWT bas sur GXT Application de vente FranceBillet / Fnaco Guichet de vente du rseau de billetterieo > 10000 utilisateurs / jouro + de 1000 points de vente magasino Infrastructure htrogne rseaux de commercialisation navigateurs, tailles dcran, cran guichet + cran cliento Relles contraintes de performanceso Objectifs de charge de 100 000 rservations / heureo GWT only Exprience utilisateur ... UI + Vitesse ! 4. And now ... :-) :-| :-(Points abords Introduction / Performances / Architecture / Tests Compilation de bonnes pratiques Google IO + GTAC en // mises en oeuvre terrain Dmos 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. Google Web Toolkit GWT Manifesto / les designs axioms (2006) o Lexprience utilisateur est primordiale o Simplifier le dveloppement dapplications AJAX Java debugging non-ngociable, ... oLes principaux composants doivent tre utiles indpendamment Widgets, RPC disponibles mais non obligatoires, ... Le compilateur Java-to-Javascript est utile sans les libs gwt-user o Interopre avec lexistant Protocoles autres que RPC, pour cooprer les composants nont pas besoin dun serveur spcifiquement GWT Rendu avec CSS o Faciliter la rutilisation de code AJAX partage de composants et dapplications entires via JARs o Optimiser de faon agressive les performances Ne pas faire lexcution ce que lon peut faire la compilation o Proposer la scurit par dfaut Ne pas exposer les services automatiquement 6. Des apps AJAX crites en JAVA 7. Exemples introductifs EntryPoint, Widgets, Module, GWT, Service RPC 8. Exemples introductifs Handler, Event, ServiceAsync RPC 9. Dmos #1 Exemples du SDK o Sample Hello o Sample Mail (versions antrieures GWT 2.0) o Sample Mail (version 2.0 et au del) InspectorWidgeto inspecter rapidement le nb de widget dun tat du DOMo inspecter rapidement la nature des widgets 10. Dmarrage 11. #1 Concevoir pour les perfs La vitesse compte! Limites de temps de rponseo 0.1 secondes : impression dinstantanito 1 seconde : impression dininterruptiono 10 secondes : maintient de lattention Points de contention dune application 1. marrage D 2. cupration des donnes R 3. alcul de rendu, Affichage C 4.nteractions utilisateur I 12. #1 Dmarrage 13. #1 Dmarrage optimis 14. #1 Rcupration des donnes Piges viter o trop de requtes HTTP o rcuprer des donnes dont on a pas besoin Principes o concevoir des interfaces RPC avec prcaution interfaces cts serveur adaptes lUI les services gnriques amnent requtes + donnes non ncessaires o rcuprer que ce dont on a besoin o attention aux types qui sont srialiss avec RPC o grouper si possible les requtes (batch requests) 15. #1 Calcul de rendu, Affichage Piges viter o crer des composants trop tt o lorsque ce nest pas ncessaire o associer les donnes 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 optimises avec CssRessource les rgles CSS les + simples = + rapides 16. #1 Interactions utilisateurs Une intraction utilisateur doit tre infrieure 100 ms Handler trop long rpondre bloque le thread (unique) JS Evnements ne peuvent tre intercept si JS en excution Deffered Command, Incremental Command Le Layout est plus rapide avec les LayoutPanels 17. Dmos #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 ct serveur et ... SpeedTracer en Intgration Continueidentifier les regressions de perfs au commit 18. #2 Architecture : Principes Le test logiciel ne consiste pas crire des tests mais ... des logiciels testables Quels sont les principes de structuration noncs pour les applications GWT? Le principe fondamental :o isolation / sparation des responsabilits 19. #2 Bonne / mauvaise isolation 20. #2 Mauvaise isolation + Code natif 21. #2 Sparation des responsabilit 22. #2 Model View Presenter 23. #2 Model View PresenterMartin Fowler lentomologiste du pattern nonce :o Passive View : A screen and components with all application specicbehavior extracted into a controller so that the widgets have their state controlledentirely by controller. ... APassive Viewhandles this by reducing the behavior of theUI components to the absolute minimum by using a controller that not just handlesresponses to user events, but also does all the updating of the view. This allows testingto 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 containany behavior that describes how the widgets react to user interaction.The activereaction to user acts lives in a separate presenter object. The fundamental handlers foruser gestures still exist in the widgets, but these handlers merely pass control to thepresenter.The presenter then decides how to react to the event 24. Dmos #3 Exemples GWT Docs o Sample Contacts 1 Webdriver / Selenium 2 Tests de charges serveuro junit + contiperf + gwtrpc4j 25. Future ... GWT 2.1 MVP refactorisation o Model : RequestFactoryServlet, Record, SyncRequest o Presenter : ActivityManager, Activity o View : EditorSupport Amliorations Widget Library o CellWidgets