Note de lecture : Wicket in Action, par Martijn Dashorst & Eelco Hillenius

Note : 7 ; Un apprentissage progressif, classique et sans surprise mais efficace d’un framework Web à la sauce client riche.

Wicket est un Framework de présentation Web vraiment à part. En effet, c’est à ma connaissance le seul à être statefull. En cela et par sa séparation HTML / Java, il me rappelle beaucoup les frameworks d’IHM Windows avec lesquels j’ai longtemps travaillé (OWL et MFC). C’est sans doute pour cela que je me sens à l’aise avec.

Wicket in action est sans nul doute un très bon tutorial pour comprendre et rentrer dans Wicket, par la pratique.

Le premier chapitre nous présente un incontournable « Hello, World » à la sauce Wicket. C’est très bien … à l’exception de mon incapacité à faire fonctionner cela par moi-même ! En fait, certains ingrédients nécessaires viennent plus tard, beaucoup plus tard ! C’est l’un de mes seuls reproches par rapport à ce livre par ailleurs excellent.

Le second chapitre fait le tour du Framework, une excellent idée, même si au final l’ensemble est un peu lourd à digérer pour un début. Mais les chapitres suivants vont revenir sur chacun des éléments.

Une application web, ça commence par une page, puis deux, puis trois. Avec le troisième chapitre les choses sérieuses commencent et on y construit une vraie amorce d’application Web, avec du HTML et des pages Wicket mappant des composants, une redirection de page, etc… C’est aussi le début de l’application d’exemple du livre. S’il n’y avait qu’un seul chapitre à lire, ce serait celui-ci.

On se plaint parfois de la complexité des modèles Wicket, mais ceux-ci sont admirablement expliqués au chapitre 4, en avançant progressivement sur les types de modèles de plus en plus complexes. Bravo !

Le chapitre 5 sur les liens, labels et répéteurs nous donne l’impression de revisiter une partie du chapitre 3. C’est une impression assez bizarre. Mais la qualité pédagogique est toujours au rendez-vous.

Même long de presque 40 pages, le chapitre 6 sur les formulaires explique clairement les composants de saisie, mais aussi la cinématique de fonctionnement du formulaire, c’est à dire son cycle de vie.

Le chapitre 7 conclut la seconde partie de ce livre en présentant la composition des pages, la manière de modulariser celles-ci et d’améliorer ce faisant la réutilisabilité.

La troisième partie s’attache aux usages avancés de Wicket. Le chapitre 8 ouvre le bal avec le développement de composants réutilisables. Pas franchement facile à suivre.

Plus important (on aurait pu mettre ça en seconde partie), l’utilisation des CSS et des ressources est au cœur du chapitre 9. Un contenu finalement indispensable.

Le chapitre 10 conclut cette 3ème partie, et c’est avec l’inévitable volet Ajax de Wicket. Je ne suis pas franchement sûr que celle-ci soit toujours d’actualité avec l’avancée des librairies Ajax modernes, dont JQuery, pour laquelle une adaptation Wicket existe : WiQuery.

La quatrième partie évoque la mise en production des applications Wicket. On commence au chapitre 11 par évoquer la sécurité et l’usage des contextes de session. Le chapitre 12 parle d’internationalisation. Nécessaire mais ennuyeux.

Le  chapitre 13 s’intéresse à l’intégration avec Spring et Hibernate. C’est un sujet important, mais hélas pas très bien traité ici.

Le dernier chapitre (la mise en production) nous réserve une étonnante surprise : il débute par l’évocation des tests unitaires ! Franchement on aurait pu débuter le livre par ça, ou presque ! Puis on évoque un reste à faire de petits sujets : configuration, logging, monitoring (avec JMX), etc..

Le livre est vraiment excellent. Je le conseille (presque) sans réserve aux personnes souhaitant se mettre à Wicket. Mes réserves, les voici :

Quelques bizarreries dans l’ordonnancement des sujets, mais rien de grave.

Un contenu qui commence à dater : il s’agit de la version 1.3 de Wicket, antérieure à Java 1.5 ; la version courante fait un usage abondant des génériques et rend légèrement obsolète certaines parties de code. Le texte mériterait un rafraichissement !

