dimanche 25 septembre 2011

Play Framework Cookbook

J'ai eu la chance de recevoir un exemplaire gratuit du livre Play Framework Cookbook de la part de Packt en échange d'une critique sur ce blog. Je vais donc essayer de vous donner mon avis tout en restant le plus objectif possible.




Après un premier chapitre qui présente toutes les opérations courantes d’un projet Play (création de vues, modèles, routes, gestion de la session utilisateur...), le livre se focalise sur un ensemble d’astuces répondant à des cas concrets. On trouve par exemple des chapitres traitant de (au hasard et dans le désordre) :
  • la configuration des routes par annotations 
  • le caching 
  • la génération de fichiers PDF ou de graphiques avec Google Chart API 
  • l’injection de beans Spring ou Guice 

Le livre explique en détail les principes de la création de modules Play et donne des exemples d’utilisation de modules existants, comme la connexion à une base NoSQL à l’aide du module MongoDB.
Si on devait résumer le style d’écriture, ce serait “beaucoup de code et peu de blala”.
Pour chaque partie on retrouve les mêmes sections : getting ready, how to do it, how it works, there is more.
Cette structure permet de comprendre en détail le fonctionnement des différentes briques du framework. La dernière de ces 3 parties a un rôle d’ouverture, on y trouve des conseils pour améliorer notre code ou pour booster les perfs ainsi que des solutions alternatives en s’appuyant par exemple sur des librairies externes.

Le livre ne s’arrête pas au développement d’une application Play. Il présente un certain nombre d’astuces pour la mise en production (comme la mise en place d’un load balancer), l’intégration continue (avec jenkins), la gestion des logs ou encore le paramétrage d’un repository de modules privé.
Vous l'aurez compris, il couvre donc un scope d’astuces assez large. Ce livre ne demande pas forcément une lecture linéaire : on peut facilement sauter des chapitres pour aller directement chercher l’exemple qui répondra à notre problème du moment.

Si on devait trouver quelques petits manques ou défauts, aucune plateforme de cloud n’est présentée. Le livre a été écrit trop tôt pour parler du PaaS Heroku, cependant les modules CloudBees et Google APP Engine existent depuis un certain temps et auraient pu être abordés. Pas de Scala non plus, mais il est vrai cela demanderait presque un deuxième livre, l’API Play Scala étant vraiment différente de la version Java (ceci devrait changer avec Play 2.0).
Enfin, le livre s'adresse plutôt aux personnes qui connaissent les bases de Play et qui veulent des recettes pour répondre a des problèmes précis. Cette démarche va assez loin puisque le livre comprend même une partie dédiée à l’optimisation de byte code. En ce sens, le tutoriel YABE de la documentation officielle ou le livre Play.Rules (pub perso ;) seront sûrement des pistes à privilégier pour les novices.
Cet ouvrage sera par contre une mine d’or pour les développeurs qui se lancent dans un projet “real life” et qui cherchent un vrai cookbook avec des techniques applicables au quotidien. Et comme je suis sympa je vous offre un chapitre gratuit!