Grails做足功夫 全力迈向1.0版

2007 年 5 月 06 日

在过去的几年里,众多的 Web 框架都把精力投放在提高开发效率上。而 Ruby on Rails 胜过了许多传统框架而被人们视为 Web 快速开发的王牌。在 Java 界,很多的框架都在响应以提高效率,快速开发,和支持脚本语言为目标的号召。 从 Grails 到 Stripes,RIFE 到 Trails,Tapestry 5.X 到 Phobos,人们都期望着能有新的能达此程度的 Java Web 开发方式,来高效快速地构建 Web 应用环境。

Grails 是一个在 Java 平台上基于 Groovy 的 Rails 风格 Web 框架,伴随着其社区的快速成长,和包括在 Tropicana 和 Pepsico 这样的主流公司内的日渐增多的实际应用,最近吸引了很多开发者的眼球。人们通常拿Grails 在机遇与挑战方面来与Ruby on Rails 作比较, 皆因人们已被在自己熟悉的平台上的这Rails 式的框架的力量所吸引了。最近的一系列比较分析结果显示了现在Grails 有着更为优越的性能表现。但Ruby 新发布的版本预言其能做得比这性能更好。

虽然曾经有过些关于在Grails 内部直接支持Ruby 的讨论,但当前来说这是行不通的。如果你只是希望把Grails 中的一些部分集成到你的应用中,而不是通过Grails 来集成Ruby 的话,那明显是可行的,你可以在Grails context 之外使用的Grails 对象关系映射工具GORM ,例如可用在Java 桌面应用程序上。现在所有的主流IDE 都逐渐有支持Groovy 和Grails 的迹象。如一些在Netbeans IDE 上作支持的讨论,还有在IDEA 中改进GroovyJ 的讨论。在Eclipse 上已经开始开发的 Grails 插件和新发布的 Groovy/Eclipse 插件,还有现在 Edward Povazan 致力于改进自动代码完成(Code Completion)来支持 Big Sky Technology

Grails 最近发布了 0.5 版本, 该版本包括了性能的提高,自定义 URL,增强 GORM 等一些特点。 Roadmap 中的下一步就是 0.6 版本,还有在今年迟点会发布的 1.0 正式版。 InfoQ 与 Graeme Rocher, Grails 项目的开发者与领导,谈论了关于 Grails 当前的成功经验和未来的方向。

当被问及当前 Grails 引发的潮流时,Graeme 回答:

很多的 Java 开发者都意识到配置不再是一个必要的工作,而 Grails 正是引领这个潮流的框架之一。与其它的一些框架相比,Grails 着重强调重用你 现有的 Java 知识、底层架构和代码。Grails 和 Rails 一样的优雅,另一方面又和 Spring MVC 或者 Seam 一样的灵活,从这两方面来说都真的做得很好了。因此,它也确实得到了社区和全世界的认同。我们花了超过一年时间来准备 0.1 版本。正因 它的非凡引起了很多人的注意,有很多乐于其中的用户会帮忙散播信息和提高 Grails 在人们心中的地位。

当谈到在构建 Java Web 应用方面拿 Grails 与其它框架相比较时:

Grails 信奉着不重复原则(DRY,Don’t Repeat Yourself)和无配置规约(Convention-over-Configuration)。当你开发 Grails 应用时真正会感受到很多地方无需 配置。而你所获得的这些功能都是通过集成一些 Java 现存的 API, 库和框架,如 Java Enterprise stack、Spring、Hibernate 和 SiteMesh。 除此之外 Grails 还有许多关键卖点,包括了可扩展的插件系统,一个基于 Hibernate 的领域驱动的 ORM 层,和一个结合 Groovy Server Pages(GSP)的强大视图。

当谈及如何去说服别人作第一次 Grails 的尝试时:

程序员是不需要真的去说服的,Grails 在易操控性方面有良好的竞争优势。如果是我想去说服别人使用 Grails 的话,我只要进行一个 5 分钟快速演示,然后他们就会信服了。

当问及 Grails 的 1.0 版本和以后会如何发展时,Graeme Rocher 回答到:

