[PlayFramework] Premier jour de jeu!

Aujourd’hui, comme annoncé dans mon dernier article de la nuit passée, j’ai donné une chance à ce récent framework Java, permettant le développement web, j’ai nommé Play!

Ce que j’ai fait

Tout d’abord, j’ai commencé par télécharger ce framework, voir comment il était structuré, ce qui était possible, ce qu’il y avait fourni avec, etc…

Alors, fourni en téléchargement, il y a :

  • Documentation du framework, dans son dossier
  • Le framework en lui-même, avec les sources!
  • Python, pour l’utilisation sous windows de l’invite de commande permettant de créer un projet, lancer le serveur, etc…
  • Le plugin pour eclipse
  • Et bien sûr, l’invite de commande de Play

J’ai donc installé le plugin, et configurer mon eclipse afin de pouvoir travailler convenablement^^. Pour installer le plugin, rien de plus simple, il suffit d’ajouter le .jar se trouvant dans support/eclipse dans le dossier d’eclipse, et le tour est joué.

Ensuite, je me suis dirigé vers le guide se trouvant sur le site du framework, et je l’ai suivi pour réalisé ce blog.

Et pour finir, j’écris ce billet pour vous dire ce que j’ai apprécié, et ce que j’ai moins aimé en développant avec Play!

Ce que j’ai apprécié

Premièrement, la simplicité de développement. Mes souvenirs de JSF, un immense paquet de fichiers XML où il faut configurer 452 choses pour pouvoir déjà rien que lancer l’application, et après, un espèce de patchwork à mettre en place, qui une 1 sur 2 ne marchais pas. Ici, avec Play!, je n’ai pas eu ce genre de soucis. J’ai créer mon projet, j’ai appelé la commande pour réalisé les fichiers eclipse, j’ai importé le projet, j’ai configurer la base de donnée, et j’ai lancé le serveur pour voir si tout marchait ! Ensuite, c’est du Java, que je connais plutôt bien, et du HTML/CSS/JS pour l’affichage. Seul truc qui peut dérouter un peu au début, c’est la syntaxe pour les templates, mais on retrouve le droit chemin rapidement!

Deuxièmement, le serveur. Ça paraît con, mais ne pas avoir besoin de relancer le serveur, et de “rebuild” l’application à chaque modification, c’est vraiment plaisant ! Avec JSF, j’étais toujours en train de build, et perdais un temps monstrueux, maintenant, je modifie mon fichier, j’enregistre, je vais sur mon navigateur, et c’est déjà là. Même la base de donnée! On modifie le model, et c’est pris en compte directement.

Troisièmement, le MVC. Toujours été fan d’une bonne organisation, et là, c’est le cas, donc tant mieux. Il est vrai qu’avec Java, on a souvent le droit à du MVC, ce qui me fait du bien en pensant à PHP^^

Pour finir, je dirais la logique de développement. Le but est de faire le code une fois, et après, on ne fait pas de copier/coller comme je réalisais parfois avec PHP. Là, c’est organisé tellement bien, que c’est presque impossible de ne pas faire du code DRY (Don’t Repeat Yourself).

Ce que j’apprécie moins

Personnellement, je n’ai pas vu grand chose que je n’apprécie pas. Peut-être une ou deux choses mineurs.

Tout d’abord, au niveau de la façon de récupérer les objets dans la base de données.

Avec Play, pour récupérer par exemple les “Posts” d’un blog, le code est le suivant :

List<Post> olderPosts = Post.find("order by postedAt desc").from(0).fetch(10);

Je pense, personnellement, que la façon de rechercher avec Ruby on Rails, et plus pratique, et plus clair. Par exemple, pour ici, ce serait :

HashMap<String,String> params = new HashMap<String,String>();
params.put("order","order by postedAt desc");
List<Post> olderPosts = Post.find("params").from(0).fetch(10);

C’est un choix du développeur, mais je vois qu’il est aussi possible de remplacer “order by postedAt desc” par la requête complète. Je ne connais pas encore assez le “JPA” utilisé dans le framework pour vraiment m’avancer, je trouve dommage.

Autre chose, qui est peut-être dommage, le nom-support de base du module de “CRUD” et de “Security”. Même si c’est trèèès facile à ajouter, je pense qu’ils sont/seront tellement utilisés, qu’il est dommage de devoir les activer manuellement.

Conclusion

Je suis VRAIMENT satisfait de ce Framework, et je vais développer mon prochain site grâce à lui. Dans la logique, il est proche de Ruby on Rails, et c’est quelque chose qui me plaît beaucoup.

Avantages

  • Logique de développement DRY
  • Support de toutes les librairies de Java
  • Facilité de prise en main
  • Guide complet (même si 1 ou 2 erreurs sont présentes)
  • La “compilation” à la volée
  • Possibilité d’exporter sous format “war” compatible Glassfish/Tomcat/etc…
  • Module “Security” et “CRUD” vraiment pratique

Inconvénients

  • Communauté encore réduite
  • Gestion des objets relationnels pas encore terminé à mon goût

Je dirais donc… Foncez ! Essayer, c’est l’adopter !

Et dans quelques jours, je ferai un prochain article sur la gestion du Multilingue, de l’implémentation d’AJAX, et d’autres choses intéressantes que je trouverai d’ici là!

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Spam protection by WP Captcha-Free