【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

对 Grails 之误解

  • 2007-07-11
  • 本文字数:1513 字

    阅读完需:约 5 分钟

Grails 开发团队成员 Marc Palmer 发表了一篇博客文章,针对开发人员对 Grails 常见的一些误解逐一进行了说明。例如针对“对于我来说,Grails 还不够成熟”,他这样回应:

针对这个误解,我想不断增长的商业网站数量就是最好的答案了。同时,Grails 也是基于 HIbernate、Spring 和 SiteMesh 这些成熟完善的框架构建的,更不用说作为万年常青树的 Java JDK 了。Groovy 项目都已经有超过三年的历史了。

接着,对于“Grails 使用的是一门解释型语言(Groovy)”这个误解,他谈到:

Groovy 在运行时自动编译成 Java 虚拟机字节码,它绝绝对对彻彻底底不是一门解释型语言。句号。绝不。我说了绝不了么?一点儿也没错。

最后,讨论到 Grails 是否支持 Rails 的一个克隆产物,他如是回答:

Ruby on Rails 引入了不少非常好的主意,并将它们合为一体。Grails 将其中的一部分应用到了 Groovy/Java 的世界中,但加入了许多 Ruby 中并不存在的特性和概念,所有这些东西都是以一种对 Groovy 和 Java 程序员有意义的方式展现给他们的。

Graeme Rocher 顺势而上,也提出了自己的 Grails 误解和问题列表,比如说“在我们有了 JRuby on Rails 之后,谁还要 Grails 呢?”:

这个问题很有代表性,也是对“Grails 到底是什么”最大的误解之一的根本所在。JRuby on Rails 是让 Rails 运行在像 GlassFish 这样的 Java EE 容器上非常优秀的方式之一,就是这样而已。但 Grails 的目标却大为迥异,它并不是 Rails 在 Groovy 语言上的一个移植版本,而是将业界内最为强悍的组件(比如说 Spring、Hibernate、Quartz、Compass 和 SiteMesh 等)以最佳方式组合起来的一个实践,并通过采纳无配置规约(Convention-over-Configuration,CoC)使它们符合“不重复(Don’t Repeat Yourself,DRY)”原则。 我们并不是在重造轮子,而且由于 Grails 内核的绝大部分都是以 Java 编写的,它也显得更加强壮和稳定。事实上,从内核角度看 Grails 是一个 Spring MVC 应用,可以被部署到所有的主流容器之上,不仅仅只有 Glasshfish,还有大型商业容器,比如说 WebLogic、WebSphere 和 Oracle AS。

再有,“为什么 Grails 比 Rails 更适用于企业应用?”:

原因很多,最显著的两个原因就是 Spring 和 Hibernate。到目前为止,有不计其数的组织在采用 Spring 和 HIbernate,他们都有既有的 Spring 上下文环境,以及已经构造好的 Hibernate 领域对象等。 在我开始参与 Grails 项目之前,我就经历过同样的情况。我们设计 Grails 的目的就是为了让它和这些框架尽可能无缝地整合起来。因此,我们打个比方,你可以把一个用 Java 编写的 Hibernate 领域模型及其对应的配置文件直接扔进 Grails 应用中,然后就可以使用动态的查询方法,并且直接使用 GORM 了。

此外,Grails 控制器使用了标准的 Servlet API 对象(如 request、response 和 session 等),因此可以和其它的 Servlet 一起使用。毕竟,掀起它的盖头之后,我们会发现它不过是一个 Spring MVC 应用。另一方面,Rails 几乎是按照和 EJB2 一样的方式设计的(在我发现这点时,怎一个“震惊”二字了得!)。也就是说,你在扩展 ActiveController 和 ActiveRecord 等框架对象时,你也就被绑定在了这套框架上。

在 Rails 里面根本就不存在领域模型的说法,Rails 的模型就是数据库表。这当然是一件好事了,但在企业内部,同一个领域模型可能会在许多不同的应用中服用,比如说桌面应用和 Web 应用。在 Java 里,这实际上是非常成熟完善的,通过把类对象及相应映射文件打包成一个 JAR 文件即可。