我们把精力都集中在改进开发者的体验方面,还有在秋季时能发布 1.0 版本。我们剩下的只是一些”大”问题了,接下来的工作就是通过不断的改进去达到终点线 了。我们还没做的事情包括,JSP 标签库支持 GSP,如果可能的话以插件的形式支持 JPA,还有改进我们的单元测试基础框架。 虽然现在我们主要的精力集中在发布 1.0 版上,但在那之后,我们会补充一下基础架构,同时会写更多的 Grails 的插件来继续改进开发者的体验。例如,我就很想腾出时间来为 GWT 写个 Groovy 编译器,这样 GWT 就能作为 Grails 的一个插件了,我想这必定很有趣。

如果你想知道更多关于 Grails 方面的资料,你可以继续阅读InfoQ 中Grails 相关材料(英文),或者去浏览 Grails 的官方网站,又或者读一下 Getting Started with Grails Definitive Guide to Grails

查看英文原文: Grails Gathers Steam, Heads for 1.0


译者简介:陈俊 SpringSide 开 源项目的核心成员,以及中科院软件工程硕士,就职于 Accenture。长期从事 Java EE 应用开发, 热衷于软件体系结构,设计模式,软件过程改进及敏捷开发研究,也喜欢尝试不同的开源技术,一直以来坚持为开源社区的发展贡献自己的力量。为 InfoQ 中文站贡献内容,请邮件至 china-editorial@infoq.com

2007 年 5 月 06 日 10:00 357
用户头像

发布了 27 篇内容, 共 84837 次阅读, 收获喜欢 12 次。

关注

评论

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

ARTS Week4

时之虫

ARTS 打卡计划

反应式编程与土豆炖肉

superman

极客大学架构师训练营

LeetCode | 5. Longest Common Prefix 最长公共前缀

Puran

Python C# 算法 LeetCode

面试急转弯:List如何一边遍历,一边删除?

Java小咖秀

ArrayList的删除姿势你都知道了吗

java金融

Java 后端 ArrayList 循环删除 ModificationException

架构师训练营第三周作业

张明森

极客大学架构师训练营

一些有用的工具、开源项目收集

陈皮

跨平台数据库管理神器DataGrip,用上就爱不释手

飞哥

数据库 JetBrains datagrip

本地缓存高性能之王Caffeine

java金融

Java Guava Cache Caffeine 本地缓存 谷歌本地缓存

LeetCode 2. Add Two Numbers

liu_liu

数据结构 算法 链表 LeetCode

LeetCode | 4. Palindrome Number 回文数

Puran

Python C# 算法 LeetCode

设计模式作业

qihuajun

云计算产品的竞争力

韩超

云计算 k8s 公有云 私有云

Week3 作业

Shawn

架构师训练营第三周总结

hiqian

week3-学习心得

Geek_36d3e5

刘华:想入门软件系统架构设计,看这篇就够了

刘华Kenneth

架构 架构师 故障 容灾 灾备

了解 Java 架构

陈皮

架构师训练营总结-20200621

caibird1984

极客大学架构师训练营

LeetCode 300. Longest Increasing Subsequence

liu_liu

LeetCode

从印度兵力分布聊聊Mybatis中#和$的区别

程序那些事

Java sql mybatis 印度兵力

区块链助力新基建

CECBC区块链专委会

区块链技术 联盟链 公链 底层技术

week3:组合设计模式和单例

Geek_36d3e5

单例模式与组合模式总结与练习

王友

单例模式 极客大学架构师训练营 组合模式 第三章作业

了解 Java 内存模型

陈皮

JMM

接口隔离原则-Cache类优化

yupi

通证经济=区块链技术+商业模式

CECBC区块链专委会

商业模式 区块链技术 Token 通证经济

孩子教育

王进行

教育 孩子

迎接一次重大的人生升级,让优秀的你,成为大学顶尖生。

叶小鍵

依赖倒置原则

耕夫

ARTS|Week 4 Product, Leadership, and SOLID

Puran

设计模式 LeetCode ARTS活动 Leadership

Grails做足功夫 全力迈向1.0版-InfoQ