Java, SOA, Architecture & Methodes agiles par Thomas Recloux

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.

Spring JMS : Augmenter les performances

Publié le 29 octobre 2008 par Thomas Recloux

A plusieurs occasions, j’ai eu l’occasion de conseiller l’utilisation de Spring JMS car cette API simplifie énormément la manipulation de l’API JMS qui il faut l’avouer n’est vraiment intuitive.

En effet l’API JMS nécessite de manipuler 6 objets (QueueConnectionFactory, QueueConnection, QueueSession, Queue, MessageProducer, TextMessage) pour simplement envoyer un message texte !

Avant de pouvoir utiliser l’api Spring JMS, il faut configurer une ConnectionFactory  (Exemple avec Active MQ) :

<bean name="activeMqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://theactivemqserver:61616" />
</bean>

Ensuite, il faut récupérer un objet JmsTemplate dans lequel la ConnectionFactory aura été injectée.

Enfin, l’envoi d’un message peut se faire de différentes manières mais un simple appel de la méthode convertAndSend pourra suffir.

Il se trouve que par défaut le JmsTemplate peut limiter les performances des applications car il entraine la création des objets Connection, Session et MessageProducer pour chaque envoi.

La solution peut se trouver du coté du provider JMS qui comme ActiveMQ peut proposer une ConnectionFactory adaptée en gérant un pool d’objets Connection, Session  et MessageProducer.

La solution peut aussi venir d’un objet fourni par Spring depuis la V2.5.3 : CachingConnectionFactory cette ConnectionFactory peut encapsuler n’importe quelle autre ConnectionFactory et mettre en place le cache de Connection, Session et MessageProducer.

Dans mon cas, l’utilisation de la CachingConnectionFactory a résolu nos problèmes. Un profiling de l’application avait montré que nos Threads passait leur temps à ouvrir des Session JMS.

Contractualisation agile

Publié le 27 octobre 2008 par Thomas Recloux

Vendredi dernier, je participais à la réalisation d’une proposition commerciale pour du développement en mode agile. Pour résumer, nous proposons une facturation à l’itération et une possibilité de sortie à la fin de chque itération ( de deux semaines )

Samedi, mon agrégateur RSS me propose cet article de Jeff Sutherland qui travaille sur un modèle de contrat agile. Le document de travail insiste sur les rôles du client :

  • Etablir la liste des fonctionnalités priorisées
  • Participer au sprint planning
  • Le client et le fournisseur doivent intégrer au contrat l’estimation des fonctionnalités demandées. (en point ?)
  • Ecrire les tests d’acceptation des fonctionnalités demandées avant leur développement.
  • Participer au bilan de sprint.

Le client peut mettre fin au projet à la fin de chaque sprint mais doit s’acquitter de 20% du cout des itérations non réalisées.

Bien sur le client peut sans surcout remplacer des fonctionnalités par d’autres, tout en gardant une même taille globale.

A suivre !

AgileTour à Lille ce mardi

Publié le 10 octobre 2008 par Thomas Recloux

Le mardi 14 octobre, AgileTour débarque à Lille.

L’événement aura lieu dans les locaux de l’école Telecom Lille 1, les participants joueront le rôle de directeur de produit et pourront choisir les conférences ou ateliers qu’ils veulent planifier lors des deux itérations.

Pour ma part, je propose un retour d’expérience de Norsys sur les équipes distribuées (notamment en OffShore) et plus particulierement de l’intégration continue.