Que sont «Groovy» et «Grails» et quels types d’applications sont construites en les utilisant?


100

Aujourd'hui, j'entends beaucoup parler de "Groovy on Grails" et je veux en savoir plus:

  • Qu'est-ce que Groovy?
  • Qu'est-ce que Grails?
  • Quels types d'applications sont créés avec Groovy on Grails?

3
De plus, ce ne sont que Grails. Pas Groovy on Grails (ça n'a aucun sens ..). Vous avez de la chance Marc Palmer n'a pas vu cette question :)
leebutts

23
Grails = Groovy on Rails
Pascal Thivent

1
En fait, il y avait une certaine controverse autour du surnom de "Groovy on Rails", c'est pourquoi Grails ne s'appelle plus Groovy on Rails. Ce n'est que Grails.
Matthias

3
Oui, il y a 5 ans en 2006, les gars de Ruby on Rails se sont plaints et le framework qui s'appelait «Groovy on Rails» a été renommé juste Grails. Il n'a jamais été appelé Groovy on Grails, sauf par des recruteurs confus et leurs victimes.
Burt Beckwith

Réponses:


188
  1. Qu'est-ce que Groovy on Grails?

    Il n'existe plus sous ce nom. Il s'appelle simplement Grails maintenant.

  2. Qu'est-ce que Groovy?

    À l'origine, un langage dynamique pour la JVM. Cependant, depuis Groovy 2.0, le typage statique et dynamique est pris en charge.

  3. Qu'est-ce que Grails?

    Grails (anciennement connu sous le nom de "Groovy on Grails") est un framework de programmation basé sur Groovy et inspiré de Ruby on Rails (il y a des différences, mais il y a aussi beaucoup de similitudes). Comme RoR, Grails promeut le «codage par convention», les meilleures pratiques de développement, et se veut très productif.

  4. Quels types d'applications sont construits en utilisant " Groovy on Grails"?

    Grails est utilisé pour créer des applications Web qui s'exécutent sur la JVM.

  5. Quels sont les avantages de Groovy on Grails?

    Productivité élevée, se concentrant sur les affaires plutôt que sur la plomberie. (Notez que je ne recommanderais pas d'utiliser Grails avec un modèle de données existant. La raison en est que Grails encourage une approche descendante où le modèle ER des bases de données résulte des classes Domain. Si vous utilisez une base de données héritée , vous ne pouvez pas adopter cette approche. Vous devez mapper la base de données aux classes de domaine, et probablement la convention de dénomination ne correspondra pas, ce qui rend nécessaire l'utilisation des fichiers de configuration ou des annotations hbm.xml Hibernate. OMI, ce n'est pas un changement trivial dans le flux de travail, cela peut devenir vraiment fastidieux et vous finissez par perdre la plupart des avantages de Grails.)

  6. Pourquoi voudrait-on utiliser Groovy sur Grails alors que nous avons des langages de programmation standard comme C / C ++, Java / J2EE et .NET / C #?

    À cause du point 5.


1
Pouvez-vous expliquer davantage pourquoi vous ne recommanderiez pas d'utiliser Grails avec un modèle de données existant?
Todd Hunter

1
Pouvez-vous expliquer ce que vous entendez par High productivity, focusing on business instead of plumbing.? qu'est ce que c'est plumbing?
Thang Pham

@HarryPham - Code Boilerplate et traitant de "comment les choses sont faites" plutôt que "ce que nous faisons" de l'implémentation
cdeszaq

@Pascal Thivent - Je pourrais finir par réécrire le programme de quelqu'un d'autre à partir de zéro, et si ce n'était pas pour vous de ne pas recommander d'utiliser Grails avec un modèle de données existant, Grails serait clairement le gagnant pour le framework à utiliser. Je n'ai pas encore vu l'architecture de base de données du programme, mais j'imagine que c'est assez simple étant donné les fonctionnalités simples du programme. Votre recommandation changerait-elle du tout si l'architecture de base de données existante était simple? Le flux de travail encombrant pourrait-il être évité en migrant les données de la base de données héritée vers une nouvelle base de données, et si oui, cela serait-il difficile à faire? Merci.
Daniel

Depuis Grails 3, il existe différents profils que vous pouvez utiliser pour personnaliser le framework Grails en fonction de vos besoins spécifiques. Ce n'est plus uniquement un framework web, il peut être utilisé avec succès pour développer des microservices REST légers, sans l'empreinte d'un moteur de template, ni même d'une couche ORM. grails.github.io/grails-doc/latest/guide/single.html#profiles
Luis Muñiz

24

Groovy est un langage de programmation orienté objet pour la plate-forme Java. C'est un langage dynamique avec des fonctionnalités similaires à celles de Python, Ruby, Perl et Smalltalk. Il peut être utilisé comme langage de script pour la plate-forme Java. Groovy a une syntaxe de type Java et fonctionne de manière transparente avec le bytecode Java.

Les autres caractéristiques comprennent:

  • Courbe d'apprentissage facile
  • Prise en charge des langues spécifiques au domaine
  • Syntaxe compacte
  • Prise en charge de la saisie dynamique
  • Primitives de traitement puissantes
  • Facilité de développement d'applications Web
  • Prise en charge des tests unitaires.

Grails est un framework d'application Web open source qui utilise le langage de programmation Groovy. Il est destiné à être un cadre de haute productivité en suivant le paradigme du «codage par convention», fournissant un environnement de développement autonome et cachant une grande partie des détails de configuration au développeur.

Comme Rails, Grails semble être ce que j'appelle "Strongly Grained". Si vous faites les choses à la manière des Grails, le développement est facile (et généralement assez rapide). Le cadre a tendance à avoir une manière préférée de faire la plupart des choses. D'un autre côté, si vous devez aller à contre-courant, vous passerez une période relativement difficile.

Et ne dites pas Groovy on Grails (n'existe pas), pour des raisons, consultez ce blog.


12

Grails est directement analogue à Ruby on Rails , mais fonctionne avec Groovy. Qu'est-ce que Groovy ? C'est un langage de script qui s'exécute sur la machine virtuelle Java (JVM).

Ainsi, vous pouvez utiliser les bibliothèques Java que vous avez déjà ou qui sont disponibles (puisqu'elles sont compilées en bytecode et donc exécutées sur une JVM), ainsi que la puissance de la JVM (pour le garbage collection, la vitesse via la compilation JIT, etc.) et la concision de Groovy. La courbe d'apprentissage d'un programmeur Java pour saisir Groovy est censée être assez petite (tirant ainsi parti du grand nombre de programmeurs Java disponibles).

C'est une manière très différente de créer des applications Web par rapport aux mécanismes Java standard de la programmation de servlets, des JSP, des Java Server Faces etc. Grails (comme Ruby on Rails) promet un environnement de développement plus dynamique et itératif que les mécanismes de développement standard (que ce soit vrai dans pratique , je ne peux pas vous conseiller)


Cerveau, vos déclarations contredisent, vous dites que c'est un langage de script, mais dans le paragraphe suivant, vous dites qu'il est compilé en code octet. Je suis un programmeur .NET et les langages de script tels que javascript, etc. ne sont pas compilés mais simplement interprétés. Pourriez-vous s'il vous plaît expliquer ce que vous entendez par ces déclarations contradictoires
Apprenti

Groovy peut être utilisé dans les deux sens. Le programme Groovy peut être exécuté comme un simple script ligne par ligne, comme javascript. Il peut également être compilé à l'aide du compilateur groovy en classe bytecode qui peut être exécutée à l'aide de JVM.
pRmdk

0

Grails - Framework MVC pour développer une application Web et une plate-forme prête à coder avec DRY (Ne vous répétez pas) construit sur Spring + Hibernate. La plate-forme Grails prend en charge l'infrastructure et les dépendances pour exécuter une application Web afin que les développeurs puissent se concentrer sur la création des fonctionnalités du produit. Grails - un excellent cadre pour les organisations de démarrage pour lancer le produit du mode développement au mode production.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.