wicket-inaction-manning

Référence complète : Wicket in Action – Martijn Dashorst & Eelco Hillenius – Manning 2008 – ISBN: 1932394982 ; EAN: 978 1932394986

Wicket in Action


http://www.goodreads.com/book/add_to_books_widget_frame/1932394982?atmb_widget%5Bbutton%5D=atmb_widget_1.png

Agile Playground #5 (en images)

Lors de ce 5ème agile playground, nous étions comme c’est maintenant l’habitude, accueillis chez Valtech. Grand froid et même un début de neige ont retardé l’arrivée des habitués. En fait, le taux de désistement a été particulièrement important : environ 35 participants pour plus de 60 inscrits !

apg5-before01

Bon, ce n’est pas cela qui va nous arrêter. D’autant que cette semaine, Yannick et moi étions impliqués pour une première du “Business Value Fail” que nous avons imaginé ensemble !

Place au choix des sessions pour les participants…

apg5-register01

… et place à la présentation des sessions pour les animateurs.

apg5-presentation01

Le second jeu “les derdians” était animé par Lan Levy.

apg5-presentation02

Ne comptez pas sur moi pour vous dévoiler le Business Value Fail ! En tout cas pas tout de suite. Ce serait dommage si vous n’y avez pas encore participé et que vous comptez le faire.

Bon, finalement je vais quand même soulever un coin du voile.

Aujourd’hui, il y avait 3 équipes

apg5-bvf04

La première…

apg5-bvf06

La seconde…

apg5-bvf11

La troisième

apg5-bvf12

Et … bah, disons une quatrième

apg5-bvf05

Et ça bosse dur pour construire un truc qui ait de la valeur !

apg5-bvf13

A la fin de la dernière itération, présentation des résultats globaux

apg5-bvf15

Et ce pour chacune des équipes

apg5-bvf18

Et calcul et affichage des résultats

apg5-bvf-results

Nous avons terminé par un feedback sur cette première itération du jeu. Beaucoup d’idées utiles et une bonne identification des manques de notre création dans sa première mouture ! Un grand merci à tous les participants qui nous ont tous contribué. Il y aura pas mal de changements dans la version 2, je pense !

Je ne sais pas si on peut qualifier notre session d’effort, mais bon on a eu droit au réconfort.

Chips, bières et tout et tout, quoi. Des recentres et des discussions intéressantes, comme toujours aussi.

apg5-after01

Chips, bières et tout et tout, quoi. Des recentres et des discussions intéressantes, comme toujours aussi.

apg5-after03

Note de lecture : Pro SQL Server 2005 Service Broker, par Klaus Aschenbrenner

Note : 7 ; Une approche complète et didactique du sujet: bravo!

Je n’attends généralement aucun miracle de ce type de livre qui ressemble trop à un texte commandé par l’éditeur. Dans le cas présent, je me suis trompé. Déjà, et c’est important, l’auteur maîtrise parfaitement son sujet, il fait ensuite preuve d’indiscutable qualités pédagogiques, ce qui est bien plus inattendu ! Le livre est volumineux, car il compte 435 pages pour un sujet somme toutes pointu. Mais le livre se veut exhaustif sur le sujet. C’est aussi pourquoi le livre est divisé en deux parties, la première, le « programming model » étant l’introduction, la seconde « Advanced service broker programming » intéressera l’expert ou le DBA. Nous avons donc deux livres en un, en quelques sortes. C’est une bonne chose, car les livres APress sont souvent assez chers.

La première partie est composée de 7 chapitres totalisant 220 pages. Les deux premiers nous offrent un tour complet technique et fonctionnel de Service Broker. C’est un vrai plaisir, et l’on a une idée très clair du fonctionnement et des possibilités de l’outil à cet issu. Le 3ème chapitre complète le tableau en présentant les différentes briques de programmation permettant de mettre en place un service de messagerie : messages, queues, contrats et services. En réalité, on est déjà capable de mettre en œuvre un « hello world » assez élaboré arrivé à ce stade. Le chapitre 4 dédié à l’activation permet d’avoir une vision claire sur les possibilités de déploiement et d’administration des services (cela sera complété en seconde partie). Les 3 derniers chapitres sont consacrés à des sujets déjà avancés : l’écriture de services en .NET avec C#, la gestion des transactions et des services distribués.

