什么是“ Groovy”和“ Grails”,以及使用它们构建哪些类型的应用程序?


100

如今,我听到很多有关“ Groovy on Grails”的信息,并且我想进一步了解:

  • 什么是Groovy?
  • 什么是Grails?
  • 在Groils上使用Groovy构建什么样的应用程序?

3
此外,它只是Grails。在Groils上不是Groovy(这没有道理..)。您很幸运,马克·帕尔默(Marc Palmer)没看到这个问题:)
leebutts

23
Grails = Groovy on Rails
Pascal Thivent 09年

1
实际上,围绕“ Groovy on Rails”的昵称存在很多争议,这就是为什么Grails不再被称为Groovy on Rails的原因。只是Grails。
马赛厄斯2009年

3
是的,在5年前的2006年,Ruby on Rails专家抱怨,将名为“ Groovy on Rails”的框架重命名为Grails。除了困惑的招聘人员及其受害者之外,从未将它称为Grails上的Groovy。
Burt Beckwith

Answers:


188
  1. 什么是Groovy on Grails?

    该名称不再存在。现在简称为Grails

  2. 什么是Groovy?

    最初是JVM的动态语言。但是,从Groovy 2.0开始,静态和动态类型均受支持。

  3. 什么是Grails?

    Grails(以前称为“ Groovy on Grails”)是一个基于Groovy的编程框架,受Ruby on Rails的启发(虽然有所不同,但也有很多相似之处)。像RoR一样,Grails提倡“按惯例编码”,开发最佳实践,并且具有很高的生产力。

  4. 使用“ Groovy on Grails” 构建什么样的应用程序?

    Grails用于构建在JVM上运行的Web应用程序。

  5. Groovy on Grails有什么优势?

    高生产率,专注于业务而不是管道。(请注意,我不建议将Grails与现有的数据模型一起使用。其背后的原因是Grails鼓励采用自上而下的方法,其中数据库ER模型是Domain类的结果。如果您使用的是旧数据库, ,您不能采用这种方法,必须将数据库映射到域类,并且命名约定可能不匹配,因此必须使用hbm.xml Hibernate配置文件或批注IMO,这不是一个小小的更改工作流程,它会变得非常繁琐,最终您将失去Grails的大部分优势。)

  6. 当我们拥有C / C ++,Java / J2EE和.NET / C#等标准编程语言时,为什么要 Grails 上使用Groovy

    由于第5点。


1
您能否解释更多为什么不建议在现有数据模型中使用grails?
托德·亨特

1
您能否进一步解释您的意思High productivity, focusing on business instead of plumbing.?是什么plumbing
唐潘

@HarryPham-样板代码,处理实现的“方法”而不是“我们做什么”
cdeszaq

@Pascal Thivent-我可能最终会从头开始重写其他人的程序,如果不是出于不建议不将Grails与现有数据模型一起使用的目的,Grails将是框架使用的明显赢家。我还没有看到该程序的数据库体系结构,但是我认为鉴于该程序的直接功能,它相当简单。如果现有的数据库体系结构很简单,您的建议是否会改变?通过将旧数据库中的数据迁移到新数据库中是否可以避免繁琐的工作流程,如果这样的话,这将很难做到吗?谢谢。
丹尼尔(Daniel)

从Grails 3开始,您可以使用不同的配置文件来自定义Grails框架以满足您的特定需求。它不再仅仅是一个Web框架,它可以成功地用于开发轻量级的REST微服务,而无需占用模板引擎甚至ORM层的资源。 grails.github.io/grails-doc/latest/guide/single.html#profiles
路易斯·

24

Groovy是Java平台的一种面向对象的编程语言。它是一种动态语言,其功能类似于Python,Ruby,Perl和Smalltalk。它可以用作Java平台的脚本语言。Groovy具有类似Java的语法,并且可以与Java字节码无缝协作。

其他功能包括:

  • 易学曲线
  • 支持特定领域的语言
  • 紧凑语法
  • 支持动态输入
  • 强大的处理原语
  • 简化Web应用程序开发
  • 支持单元测试。

Grails是使用Groovy编程语言的开源Web应用程序框架。通过遵循“按惯例编码”范例,它旨在成为一个高生产率的框架,提供一个独立的开发环境并向开发人员隐藏许多配置细节。

像Rails一样,Grails似乎是我所谓的“严格颗粒化”。如果您以Grails的方式进行操作,开发将很容易(并且通常相当快)。该框架往往具有执行大多数事情的首选方式。另一方面,如果您需要克服困难,那么您将经历一段相当艰难的时期。

而且不要在Grails上说Groovy(不存在),出于某些原因,请参考博客。


12

Grails与Ruby on Rails直接相似,但与Groovy一起运行。什么是Groovy?它是一种在Java虚拟机(JVM)上运行的脚本语言。

因此,您可以利用已经拥有或可用的Java库(因为它们已经被编译为字节码并因此在JVM上运行),加上JVM的功能(用于垃圾收集,通过JIT编译来提高速度等),以及Groovy的简洁性。Java程序员学习Groovy的学习曲线应该很小(因此可以利用大量可用的Java程序员)。

这是按照servlet编程,JSP,Java Server Faces等标准Java机制创建Web应用程序的一种非常不同的方式。Grails(例如Ruby on Rails)比标准开发机制(无论是否如此)提供了更加动态和迭代的开发环境。练习,我不建议)


Brain,您的陈述与之矛盾,您说这是一种脚本语言,但是在下一段中,您说它已编译为字节码。我是.NET程序员,脚本语言(例如javascript等)未编译,仅被解释了。您能解释一下这些矛盾的陈述是什么意思吗?
学习者,2015年

Groovy可以同时使用。Groovy程序可以像javascript一样逐行执行为简单脚本。也可以使用groovy编译器将其编译为可以使用JVM执行的字节码类。
pRmdk '17

0

Grails- MVC框架,用于在Spring + Hibernate之上构建带有DRY(不要重复自己)的Web应用程序和现成的代码平台。Grails平台负责运行Web应用程序的基础结构和相关性,以便开发人员可以集中精力构建产品的功能。Grails-一个很好的框架,可供启动组织将产品从开发模式发布到生产模式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.