Java, SOA, Architecture & Methodes agiles par Thomas Recloux

Sortie de Sonar 1.5

Publié le 17 décembre 2008 par Thomas Recloux

La version 1.5 de l’outil de suivi qualité Sonar est sortie aujourd’hui.

J’ai mis en place cet outil sur un de mes projets et je le trouve très pratique, la configuration est très simple et cela permet à toute l’équipe d’avoir une vue à la fois synthétique et précise des marqueurs qualité.

La version 1.5 amène des changements sympatiques au niveau de l’interface graphique et surtout une ouverture vers d’autres outils de mesure via un système de plugins.

Cet article du blog Sonar détaille les principaux changements

Voici un graphique de suivi qualité que l’on peut, par exemple, afficher dans la war room ou sur le site projet.

Indicateurs qualité

Sonar est une solution beaucoup plus utilisable que le plugin dashboard maven qui est moins mur.

Dans tous les cas, il faut au minimum que l’équipe adhère aux règles qualité et il est préférable que l’équipe définisse elle même les règles de développement.

Roadmap GWT 1.6

Publié le 11 décembre 2008 par Thomas Recloux

La roadmap de GWT 1.6 vient d’être publiée, voici son contenu :

  • Nouvelle structure de déploiement : les fichiers statiques ne seront plus dans le classpath, mais comme pour les applications classiques ils seront dans la partie « publique » du War.
  • Passage de Tomcat à Jetty : le serveur par défaut en hosted mode sera maintenant jetty un système de plugins permettra de changer de serveur. Le passage à Jetty accelerera très probablement le démarrage du hosted mode.
  • Nouvelle gestion d’évènements : La gestion des évènements sera revue et uniformisée entre les différents composants, les Listeners actuels seront dépréciés.
  • Intégration du DatePicker et du LazyPanel : Ces deux composants passent de l’incubateur au projet principal. Le DatePicker est un assistant à la saisie de date très bien conçu et internationalisé, le LazyPanel permet lui de différer l’initialisation d’un sous ensemble de votre application afin d’accélérer le temps de démarrage.
  • Optimisation du StringBuilder : l’implémentation actuelle est notamment peu efficace avec InternetExplorer, la prochaine aura des spécificités en fonction du navigateur.
  • Optimisation du compilateur : comme à chaque version, le compilateur est optimisé et le temps de compilation sera réduit.

Les évolutions suivantes seront intégrées dans les versions ultérieures :

  • Fragmentation du code généré : Cette fonctionnalité ne sera finalement pas intégrée à la version 1.6, c’est ma déception en ce qui concerne cette version, car avec le temps de compilation, la modularité des applications produites reste un problème important.
  • Story Of Your Compile (SOYC) : un rapport sur le processus de compilation qui va notamment permettre de savoir quelle quantité de JavaScript est générée par quelle classe.
  • Hosted mode dans le browser de votre choix
  • Ui Binder : création d’une IHM par déclaration ??? cette fonctionalité sera bientôt intégrée dans l’incubateur, stay tuned :-)
  • Client Bundle : généralisation du Image Bundle aux autres ressources statiques (CSS, texte, …)
  • Optimisation des performances du mode RPC

GWT 2.0 : Hosted mode dans le browser de votre choix

Publié le 7 décembre 2008 par Thomas Recloux

Après les fragments de GWT 1.6, l’ami Sami nous présente le « Out Of Process Hosted Mode » qui permettra d’exécuter l’application dans le navigateur de votre choix en mode développement et non plus avec l’unique moteur de rendu supporté sur chaque plateforme (Win : IE, Linux : Mozilla, Mac : WebKit).

L’intégration dans les navigateurs se fera à l’aide de plugins qui communiqueron avec la JVM GWT via une socket TCP. A ce stade le javascript se sera pas encore généré et on gardera toujours la possibilité de rentrer en debug dans le code « client ».

Ca bouge du coté des plugins maven pour GWT

Publié le 30 novembre 2008 par Thomas Recloux

Charlie Collins annonce qu’il va rejoindre le projet Mojo afin de fusionner le plugin GWT-Maven qu’il a réalisé avec celui du projet Mojo : gwt-maven-plugin.

Je pense que c’est une très bonne nouvelle pour l’industrialisation des projets GWT, tous les efforts d’outillage autour de maven porteront sur le même produit.

Suivre vos applications avec Appspy

Publié le 29 novembre 2008 par Thomas Recloux

Olivier m’a envoyé hier un email pour m’annoncer la sortie de son nouveau projet OpenSource : Appspy.

Appspy offre une solution pour le suivi de vos applications Java coté serveur en production, vous pourrez ainsi consolider toutes sortes de données issues des différentes instances de vos applications et par exemple savoir quelles URLs sont sollicitées, quelles URLs sont lentes ou encore comparer les temps de réponse entre deux versions.

Les applications intègrent un module client qui collecte les données et les fournit au serveur qui permet de les visualiser sous formes de rapports paramétrables. Le tout est disponible sous la licence Apache 2.0 qui est « business friendly ».

Je ne vais pas tarder à essayer cet outil sur un de mes projets, je vous en dirai plus à ce moment la. Ayant eu l’occasion d’utiliser un ancien produit de la même gamme écrit par Olivier, je suis assez impatient :-)