Je ne suis pas bien sûr d’être la bonne audience pour la seconde partie, le niveau est un peu élevé pour moi. Il traite de sujets aussi avancés et complexes que les autorisations et l’encryptage, l’architecture SODA (Service Oriented database Architecture, pour le coup ça m’intéresse à nouveau), le développement d’applications en grandeur réelle, la scalabilité et les performances.

Je n’hésite pas à le dire, voici un très bon livre. Le propos est clair et précis, les exemples assez nombreux et pas trop touffus, ils illustrent bien le propos. De plus, l’auteur n’a pas hésité à ajouter de nombreux diagrammes pour expliquer l’architecture ou la cinématique, ce qui manque notoirement souvent à de tels ouvrages. Par contre, et c’est un bon symptôme, il a souvent renoncé aux sacro-saintes copies d’écran, sauf quand elles apportaient réellement quelque chose !

Si Service Broker vous intéresse, c’est LE livre. Une nouvelle édition adressant SQL Server 2012 est bien évidemment parue depuis. Malgré le considérable enbompoint qu’elle a pris au passage, je ne doute guère que la qualité restera au rendez-vous ! Pour Klaus Aschenbrenner, « pro, ça veut dire pro ».

pro-sqlserver2005-service-broker

Référence complète : Pro SQL Server 2005 Service Broker, Learn how to program distributed message applications with SQL Server 2005 Service Broker – Klaus Aschenbrenner – Apress 2007 – ISBN : 1-59059-842-3 ; EAN : 978 1 59059 842 9

Pro SQL Server 2005 Service Broker


http://www.goodreads.com/book/add_to_books_widget_frame/1590598423?atmb_widget%5Bbutton%5D=atmb_widget_1.png

Note de lecture : Implementing Lean Software Development, par Mary et Tom Poppendieck

Note : 7 ; Suite de l’opus précédant…

Le précédant ouvrage des Poppendieck nous avait accoutumé aux pratiques Lean, celui-ci passe en quelque sortes, une seconde couche. Les principes sont à nouveau passés en revue, mais ici on consacre un chapitre par élément (et non par principe) important. Leur mise en valeur s’effectuant essentiellement à l’aide de cas d’exemples, non seulement pour introduire chaque chapitre, mais aussi pour illustrer celui-ci tout au long.

  • Value : La valeur est au centre des principes Lean, non seulement pour délivrer les fonctionnalités apportant le plus de valeur et ce régulièrement (itérativement), mais en délivrant celle-ci le plus rapidement possible en optimisant la chaine de valeur et en focalisant les équipes sur les activités qui délivrent cette valeur.
  • Waste : C’est aussi en focalisant les équipes sur les activités liées au produit final que l’on élimine le gâchis, mais aussi en éliminant les produits semi-finis ou en éradiquant le « hands-off » ou passage de relais formels entre deux équipes. Parmi les 7 origines du gâchis on trouvera également les fonctionnalités inutiles, les défauts, les délais, le réapprentissage et le « task switching », tous symptômes qui peuvent être éliminés à la racine.
  • Speed : La théorie des files d’attente est au centre des préoccupations de rapidité. Ici l’attention est portée sur les temps de cycle, et le moyen le plus efficace pour les raccourcir : l’élimination des temps d’attente
  • People : Le moyen de rendre plus efficace une équipe est de lui confier sa propre destinée! C’est aller plus loin que la simple “responsabilisation”. L’équipe ainsi autodirigée trouve son accomplissement dans son propre travail. Fini la motivation par les bonus et autres salaries variables…
  • Knowledge : Créer de la connaissance, apprendre en faisant. C’est résumer un peu rapidement l’esprit de la chose, mais ici il est question de “set based design” et de refactoring, au final de différer les décision jusqu’au moment où l’on a appris suffisamment d’éléments pour opérer une décision judicieuse et non à priori.
  • Quality: Ce point est abordé de manière peu convaincante dans l’ouvrage, sauf peut-être quand sont évoqués les 5 “S”: Sort, Systematize, Shine, Standardize et Sustain. Bien entendu y sont aussi évoqués les tests. La catégorisation des tests qui est proposée est à mon avis très pertinente.
  • Partners : Cette partie traité des partenariats, des contrats et de l’externalisation. Lean approche cette question par le “win win” et les contrats à long terme.

