快速业务通道

Grails框架优劣势分析及同类比较 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
令自动建立插件项目

grails create-plugin foo

Grails就会自动建立一个插件项目,包括一个FooPlugin.groovy的模板文件。编写Grails插件的具体方法可以阅读Grails插件开发文档。编写好了插件以后,准备发布到官方插件源上的话,首先注册一个codehaus帐号,成为Grails Plugins项目成员,并在官方邮件列表上申请发布权限。然后,只需要一条命令就可以自动发布到官方SVN源,提供给所有人下载了。

grails release-plugin

充分利用好已有的插件,可以进一步加快Grails开发过程。比如我在开发feedlr过程中就使用了Quartz,Searchable,Feeds,OpenID等插件,而且编写并发布了OAuth插件。

GSP和标签库

Grails前端开发使用的是GSP(Grails Server Pages),开发者可以使用Grails特定的模板语法编写gsp动态页面,并且可以直接使用Groovy脚本或是各种预定义和自定义的标签库 (taglib)。这么看起来和JSP区别不大,而实际上,Grails带给开发者的是远比名字上的区别大得多的开发效率上的进步。

首先,虽然不是推荐的做法,但是直接在GSP中使用Groovy脚本的话就直接利用了Groovy快速开发的优势。

另外,JEE开发者对于JSP标签库的易用性大多有所诟病,常常需要做貌似多余的各种配置。而Grails通过DRY和约定优先于配置的思想,使得GSP 标签库的易用性非常棒。框架预定义的标签库自然是什么配置都不需要就可以直接使用了,而利用了Groovy的动态特性的标签语法,可以相当程度地减少编码 量。

编写自定义标签相对于JSP更是异常轻松。只需要通过以下命令新建自定义标签库文件,通过groovy的closure方式编写自定义标签,之后什么配置都不需要,就可以直接在GSP中使用新建的自定义标签了。

grails create-tag-lib

自定义标签库文件存放于应用根路径下的grails-app/taglib目录下,命名规范为XXXTagLib.groovy,通过Grails框架的约定规则就能自动装入了。

成熟的JEE Stack

Grails是一个整合了若干已有JEE组件和框架而成的,其中包括了Spring,Spring Workflow,Hibernate,SiteMesh,JUnit,Ant等。这些都是已经相当成熟的开源组件,是开源JEE Stack的事实规范。通过以这些组件为基础,Grails直接就能在企业应用市场占有一定地位。而社区更是为Grails贡献了不少其他JEE开源组件 的插件。对于企业来讲,Grails直接就是一个很有吸引力的快速原型开发框架,可以直接和广泛使用的已有技术很好的整合。这点可能是Grails和 Rails等类似框架相比,对手短期内无法达到的优势。

没有银弹

软件开发过程没有银弹,Grails也不是圣杯。虽然Grails拥有众多鲜明特点和优势,但目前来看也有不少缺点。

JVM的部署环境

JVM作为Grails的运行环境,是一把双刃剑。在性能出色的同时,JVM对于环境的要求使得Grails应用的部署环境比较有限。由于JVM的特殊 性,时至今日,性价比高的Java服务器依然屈指可数。相对于PHP,Python,甚至Ruby的眼花缭乱的廉价服务器选择,Grails开发者只能眼 红了。这样带来的问题是使用Grails技术的话部署应用的起步成本高,对独立开发者以及对成本敏感的小型创业公司来讲,起步阶段就大多会采用性价比更高 的其他技术。

复合型框架带来的整合复杂性

Grails使用多种已有的成熟开源JEE组件,同样是一把双刃剑。多种组件整合在一起,出现整合方面的问题的话调试修改都会比较吃力。典型的例子是 Grails出错的stack trace,往往会包括了从下层JEE框架抛出的大量异常信息,这些噪音对分析问题造成干扰,对一些疑难问题的解决会造成困难。而且这些底层组件都是传统 的JEE组件,调试起来丝毫无法利用到Groovy和Grails的灵活方便的优点。

Grails框架优劣势分析及同类比较(3)

时间:2011-06-25 infoq 侯雍容

开发工具的欠缺

Grails开发使用什么

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号