Test de PlayFramework

Tout d’abord, je souhaite exprimer le but de ce post. Ce n’est pas un tutoriel sur ceframework mais plus un ressenti et mon opinion après quelques jours de pratiques

Qu’est ce que play?

Voila la définition sur le site :

The Play framework is a clean alternative to bloated Enterprise Java stacks. It focuses on developer productivity and targets RESTful architectures. Play is a perfect companion to agile software

play_logo_final_big.png

Création d’un projet

Très simple :

Le framework s’appuie plus sur des conventions que sur du paramétrage. Je trouve l’approche à la fois simple et réaliste. La structure du projet l’est également.

Intégration avec netbeans

Simple et efficace :

Toutes les actions sont définies. La compilation est désactivée car inutile avec playframework

Pour Google App Engine

La il faut un peu se renseigner. Ce framework fonctionne sous les serveurs JAVAEE, mais une légère configuration s’impose pour GAE. Les extensions existent et fonctionnent bien. Cependant on ne peut utiliser ni JPA ni JDO directement. J’ai « du » me mettre à Objectify. J’ai été agréablement surpris. Après avoir galéré pour intégrer un modèle avec JPA, ce framework facilite l’accès de manière relationnelle au datastore.

Le point négatif de cette intégration est le non support du module CRUD sur la plateforme de google.

Rapidité de développement

La c’est la baffe. Tout est très rapide, on code et, sans compiler/livrer/ on a un environnement disponible pour les tests. Les erreurs de compilation sont directement accessibles dans le browser ( si besoin…), c’est très réactif.

Simplification du code

J’ai déjà abordé l’un des points forts (ou faible selon les cas) . Ce framework est très structurant car il se base énormément sur les conventions de développements (ex.: packages controllers, models, view) et non sur le paramétrage.

Les pojo

Le développement des pojo est largement simplifié : Exit les getters et setters! On arrive a peu près à ce genre de classe :

Une VRAI (?) conception objet

Un des points noirs des développements actuels réside dans le fait que l’on ne fait que des POJO pour stocker les données et des classes services ( résidus de spring) qui centralisent les diverses opérations. En bref, nous arrivons la plupart du temps à un antipattern décrit plus en détail par Martin Fowler. Ici toutes les méthodes liées à un domaine sont centralisées dans la classe en question.

REST

Un GROS plus de ce framework est d’avoir une architecture entièrement REST. Toutes les actions sont spécifiées par des chemins REST:

Je pense que ceci peut faciliter le développement d’applications multi-canaux.

GUIS

La on oublie les specs JSF 2.0 , tout est basé sur des templates. Après quelques heures de pratique on trouve rapidement ses marques . Les domaines ( voir les pojo) sont regroupés dans des répertoires et il y a une page pour l’édition, l’affichage, etc…

L’affichage d’une liste d’éléments :

Pour l’édition/insertion on a un écran qui contient ce genre d’éléments :

On déjà peut voir que ce framework offre par défaut coté front-office:

  1. La gestion de l’identification et facilite cette intégration dans les pages par la fonction #{authenticityToken /}
  2. La gestion des erreurs est elle aussi fournie par le framework par introspection dans le champ (variable field)
  3. Une gestion de templates intéressante ( réutilisation des modèles crées). Pas besoin de connaître le cycle de vie des managed beans JSF par exemple.

Les liens create, delete sont référencés dans le fichier routes décrit ci-dessus.

Pérennité / Fiabilité

La grosse inconnue.Qui sont les boites qui utilisent ca au quotidien, qui réalisent des applications avec beaucoup d’utilisateurs… Ce framework est réalisé par une société française Zenexity sous licence Apache2. On n’a pas la vue sur les gros projets en production. Il existe une plateforme d’exécution playapps.net qui héberge des applications PLAY sur le cloud. On paye par rapport à l’utilisation, ça permet d’ouvrir l’ouverture de services basés sur la plateforme JAVA au plus grand nombre.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *