【问题标题】:What are "Groovy" and "Grails" and what kinds of applications are built using them?什么是“Groovy”和“Grails”,使用它们构建了哪些类型的应用程序?
【发布时间】:2010-12-03 19:19:09
【问题描述】:

现在我听到很多关于“Groovy on Grails”的信息,我想了解更多:

  • 什么是 Groovy?
  • 什么是 Grails?
  • 在 Grails 上使用 Groovy 构建了哪些类型的应用程序?

【问题讨论】:

  • 另外,它只是 Grails。不是 Grails 上的 Groovy(这没有任何意义……)。你很幸运 Marc Palmer 没有看到这个问题 :)
  • Grails = Groovy on Rails
  • 实际上,围绕“Groovy on Rails”这个绰号存在相当大的争议,这就是为什么 Grails 不再称为 Groovy on Rails 的原因。这只是 Grails。
  • 是的,5 年前的 2006 年,Ruby on Rails 的人抱怨说,名为“Groovy on Rails”的框架被重命名为 Grails。除了困惑的招聘人员及其受害者之外,它从未被称为 Groovy on Grails。

标签: grails groovy


【解决方案1】:

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 等脚本语言没有被编译,而只是被解释。你能解释一下你所说的这些矛盾的陈述是什么意思吗
  • Groovy 可以两种方式使用。 Groovy 程序可以像 javascript 一样作为简单的脚本逐行执行。它也可以使用 groovy 编译器编译为可以使用 JVM 执行的字节码类。
【解决方案2】:
  1. Grails 上的 Groovy 是什么?

    它不再以这个名字存在。它现在简称为 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 在 Grails 上的优势是什么?

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

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

    因为第 5 点。

【讨论】:

  • 您能否解释一下为什么不建议将 grails 与现有数据模型一起使用?
  • 您能详细解释一下High productivity, focusing on business instead of plumbing. 的含义吗? plumbing 是什么?
  • @HarryPham - 样板代码和处理“事情是如何完成的”而不是“我们做了什么”的实现
  • @Pascal Thivent - 我最终可能会从头开始重写其他人的程序,如果不是因为您不建议将 Grails 与现有数据模型一起使用,Grails 将是明显的赢家要使用的框架。我还没有看到该程序的数据库架构,但我想它相当简单,因为该程序的功能很简单。如果现有的数据库架构很简单,您的建议会改变吗?是否可以通过将遗留数据库中的数据迁移到新数据库来避免繁琐的工作流程,如果是这样,这很难做到吗?谢谢。
  • 从 Grails 3 开始,您可以使用不同的配置文件来自定义 Grails 框架以满足您的特定需求。它不再只是一个 Web 框架,它可以成功地用于开发轻量级 REST 微服务,而无需模板引擎甚至 ORM 层。 grails.github.io/grails-doc/latest/guide/single.html#profiles
【解决方案3】:

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

其他功能包括:

  • 简单的学习曲线
  • 支持特定领域的语言
  • 简洁的语法
  • 支持动态类型
  • 强大的处理原语
  • 易于开发 Web 应用程序
  • 支持单元测试。

Grails 是一个使用 Groovy 编程语言的开源 Web 应用程序框架。它旨在通过遵循“按约定编码”范式,提供独立的开发环境并对开发人员隐藏大部分配置细节,从而成为一个高生产力的框架。

与 Rails 一样,Grails 似乎是我所说的“强粒度”。如果你按照 Grails 的方式做事,开发很容易(而且通常很快)。该框架往往有一个首选的方式来做大多数事情。另一方面,如果您需要逆向而行,您将度过一段相当艰难的时期。

而且不要说Groovy on Grails(不存在),原因参考this博客。

【讨论】:

    【解决方案4】:

    Grails - 用于开发 Web 应用程序的 MVC 框架和基于 Spring+Hibernate 构建的 DRY(不要重复自己)的准备编码平台。 Grails 平台负责运行 Web 应用程序的基础设施和依赖项,以便开发人员可以专注于构建产品的功能。 Grails - 一个伟大的框架,供初创组织将产品从开发模式启动到生产模式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      • 2022-12-19
      • 2020-08-19
      相关资源
      最近更新 更多