Ok

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Ces derniers assurent le bon fonctionnement de nos services. En savoir plus.

« Forum des architectes - MicroSoft 4 mai 2009 | Page d'accueil | Gartner Symposium 19 octobre 2009 »

13 octobre 2009

IDE pour développement Grails

Si le développement d'une application Grails peut se faire avec la simple ligne de commande et un éditeur de texte comme TextEdit ou UltraEdit, les réalisateurs préfèrent utiliser un environnement qui leur facilite la vie et augmente leur productivité. Chez nous à Hydro-Québec ça veut dire, pour le monde Java, Eclipse ou IBM RAD, qui sont nos standards corporatifs.

 

Le support de Groovy et Grails dans Eclipse, et on peu présumer, dans RAD, est très rudimentaire et n'apporte pas de productivité au développeur. Selon nous, cette situation devrait éventuellement se corriger avec l'adoption grandissante de Grails dans l'industrie et avec l'intérêt de Guillaume Laforge[i]. C'est la raison pour laquelle, dans l'intérim, on a regarder NetBeans de NetBeans.org. Comme il est gratuit on s'est rapidement tourné vers lui pour nos développements Grails. L'intégration des commandes Grails est très intéressante, on obtient un bon grain de productivité par rapport à la ligne de commande et Eclipse.

 

Comme il s'agit d'un choix opérationnel, (pour le moment il n'est pas question d'adopter NetBeans pour le développement Java), NetBeans répondait bien à nos besoins Grails. Du moins, jusqu'à ce qu'on frappe un mur. En effet, il n'est pas possible de changer l'encoding des caractères des projets Grails, dans NetBeans par défaut les fichiers sont en UTF-8, pour se conformer à notre environnement de production, qui est en ISO 8859-1.

 

Comme on a actuellement des projets à livrer en Grails, il nous faut donc une autre solution. C'est ce qui nous a amener a considéré une autre alternative: IntelliJ de JetBrains.

 

Ce que l'on recherche d'un IDE Grails, ce sont les caractéristiques suivantes :

 

Caractéristique

Eclipse

NetBeans

IntelliJ

Lancer les commandes grails. Ex. create-app



˜

˜

Créer une classe de domaine

™

ž

˜

Créer les vues

™

ž

˜

Permet de spécifier encoding ISO-8859-1

 

ž

˜

Identification des erreurs de syntaxe, hilite syntaxe

™



˜

Code completion pour classes domaine et contoller

™

ž

˜

Code completion dans la pages gsp

™

™

˜

Code completion sur méthode dynamique

™

ž

˜

Intégration des tests unitaires (jUnit)

™

™

˜

Support débugging (breakpoint, step, watches…)

 

ž

˜

Support de gestionnaire de sources (CVS, SVN…)

ž

ž

˜

Visualisation UML des classes

™

™

˜

 

Clairement, IntelliJ se démarque par la qualité de l'intégration et le support de Grails et Groovy. On devra se pencher sérieusement sur ce produit en considérant le "big picture" car au-delà de la productivité brut, il faut considérer le prix des licences, l'intégration avec les autres outils de l'entreprise et la mobilité des ressources entre les équipes.

 

Pour démontrer le support de Grails/Groovy nous avons utilisé le scénario suivant :

(pour voir le vidéo suivre ce lien http://www.vimeo.com/7045498 )

 

  1. Créer nouveau projet
  2. Run de l'application (dans IntelliJ il faut configurer un environnement avant, la première fois).
  3. Créer un objet de domaine      "Blog"
  4. Ajouter un                               String titre
  5. Modifier le test unitaire
    1. Ajouter                       mockDomain(Blog) dans         Setup()
    2. Modif                          testSomething() pour                testBlogValide()
  6. Écrire le code du test
    1. def  b =  new Blog()    notez que NetBeans n'offre pas de code completion
    2. b.validate()
    3. assertFalse "Le blog devrait être valide", b.hasErrors()
  7. Exécuter les tests         NB : grails test-app

a.       IJ : ctrl shit F10           grails test

b.      IJ : ctrl shit F10           junit

  1. Ajouter un test pour     contenu
  2. Rouler le test : Red
  3. Corriger Blog en ajoutant         String contenu
  4. Rouler le test : Green
  5. Créer controller                       blog                 def scaffold = true
    1. Montrer que IJ groupe les classes par famille
  6. Rouler l'application
  7. Ajouter            def listxml = {} dans le controller
    1. Render Blog.list() as XML      montrer le code completion dans les 2                                     NB  class et méthode statique
    2. Montrer le import problem
  8. Rouler l'application
  9. Modifier pour render Blog.findAllByTitreLike dans IJ            
    1. Pour méthode dynamique
  10. Revenir à         render Blog.list() as XML
  11. Code completion dans les vues (gsp)
    1. Modifier index.gsp                  ${Blog.count()}
  12. Debugging
  13. Modifier          listxml
    1. Render Blog.get(params.id) as XML
  14. Insérer un breakpoint et un watch sur params
  15. Générer le diagramme UML du blog

 

Pour plus d'information sur les IDE Grails, consultez aussi : http://grails.org/IDE+Integration .

 

Dean Del Ponte a un excellent article sur les IDE (http://www.grailsblog.com/archive/show?id=10 ), cependant la version testée d'IntelliJ (8.1) est moins performante que celle que nous avons utilisée (8.1.3) et qui présente des améliorations importantes pour Grails 1.1.

 



[i]  Guillaume Laforge le 11 décembre 2008 suite à l'acquisition de G2One par SpringSource  :  "First of all, SpringSource's Eclipse team will join forces with our own Eclipse team to shift gears in the development of the Groovy/Grails Eclipse plugin. The lack of state of the art Groovy support in Eclipse can still be a limiting factor to adoption in the wild. However improved the plugin has gotten over the past year, lots of work is still needed to bring it on-par with expectations people have when working with their usual Java IDEs. So hopefully, in the coming months, you should see improved support of both Groovy and Grails in Eclipse."

13:16 | Lien permanent | Commentaires (0) | Tags : grails, ide, smackdown