Solution :
- Faire le rollback du commit et n'oublie pas de garder en copie le hash de celui-ci :
- Faire un pull du commit vers une autre branche git :
Pour une expériencenet et une sécurité optimale, mettez à jour votre navigateur. Mettre à jour maintenant
Figure 1 : L'approche 2TUP |
Commençons d’abord par un petit rappel sur ce qu’est le web 2.0 : des usages qui modifient l’interaction avec l’utilisateur au niveau du net. Pour obtenir une RIA (Rich Internet Application) de qualité, il vous faut des experts dans plusieurs domaines : CSS, HTML, DOM au minimum et surtout Javascript. Or pour ce dernier bien peu de développeurs peuvent se prétendre expert en la matière. Le web 2.0, c’est donc quelque chose de puissant mais de délicat : il faut être cross browser, faire attention à sa vitesse de chargement, être vigilant au XSS, penser aux fuites de mémoire, savoir débugger en javascript, etc …
Devant cette demande croissante pour des applications 2.0, de nombreux frameworks sont apparus, nous donnant comme le dit Nicolas “l’embarras du choix … et surtout l’embarras”. En effet, dans la vie de tous les jours, le développeur lambda est amené à faire du Javascript, de l’HTML, du Java, du CSS et du design sans pour autant être expert dans tous ces domaines. De plus l’émergence du web mobile vient encore compliquer cette problématique du cross browser que tout développeur d’application web connait bien : être compatible I.E. 7, 8, 9, Firefox, Chrome, Safari mais aussi I.E. 6 qui malgré tout représente encore une forte part de marché dans les entreprises.
De ce besoin de développer des applications plus riches naissent 3 rêves :
Et c’est ici qu’apparaît la solution miracle face à ces trois problèmes totalement divergents et pourtant liés : GWT (Google Web Toolkit). Le framework de Google orienté composant a en effet pour but de vous permettre de développer vos applications web 2.0 en java grâce à l’utilisation du JRE standard couplé à une API spécifique. A sa charge de compiler votre code en Javascript, inutile pour vous de devenir un pro de ce langage pour réaliser une RIA digne de ce nom. Ce framework est sorti en 2006 suite à l'effervescence provoquée par l'éclosion de la technologie AJAX et de la mouvance Web 2.0. GWT est un projet Open Source géré en partie par Google associé à d'autres membres de la communauté Java.
Autre notion essentielle de GWT, sa devise “Only pay for what you see”. En d’autres termes, GWT va produire une application par navigateur cible et ainsi éliminer le code mort, les bibliothèques inutiles et autres if et else qui traînent invariablement dans une application web cross browser. D’autre part, le code java n’est pas transmis initialement : il est d’abord repris, optimisé et compilé en javascript pour effectuer la manipulation du DOM en fonction de ce qui sera le moins coûteux en performance selon le navigateur.
Bâtie sur des principes totalement révolutionnaires, GWT a puisé son inspiration dans les échecs des projets Web dits "applicatifs". Le constat est le suivant :
Pour pallier tous ces défauts et contrer cet inexorable précepte qui veut que tout ce qui est Web est cher, GWT a cherché à fournir un niveau de productivité optimal. Le Framework redonne ses lettres de noblesse à Java. Le développeur code en Java puis laisse la main au compilateur GWT qui génère tous les artéfacts de l'application Web (en JavaScript, CSS et HTML). L'avantage est non seulement de pérenniser les compétences Java mais aussi de s'abstraire des contraintes techniques inhérentes à HTML. Avec GWT :
Pour résumer, GWT est un framework :
GWT supporte nativement le back des navigateurs et l’internationalisation (i18n) et est également HTML 5 ready et nativement Ajax. Votre code quant à lui, écrit en java reste entièrement testable.
Très appréciable la fonction Out Of Process Hosted Mode (OOPHM) vous permet de tester le rendu de votre application, de le modifier, de recompiler à la volée et de le re-tester, le tout dans votre navigateur habituel. En effet avec GWT 2.x, plus besoin d’utiliser le navigateur système, le débugger java se branche au moteur javascript de votre navigateur, pour lequel vous aurez au préalable téléchargé le plugin.
Plusieurs fonctionnalités sont apparues avec GWT 2.0 :
Côté serveur, GWT utilise un mécanisme RPC spécifique basé sur Rest, JSON et XML; et est devenu complètement stateless : toutes les données sont chez le client, ce qui en fait un framework tout à fait indiqué pour le cloud computing.
Côté concurrence, GWT fait face à Flex, qui est déjà bien installé mais qui nécessite une phase d’apprentissage non négligeable ainsi qu’un environnement récent; et à SilverLight qui a l’avantage d’un très fort taux de pénétration grâce à windows update mais dont la plateforme est limitée.
Conclusion : vous n’avez pas d’experts javascript, html, css, java etc … faîtes du gwt !
Quoi de neuf avec GWT 2.1 ?
L’apparition du design pattern MVP (Model View Presenter) pour la présentation devient la référence. Il se traduit comme suit :
Ce design pattern permet d’obtenir une application entièrement testable (la vue peut être mockée), modulaire et facilement repackageable.
En attendant une implémentation officielle, les implémentations open source sont nombreuses :
Attention néanmoins, l’apparition du MVP dans GWT 2.1 se traduit par des librairies “temporaires” dont la javadoc mentionne qu’elles sont encore en cours de développement et peuvent être supprimées. Les librairies suivantes en font partie et sont donc à utiliser à vos propres risques :
Autres sujets à surveiller dans l’avenir de GWT :
Convaincre son boss en 10 points
En temps de crise, les décideurs sont tournés vers les solutions susceptibles d'apporter des gains de marges tout en pérennisant l'existant avec la possibilité de disposer d'un avantage concurrentiel. Dans ce contexte, une technologie telle que GWT ne peut que convaincre. De nombreuses applications de gestion, d'ancienne génération peuvent prétendre à être reliftées à la mode AJAX à moindre coût. D'autres applications, plus sensibles, peuvent bénéficier des apports de GWT en termes de performance. D'une manière générale, voici les dix points qui vous permettront de convaincre un décideur :
De part ses qualités intrinsèques, GWT est une technologie permettant de faire plus avec moins ou autant de charge. Les délais de développement sont raccourcis du fait de la disponibilité d'un Framework de composants riche et de l'atelier de développement Java.
Les coûts d'infrastructure sont également amortis par le fait qu'une part importante des traitements sont déportés côté client, notamment tout ce qui attrait à l'affichage.
GWT s'appuie nativement sur les notions qui sous-tendent AJAX. Les pages sont construites dynamiquement côté client sur la base du moteur de rendu du navigateur. Le serveur n'est peu voire jamais sollicité pour des traitements graphiques contrairement à d'autres technologies telles que JSF ou ASP.NET.
Financé en partie par Google qui a construit son modèle économique sur le Web, GWT n'en est pas moins un projet communautaire. Cette dernière s'est étoffée de manière fulgurante ces trois dernières années. Des centaines de projets gravitant autour de GWT viennent enrichir le Framework de base tous les jours. De nombreux éditeurs s'appuient sur GWT pour fournir des bibliothèques de composants, des outils métiers ou des ERP. Des livres, des formations et d'innombrables documents en libre accès sont disponibles sur la toile.
Le fait que Google soit un acteur majeur de GWT constitue un argument de poids. Outre cette participation, GWT est le fruit d'un travail communautaire impliquant une trentaine de personnes. La marge de progression de GWT est considérable du fait des progrès réalisés à chaque version (Accessibilité, CSS, Gestion de nouveaux navigateurs, ...). D'autres acteurs majeurs (Redhat, ...) du marché commencent à emboîter le pas à Google avec des soutiens financier ou des accords de partenariat technique.
Excepté le modèle de développement très structurant qu'il propose, GWT ne remet pas en cause les standards existants. Il s'appuie sur HTML, JavaScript, CSS et s'interface côté serveur avec tous types de technologies ou Framework (Php, Perl, CGI, Java Spring, EJB, Servlets, JSP, ...).
GWT a été conçu avec le souci constant des performances. Le compilateur Java vers JavaScript ne possède pas moins d'une dizaine d'optimisation en tous genres permettant de réduire parfois par 10 la taille des scripts générés côté client. En déportant les rendus graphiques côté client, il est possible de disposer d'une architecture sans-état dotée d'une infrastructure plus légère côté serveur (Cluster sans affinité de session, etc ...)
GWT est une technologie relativement agnostique des couches basses. L'avantage procurée par cette abstraction est de permettre à une application GWT de supporter les futures navigateurs (Google Chrome, Firefox 4 ou 5, IE 8) sans modification de code source. Une simple recompilation du site suffit.
GWT ne réinvente aucun standard, il les utilise tous. De HTML à CSS en passant par JavaScript, DOM ou JSON. Ce respect contribue à la pérennité et au large support des technologies utilisées.
Déployer une application GWT consiste simplement à copier un ensemble de fichiers statiques appelés « fichiers de permutations » dans un répertoire visible du serveur Web Apache ou IIS. La partie serveur dépend du niveau d'intégration avec les technologies en place.
Utiliser GWT dans un contexte concurrentiel est clairement un avantage. Non seulement le périmètre fonctionnel des applications métier peut être élargi, mais les coûts de développement restent largement inférieurs aux autres Framework du marché.