Publié le 14 mai 2009 par Thomas Recloux
C’est reparti avec les articles qui ont retenu mon attention cette semaine.
- Versioning des Services REST.
Sur le Blog Octo, Benjamin Magan nous propose une stratégie pour le versioning des Services REST.
La technique proposée est élégante et repose sur la négociation du contenu et l’entête « Content-Type ». Le client indique à l’aide cet entête, non seulement le format de représentation des données (XML, JSON, …) mais aussi la version du service qu’il utilise.
De cette manière, l’URL reste inchangée ce qui est important avec des services REST.
- La vélocité des Bugs
Alexandre Boutin nous explique sa vision au sujet de la comptabilisation des bugs et des story non fonctionnelles dans la vélocité de l’équipe.
Pour Alexandre, il faut compter les story non fonctionnelles car elles apportent de la valeur en terme de productivité, performance ou encore qualité. Par contre il considère que les corrections de bugs n’apportent pas de valeur et le les comptabilise donc pas. Dans les commentaires de l’article, Claude Aubry nuance cet avis dans les commentaires en proposant de comptabiliser les corrections de manière séparée.
- Intégration GWT/Spring Simple
J’en ai rêvé, je m’étais promis de m’y intéresser, il l’a fait 
Enfin une solution simpliste pour que Spring instancie les services RPC de GWT et puisse donc y injecter proprement les dépendances et y appliquer les aspects qui vont bient (gestion de transaction, sécurité, …). Merci ! (via onGwt)
- Plus de projets en échec en 2008
Sur le blog de Pyxis, Martin Proulx nous présente les statistiques du Standish Group à propos des succès des projets logiciels. En résumé, les chiffres se dégradent avec seulement 32% de projets en succès (délai, couts, périmètre). Il est certain que les méthodes agiles à elles seules ne vont pas permettre de passer à 100% de succès, mais j’en suis convaincu, beaucoup d’entreprises gagneraient à changer une méthode qui perd, à remettre en cause leur organisation et à essayer les méthodes agiles.
Tags: actualité, agile, gwt, scrum, spring | Aucun commentaire »
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
Tags: actualité, agile, gwt, mac, spring, subversion | Aucun commentaire »
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.
Tags: gwt, java, spring | Aucun commentaire »
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.
Tags: java, jms, performances, spring | Aucun commentaire »