J’ai terminé la lecture des quelques 292 pages du livre « Play Framework Cookbook », publié chez Packt. En quelques mots : un bon livre qui s’adresse aux débutants mais aussi aux personnes ayant déjà une bonne expérience de Play Framework. Nous allons voir ensemble ce que j’ai trouvé d’intéressant. Un petit mot sur Play avant, pour ceux qui ne connaissent pas ce framework web.
Qu’est-ce que Play Framework ?
Play! Framework est un socle de développement web java, qui permet de développer des applications et des sites internet rapidement. Si vous êtes développeur Java, ce framework vous apportera la productivité de Ruby On Rails, sans la relative complexité du monde Java de ces dernières années. C’est avant tout un outil fait pour réaliser des applications Webs.
Pour tester et apprendre cet outil : http://www.playframework.org/
Je l’ai découvert il y a plus d’un an, et j’ai codé l’ensemble de l’eXpress-Board avec cette technologie. L’eXpress-Board est un site d’offres d’emploi pour les geeks, un site de rencontre entre les développeurs et les recruteurs.
L’idée du livre
Le livre présente environ 60 recettes, des idées et des explications pour construire une application web avec le framework. Au delà du livre théorique, c’est avant tout un livre qui permettra de découvrir rapidement de nouvelles idées en quelques pages.
Ce que vous y trouverez
Le chapitre 1 couvre l’installation, le démarrage et l’écriture de votre première application. En 35 pages, vous aurez compris les bases du framework. La définition des routes, la configuration du modèle, la gestion de la session : tout est plutôt bien expliqué. Il manquera une partie JPA pour les vrais débutants, venant du monde PHP par exemple, et n’ayant pas de connaissances en JPA. Par contre j’ai trouvé que les explications du moteur asynchrone de Play! était plutôt bien faites. Si vous souhaitez découvrir les requêtes suspensables, les web sockets, bref ce qui permet d’avoir une application scalable, je vous conseille cette partie.
Dans le deuxième chapitre, l’auteur détaille la configuration des routes, la gestion du cache, la génération de PDF, la validation des Entités lors de la création ou de la modification via un formulaire. Ce chapitre parle aussi JSON et RSS, il donne une bonne présentation de la partie Controllers.
Le chapitre 3 explique comment ajouter à Play de nouvelles possibilités via les modules. Très populaire du côté de Grails, on retrouve ce même principe avec Play. Vous pouvez ainsi ajouter le support de Spring ou de Guice. Plusieurs pages présentent des cas d’usages. L’authentification et l’autorisation sont détaillées avec le module secure. Enfin une présentation très intéressante de MongoDB et GridFS m’a donné envie d’aller voir. Un petit regret cependant sur MongoDB : on reste sur sa faim. J’ai trouvé un peu léger les explications et l’exemple présenté. Mais bon, difficile de tenir en une dizaine de page.
Le chapitre 4 parle d’API. A la fin de ce chapitre vous serez capable :
– d’utiliser Google Chart API pour générer des graphiques
– d’ajouter une recherche Twitter dans votre application
– de générer différents formats dans votre contrôleur
– d’utiliser JSON et XML efficacement
Le chapitre 5 explique comment écrire son propre module. En une trentaine de pages, l’auteur couvre la création, l’installation et la livraison des modules.
Le chapitre 6 va plus loin avec une présentation détaillé d’un module. Vous verrez comment utiliser Solr pour l’indexation des données, ou comment écrire votre propre implémentation de cache.
J’ai particulièrement bien aimé le dernier chapitre, le chapitre 7, sur la mise en production et le développement en équipe. Alexander parle de l’intégration de Jenkins, avec une suite de captures d’écran et une explication détaillée du mode autotest de play 1.2. Il parle aussi de Calimoucho, un projet Play qui permet de faire de l’intégration continue, que je n’ai pas testé. Ce chapitre est assez détaillé car l’auteur partage son expérience du « gars qui met en production l’application », chose assez rare en général. Vous apprendrez à utiliser SSL, à mettre en place du monitoring applicatif avec JMon, avec Icinga ou Munin. Alexander explique aussi comment configurer plusieurs serveurs Play en cluster, ou comment placer un Nginx ou un serveur Apache en frontal. Vous voyez, c’est le genre de truc que Monsieur le gars de l’entreprise ne maîtrise pas, mais qu’ici on prend plaisir à lire. Play Framework c’est avant tout fait pour faire du Web, avec de nombreux clients en frontal. J’ai vraiment trouvé ce chapitre très intéressant. Bravo à Alexander.
Ce qu’il manque
Dans la liste des petits points qu’il manque : Scala et PlayApps.net. Pour Scala, c’est normal car le module est encore très jeune. Alexander a débuté l’écriture de son livre en octobre 2010. Et à cette époque le module était encore assez jeune. Même aujourd’hui, je pense qu’il faudra attendre la fin de l’année pour avoir une base assez stable.
Par contre j’ai regretté l’absence de PlayApps.net, la plateforme de Zenexity. Ok cela aurait fait un gros coup de publicité pour celle-ci, mais je trouve que cela aurait pu tenir dans le chapitre 7.
Sur certains exemples, le livre est un peu léger sur les explications. Evidemment c’est facile pour moi de critiquer, connaissant particulièrement bien le framework. Mais c’est très mineur. Vous pouvez y aller, vous ne serez pas déçu.
Conclusion
Un très bon livre, qui sera intéressant pour les débutants, comme pour les personnes expérimentées. Le style et la maquette du livre sont agréables à lire. Les exemples sont bien pensés, et il y a vraiment du « prêt à mettre en oeuvre ». Donc bravo à Alexander Reelsen, qui donne des réponses claires aux quelques questions qui viennent lorsque l’on découvre Play Framework.
Où trouver le livre et le commander : http://link.packtpub.com/7jWIAT
J’en profite pour vous faire part d’une nouvelle amusante. L’an dernier à la conférence Devoxx 2010, Matt Raible, le Zidane des frameworks Webs Java, a fait une très bonne présentation des différents frameworks Webs du monde Java. Voyez les slides ou la vidéo sur Parleys, cela vaut le coup. Dans la vidéo, Matt au début s’adresse à un gars au premier rang et lui demande : qu’est-ce que tu attends de cette session ? Et le gars lui répond : je voudrais voir si tu mets Play dans les 5 premiers. Matt rigole, le gars qui a répondu… c’était moi 🙂
Et bien Matt Raible revient à Devoxx 2011 et devinez de quoi il va parler ? De Play Framework et de Scala. Il va présenter son parcours, comment il a apprit Scala grâce à Play. Son talk n’est pas encore certain, mais lors de nos échanges sur Twitter il en a parlé.
Voilà. Un des gars les plus pointus sur le sujet qui 12 mois plus tard, vient parler de Play à Devoxx 2011… moi je trouve cela cool.
Pour le livre sur Play, voici le lien pour le découvrir : http://link.packtpub.com/7jWIAT
0 no like
J’ai aussi pris ce livre des sa sortie. J’avoue avoir ete plutot decu. Je m’attendais plus a des recettes justement sur des cas concrets. Au final, il n’y a, selon moi, pas beaucoup plus que dans la documentation officielle. Bon, ce livre a au moins le merite d’exister et le chapitre sur les modules est bien fourni, contrairement a la doc officielle justement. J’espere en tous cas que ce n’est que le premier livre d’une longue serie sur le sujet ….
Même avis que Mike pour ma part.
J’utilise Play depuis peu de temps (mais assez habitué aux framework J2EE / Symfony), et j’avoue que je n’ai pas trouvé beaucoup de choses intéressantes dans ce livre.
Un peu déçu de mon achat.