Quantcast
Channel: Groovy – Publicis Sapient Engineering – Engineering Done Right
Viewing all articles
Browse latest Browse all 76

Paris Jug – Résumé de la soirée Groovy et Grails

$
0
0

Paris JUG

Les tongs et les shorts de bain sont définitivement rangés pour tout le monde, le Paris Jug a fait sa rentrée hier soir. Rappelez-vous, la dernière édition nous avait particulièrement conquis. C’est donc avec une certaine impatience que nous attendions cette soirée, au menu ce jour : Groovy et Grails.

 

 

 

Groovy, scriptez vos applications sur une plateforme Java

Groovy est un langage de programmation dynamique pour la JVM. Il reprend certaines fonctionnalités d’autres langages comme Python ou Ruby tout en gardant une syntaxe proche du langage Java. Les scripts peuvent, soit être interprétés à la volée par la JVM, soit compilés comme tout autre programme Java. Étant donné que le bytecode généré est le même, il est tout à fait possible d’utiliser des bibliothèques Java au sein d’un programme Groovy et vice-versa. Vous pouvez par exemple écrire une interface en Java, l’implémenter par une classe Groovy et utiliser cette classe dans du Java. Groovy fait l’objet de la spécification JSR-241 du JCP. Qui de mieux que son leader, Guillaume Laforge, pouvait animer cette première partie de soirée ?

Après la présentation générale du framework, Guillaume nous a fait faire le tour les principaux sucs syntaxiques offerts par Groovy « sans devoir attendre les versions 7, 8 ou 9 de Java ». Pour nous démontrer cela, nous avons commencé par transformer un programme du type « hello world » écrit en Java en utilisant certaines fonctionnalités spécifiques Groovy :

  • Utilisation de la portée par défaut (en Groovy tout est public par défaut) ;
  • Sortie du code de la méthode main ;
  • Suppression des ';' ;
  • Gestion des propriétés ;
  • Utilisation de paramètres nommés

Au final, la taille du code a été divisée par 3.

Nous sommes ensuite entrés dans les détails de certaines fonctionnalités clés de Groovy dont :

Le tout en nous appuyant sur des cas d’utilisation concrets : création d’interfaces en Swing, utilisation simplifiée d’API, requêtes SQL.

L’intégration de code Groovy dans une application Java peut se faire de plusieurs manières :

Groovy permet également la création de DSL (Domain Specific Language), une sorte de mini-langage proche de l’utilisateur, sujet sur lequel nous avons publié un article en mai dernier.

La prochaine version Groovy 1.6 (actuellement en beta) est annoncée pour la fin de l’année, apportant de grandes améliorations sur les performances.

Grails, le trifouilleur de CRUD

En seconde partie de soirée, Fabrice Robini, architecte chez notre confrère Octo Technology, nous a présenté Grails.
Grails est un framework, basé sur Groovy, permettant le développement Agile d’applications Web MVC. Sorti en février dernier en version 1.0, Grails se veut être la réponse Java au framework Ruby On Rails dont il est fortement inspiré.
Ce type de framework privilégie les conventions à la configuration : fan de lourds fichiers XML, passez votre chemin ! L’idée maîtresse est de minimiser le code et les configurations techniques afin d’être rapidement opérationnel et de pouvoir se concentrer sur le code métier.

Pour fonctionner, Grails se repose sur certains frameworks stars du monde Java dont Spring et Hibernate. Ce n’est pas pour autant que votre code reste complètement figé par ces choix préétablis. Si il vous prend l’idée de remplacer votre couche présentation , pas de problème. Pour peu que votre choix se trouve dans le catalogue de plugins, vous pourrez remplacer Spring MVC par GWT ou Flex. Dans la plupart des cas, le code est débranchable et configurable. Notons cependant qu’il est, pour le moment, impossible de se passer d’Hibernate. Ce problème devrait être corrigé avec la prochaine version de Grails qui prévoit une compatibilité Jpa.

Grails ne se contente pas de fournir une stack d’API de développement, il intègre également un environnement complet d’exécution :

  • Base de données (Hsqldb) ;
  • Serveur web (Jetty)
  • Scripts de déploiement (Ant, Maven)

La création de projets s’en trouve fortement simplifiée.
Nous avons donc créé, le temps de la session, un petit projet CRUD permettant l’ajout / la modification / la suppression et la recherche d’albums audio. La première étape consiste à générer un projet vide par l’intermédiaire d’une première ligne de commande Grails. Projet que l’on peut directement importer dans Eclipse pour développer, en Groovy, nos entités métiers : ‘Album’. Ensuite, avec une seconde commande Grails, l’intégralité de l’application CRUD est automatiquement générée. A partir de là, il vous est tout à fait possible de modifier le code généré pour y apporter les améliorations que vous désirez. C’est là que Groovy devient intéressant, Grails s’appuyant sur les forces de ce langage pour faciliter la création de votre code spécifique. Au final, une dernière commande Grails vous permettra de générer un WAR déployable sur votre serveur d’applications préféré et monitoré par vos outils d’administration habituels.

Conclusion

Bien plus qu’une simple présentation de framework, les soirées Paris Jug sont toujours l’occasion de partager un retour d’expérience au sein d’un cercle de passionnés. La soirée d’hier n’a pas dérogé à la règle, l’assemblée contenait une proportion importante de personnes qui connaissaient déjà (de près ou de loin) ces technologies. Au final, si la soirée n’a évidemment pas mis tout le monde d’accord, elle aura eu le mérite de faire avancer un peu le point de vue de chacun.

À chaque événement, c’est également l’occasion d’ouvrir le débat, ce mois-ci par exemple, les questions nous ont permis d’avoir le point de vue de Guillaume Laforge sur un des sujets d’actualités du moment : l’arrivée probable des closures Java.

Terminons ce résumé avec le programme du mois prochain consacré à OSGI présenté … par des Xebians (Cyrille Le Clerc et Nicolas Griso)

Première partie : « introduction à OSGI »

  • La naissance de ce standard extérieur au JCP
  • La gouvernance de l’OSGI Alliance et les relations avec le JCP
  • Les champs d’applications d’hier, d’aujourd’hui et demain (Enterprise Expert Group)

Seconde partie : « OSGI appliqué »

  • Côté client, les applications RCP imposent OSGI, est-ce vraiment une plus value pour les développements ?
  • Côté serveur : OSGI en socle des middlewares (Websphere, Weblogic, Glassfish et ServiceMix 4) et OSGI pour l’informatique de gestion

Nous vous y attendons nombreux !


Viewing all articles
Browse latest Browse all 76

Trending Articles