La grande qualité de cet livre sont les histories qui servent d’exemples aux différentes questions abordées. Beaucoup de points restent hélas un peu abstraits, et malgré la qualité du texte, on en est toujours à se demander à la fin: “mais comment implémenter Lean dans le monde du développement logiciel ?”.

implementing-lean-soft-dev

Référence complète : Implementing Lean Software Development, From concept to cash – Mary Poppendieck & Tom Poppendieck – Addison Wesley / Signature series 2006 – ISBN : 0-321-43738-1

Implementing Lean Software Development: From Concept to Cash


http://www.goodreads.com/book/add_to_books_widget_frame/0321437381?atmb_widget%5Bbutton%5D=atmb_widget_1.png

Note de lecture : Liferay, Portal Enterprise Intranets, par Jonas X. Yuan

Note : 3 ; Un tour du produit vu par l’utilisateur sans beaucoup d’intérêt.

La qualité des ouvrages publiés par Packt pub peut s’avérer assez variable. Hélas, ici on n’est pas dans le meilleur. Je dois aussi avouer qu’il s’agit d’un choix éditorial de s’être concentré sur l’utilisation de l’outil (et de ses portlets) plutôt que sur le volet architecture ou administration. Je suis donc un peu déçu, mais l’angle adopté pourra satisfaire un lecteur souhaitant plutôt découvrir l’outil et en faire le tour des fonctionnalités. A cet égard, les 375 pages du livre sont découpés en 13 Chapitres.

Je passe rapidement sur le 1er chapitre qui ne parle pas réellement de Liferay, mais de l’intérêt d’utiliser un portail pour un intranet. Le second chapitre rentre d’avantage dans le vif du sujet en nous proposant de réorganiser les pages et la navigation dans le portail, le tout via des manipulations interactives. Une bonne entrée en matière, je dois avouer.

Le 3ème chapitre évoque la gestion des utilisateurs et des droits à différents niveaux. Il manque une explication synthétique de cette gestion des droits par ailleurs complexe. Hélas encore, les aspects d’intégration LDAP et SSO sont évoqués plus que légèrement.

Le 4ème chapitre est consacré à la portlet forum et à la gestion des tags. Une vue utilisateur et trop superficielle à mon goût. Il en vu de même pour les chapitre 5 et 6 consacrés respectivement au Wiki et aux Web Forms, puis aux blogs et des flux RSS. On pourra toujours se dire qu’à l’issu de ces 4 chapitres on a une vue intéressante des portlets standard du produit !

Le chapitre 7 continue le tour des portlets, avec une petite originalité : WSRP, c’est à dire l’accès aux « remote portlets », mais tout ceci reste bien superficiel. Le chapitre 8 est dans la même ligne, expliquant l’utilisation du CMS interne de Liferay, mais sans vraiment entrer dans le fond.

Bref, tout ça continue dans la même lignée jusqu’au chapitre 13. Dans l’ensemble ce livre n’est pas foncièrement mauvais, il est simplement inutile, car il donne fort peu de choses par rapport au tour du propriétaire que l’on peut faire par nous même. J’aurais aimé une compréhension plus en profondeur de l’outil, qui aurait justifié l’existence de ce titre, mais que nenni !

Liferay-Portal-Enterprise-Intranets

Référence complète : Liferay, Portal Enterprise Intranets – Jonas X. Yuan – Packt publishing 2008 – EAN : 978 1 847192 72 1

Liferay Portal Enterprise Intranets


http://www.goodreads.com/book/add_to_books_widget_frame/1847192726?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on