Lectures du jour

Publié le 26 novembre 2008 par Thomas Recloux
  • Agilité : Des priorités pour le père noel
    Sur QualityStreet, JC applique une méthode agile pour construire la lettre au père noël de ses enfants.
    Ca m’a bien fait rire et j’ai ensuite trouvé que l’exemple était très parlant et pouvait servir à expliquer l’intérêt des méthodes agiles.
  • Technique : GWT va enfin gérer les « grosses » applications
    L’ami Sami explore le code source de GWT et y trouve une future fonctionnalité : la possibilité de scinder le javascript en plusieurs fichiers afin d’améliorer la modularité et de limiter le cout de chargement initial.

Lectures du jour

Publié le 25 novembre 2008 par Thomas Recloux

Un nouveau type d’article sur ce blog : mes lectures du jour. Je vais y présenter les articles qui ont retenu mon attention en essayant de donner mon point de vue si il y a lieu.

  • Agilité : Compte rendu de Sprint par Claude Aubry [fr]
    Claude nous parle du compte rendu des bilans de Sprint, afin de fournir l’information aux personnes qui n’étaient pas présentes lors du bilan.
    En bonus, Claude fournit son modèle de présentation OpenOffice, merci Claude :-)
  • Agilité : Explications que la réunion de planification [en]
    Mike Cohn répond à la question : « Est il necessaire d’estimer les taches en heures ? »
    Il y répond que l’estimation fine du temps necessaire pour chaque tache identifiée à partir des user story candidates est la seule manière d’obtenir un engagement sérieux de l’équipe sur les élements de la backlog qu’elle va réaliser pendant le Sprint.
  • Technique : mise en place de la réplication Subversion chez Atlassian [en].
    Atlassian est l’éditeur d’outils très populaire comme JIRA, l’outil de gestion de taches, confluence un Wiki, Clover (couverture de tests) ou encore Fisheye le client web pour les gestionnaires de source.
    Steve Smith nous décrit la mise en place de Subversion dans un contexte distribué, en effet Atlassian est constitué d’équipes réparties sur plusieurs continents et le coté centralisé de l’architecture subversion peut devenir pénalisant. Leur mise en place s’appuie sur la fonctionnalité  write-through proxy qui est arrivée avec Subversion 1.5 et qui permet d’utiliser un serveur local comme serveur esclave, ce serveur permet d’accèlerer les opérations de lecture tout en délégant les opérations d’écriture (commit) vers le serveur maître, ce de manière transparente pour le client.
    La particularité dans la mise en place effectuée chez Atlassian est que la synchronisation entre les esclaves et le maître est faite de manière asynchrone afin de ne pas trop pénaliser les opérations d’écriture.
  • Technique : Cuk.ch nous présente Versions : un client Subversion pour MacOS [fr].
    Et en profitte pour expliquer clairement ce qu’est Subversion.
    Pour ma part je trouve que le tarif de Versions est un peu élevé, j’utilise les plugins eclipse (Subversive ou Subclipse) pour mes taches de développement et la ligne de commande pour les manipulations sur plusieurs projets eclipse.
    J’en profitte pour vous annoncer que je vais vous parler un peu plus d’outils Mac dès que mon employeur aura réceptioné mon MacBook Pro :-)

Support de GWT dans Spring

Publié le 16 novembre 2008 par Thomas Recloux

Didier Girard a créé une demande dans le JIRA du projet Spring en vue d’ajouter le support de GWT.

Si comme moi vous pensez que cette cohabitation peut s’améliorer si les gurus de chez Spring se penchent dessus, votez pour cette demande.

Planning poker sur iPhone

Publié le 13 novembre 2008 par Thomas Recloux

En fouillant l’AppStore à la recherche d’un jeu de poker, je suis tombé sur ces deux applications pour iPhone qui permettent de participer au planning poker en affichant une carte sur l’iPhone.

Planning Poker reprend les cartes proposées par Crisp.

ScrumTools propose en plus une minuterie pour s’assurer que le Scrum quotidien ne dépasse pas les 15 minutes. Ca fait doublon avec l’application « Horloge » fournie avec l’iPhone.

Améliorer la productivité sous Eclipse avec MouseFeed.

Publié le 30 octobre 2008 par Thomas Recloux

Lors du dojo de l’AgileTour à Lille, Dimitri Baeli avait évoqué un plugin eclipse qui favorisait l’apprentissage des raccourcis clavier.

La lecture de cet article m’a rappelé son nom et j’ai donc installé le plugin MouseFeed.

Depuis, à chaque fois que j’utilise la souris alors qu’un raccourci clavier existe, un marqueur m’indique le raccourci correspondant.

Exemple :

Exemple MouseFeed

Je pense que ce plugin peut nous faire gagner en productivité car bien que fan des raccourcis clavier, j’ai pu constater lors des dojo que d’autres en tiraient bien plus avantage.

A noter que par défaut le plugin s’attribue la combinaison de touches Ctrl + Shift + 1 qui sur les claviers azerty est aussi utilisée pour effectuer la combinaison Ctrl + 1 qui correspond à l’action « Quick Fix » qui permet de lister les correctifs proposés par eclipse. Il faut donc changer l’un des deux.