亲爱的读者,关于 Grails,您还存在什么问题吗?或者您还见过对 Grails 用途的其它误解么?请在 InfoQ 的 Java 社区与我们一同分享吧。

查看英文原文: Grails Misconceptions

2007-07-11 20:301644
用户头像

发布了 117 篇内容, 共 14.9 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

使用 Python Poetry 进行依赖管理

华为云开发者联盟

Python Python Poetry 依赖项管理 Poetry

外贸订单回暖,集装箱持续爆舱,低代码或将成外贸行业新财富密码

优秀

低代码 外贸管理

使用Amazon RDS for Oracle配合Oracle Active Data Guard建立托管的灾难恢复与只读副本

亚马逊云科技 (Amazon Web Services)

分析

通过Amazon SageMaker与Amazon Step Functions实现机器学习的CI/CD 方案

亚马逊云科技 (Amazon Web Services)

分析

直播预告丨和我们一起过圣诞吧!Hackathon 创意攻略等你查收

PingCAP

Go 的 golang.org/x/ 系列包和标准库包有什么区别?

AlwaysBeta

golang Go 语言

如何摆脱机房教师控制?

喀拉峻

网络安全 安全 信息安全 计算机

Amazon Redshift ML现已正式推出——使用SQL创建机器学习模型并通过您的数据进行预测

亚马逊云科技 (Amazon Web Services)

分析

读《思辨与立场》-08设计你的人生

wood

28天写作 批判性思维 思辨与立场

上百台linux服务器管理用什么软件好?谁给推荐一下!

行云管家

Linux 服务器 服务器管理

轻松搭建数据仓库,与FreeWheel一起“玩转”Amazon EMR

亚马逊云科技 (Amazon Web Services)

分析

在Amazon SageMaker上快速、灵活构建TensorFlow模型的在线推理服务

亚马逊云科技 (Amazon Web Services)

分析

使用 Amazon Athena 做漏斗分析——实现更高效的数据湖检索

亚马逊云科技 (Amazon Web Services)

分析

kafka的JavaAPI操作

编程江湖

大数据

体育锻炼的好处

Tiger

28天写作

如何做好技术 Team Leader?

阿里技术

技术管理 技术人 内容合集

通用数据保护条例的监管下,你的数据湖“断舍离”了吗?

亚马逊云科技 (Amazon Web Services)

分析

Amazon Timestream 在车联网场景的典型应用和性能测试

亚马逊云科技 (Amazon Web Services)

分析

大数据开发 Spark 模块之SparkSQL

@零度

大数据 spark Sparksql

“你最崇拜的人是谁”,从面试问题看标杆学习法

编程江湖

面试题

风云叱咤,尚硅谷云原生实战教程(下篇)发布

编程江湖

Java 开发

在线JSON转toml工具

入门小站

工具

面对持续不断生成的流数据—— Amazon Kinesis Data Analytics 实现及时分析与处理

亚马逊云科技 (Amazon Web Services)

分析

借助Amazon EMR与外部KDC进行身份认证,有效集成业务场景

亚马逊云科技 (Amazon Web Services)

分析

Vue.js关于响应式部分的优化

编程江湖

前端开发

2022 用好这 8 个工具,提升前端工程师软技能

开源之巅

Web 前端开发

模块7作业

panxiaochun

架构实战营

2022 年最有前景的 5 个 Web IDE

开源之巅

开发者工具 WebIDE

​虚幻引擎5更新:头部工作室如何使用Perforce Stream实现虚幻升级

龙智—DevSecOps解决方案

虚幻引擎 虚幻引擎5 UE5

技术分享| 如何快速实现音视频在线通话

anyRTC开发者

音视频 语音通话 视频通话 呼叫邀请 离线推送

互联网行业办理过等保业务,选择哪款堡垒机好?

行云管家

互联网 网络安全 堡垒机 云堡垒机

对Grails之误解_Java_Geoffrey Wiseman_InfoQ精选文章