(转自:
http://www.itpub.net/605260.html)
大家可以看看他的flash演示http://rifers.org/,下载example试用...业谝淮慰吹絩uby on rails网站上面的演示一样。
rife简单来说就像rails一样,是一个包含了各层结构的、简化的开发框架,他包含了web层,IoC容器和持久层开发,等同于 Webwork/Spring/Hibernate的组合。不过rife的好处就是一个完整的框架,以统一的概念和操作方式来整合,并且对于domain model的运用和rails颇有异曲同工之妙。而rife的CRUD也类似于rails,异常简化了持久层开发。
此外,rife自身还包含了很多实用功能,例如异步发送Email,定时执行任务,web services功能,甚至还包含了一个cms框架!
rife从作者描述来看是2001年底开始开发的,此前用perl和PHP开发web项目,曾经自己有过一些框架,这些PHP的框架是rife的原型。rife到现在已经发展很多年了,最近我也是因为webwork2.2集成了rife的continuations子项目才知道rife的,目前 rife还不太知名,不论国内外,google出来的评论都寥寥无几。
rife给我初感觉很惊艳,因为我自己也认为Webwork/Spring/Hibernate组合功能强大确实很强大,但是这么多框架内容太多,整个学习成本颇高,而且每个框架都有自己的哲学,概念并不完全一致,考虑到再整合sitemesh,freemarker等等小框架,这门槛也够高的了。
rails能够这么引人关注,无非就是简化开发,这些特点我从rife身上也看到了。当然,限于Java语言特性,没有办法做到rails那么简化和灵活,但是已经比Webwork/Spring/Hibernate简化得太多了,和rails有得一比了,而且基于Java这种最成熟的语言,也是一大优势。
先说说rife的优点:
1、是一个full-stack的Java框架,所谓full-stack大概指的是集成所需要的所有功能的框架,例如rails也是一个full-stack的框架。因而其学习成本自然比Webwork/Spring/Hibernate要小得多。
2、rife集成了常用的大部分功能,包括了一个组件方式的web框架,IoC支持和持久化框架,此外还有RSS支持,CMF支持,Web Service支持,异步邮件支持,Job schedule等等等等。
3、他有一些扩展的子项目很有意思,例如continuations,CRUD,openlaszlo等等。CRUD框架类似于rails,不需要配置映射,运行期动态生成所有需要的CRUD,continuations就不用多说了,openlaszlo支持输出为laszlo。
总体而言,rife是一个和rails相似度很高的框架。有意思的是,rife作者和rails作者还爆发过争吵,这个可以去search他们各自的blog。大意是这样的:
rails作者David Heinemeier Hansson搞了一个在线todolist网站:
www.tatalist.com
号称只用了600行ruby代码,而rife作者Geert Bevin看了这个网站之后,发现一些很严重的bug,在指出之余,狠狠贬低了一把rails,于是遭到了Hansson的嘲讽和rails爱好者的攻击。
Geert Bevin说写这么个简单的网站竟然用了600行代码,可以想像rails并不像它吹的那么好,于是rails爱好者说,你有本事也自己写一个啊,站着说话不腰疼。Geert Bevin就真的自己写了一个出来,这就是:
http://blablalist.com/
功能和tatlist完全一样。并且把所有代码开源出来,号称用了752行Java代码和100多行XML配置文件。
Hansson看了代码之后,又在自己的blog上面狠狠贬低了一把Geert Bevin的代码和rife框架,最后说Java社区太不诚实了,骗子太多。
针对rails网站的那个15分钟做出来一个simpleblog的视频,Geert Bevin也搞了一个40分钟做出来一个simpleblog的视频,录制的内容更加丰富,所以也比较长,总体来说,两者的开发过程很相似,也都很快捷,但限于语言特性,rife要略微繁复一些。
再说说rife的缺点:
实际上我只是简单的看了几个rife做出来的开源程序和quickstart,可能叙述未必客观。
1、rife的持久层映射不是O/R Mapping,这是我认为最致命的缺陷。rife的映射方式是完全忠实映射table column的方式,没有对象层次图。这种方式在某些情况来说也许很好,降低难度,但是在O/R Mapping如此普及的今天,这样用法多少有点落伍,也让用惯了O/R Mapping的开发人员无法接受。
2、rife的view模板用这样的HTML注释标记来嵌入服务器端逻辑,大量运用这种的HTML注释标记显得非常烦琐,既没有freemarker这样的${}方便,也没有JSP Tag方便。
3、rife虽然有IoC功能,也可以连接Spring,但是显然不那么重视DI这种编程习惯。在作者自己写的bamboo forum里面处处看得到类似程序自己去创建依赖对象的代码,让用惯了IoC的开发人员感觉很不好。
总之,rife确确实实提供了一条快速开发的方式,学习成本也显然比Webwork/Spring/Hibernate要低。不过对于Webwork/Spring/Hibernate掌握非常熟练的开发人员例如我来说,似乎改用rife也不会提供更高的开发效率。
顺便提一句ruby on rails,我觉得大家有些过于被表象吸引。实际上对于逻辑关系比较复杂的项目来说,如果自己对Webwork/Spring/Hibernate掌握熟练,又积累了些加速开发的工具类和模板,其开发速度并不会比rails低。
分享到:
相关推荐
在这个全球互联的世界中,计算机编程和 Web 应用程序开发都在迅猛发展,我很期待能为中国的开发者提供 Ruby on Rails 培训。学习英语这门世界语言是很重要的,但先通过母语学习往往会更有效果。正因为这样,当看到 ...
Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 ...
Ruby On Rails中文教材(PDF)
Ruby on Rails Guides v2 - Ruby on Rails 4.2.5
ruby on rails社区网站开发源码
Ruby on Rails Web开发学习实录 内容简介: 在目前的主流web开发技术中,基于ruby语言的rails框架是做网站开发速度最快的工具。它可以达到j2ee框架开发速度的5~10倍,并且代码量也非常少。另外由于代码量的大幅度...
ruby on rails对mongodb的操作ruby on rails对mongodb的操作ruby on rails对mongodb的操作ruby on rails对mongodb的操作
本书的目标是成为对“如果想学习使用 Ruby on Rails 进行 Web 开发,我应该从哪儿开始?”这一问题的最好答案。学习完本书的内容之后,你将具备使用 Rails 进行开发和部署 Web 程序的技能。同时你还能够通过一些进阶...
Ruby On Rails 官方教程,这本书讲解如何使用 Ruby on Rails 框架开发应用,以及如何把应用部署到生成环境。本书使用 Rails 默认的开发工具栈开发了一个完整的社交应用(类似 Twitter)。读完本书后你将掌握如何使用...
本书教您如何使用Ruby on Rails开发和部署真正的,具有工业实力的Web应用程序,Ruby on Rails是为诸如Twitter,Hulu,GitHub和Yellow Pages等顶级网站提供支持的开源Web框架。
ruby on rails 教程源码,配合原书使用
ruby on rails最新版 这是本人精心收集的重要软件
ruby on rails 开发环境包(ruby1.8.7,rails2.2.3)
该资源包包括在Linux安装Ruby on Rails所需的包,以及安装步骤文档
Ruby On Rails 框架自它提出之日起就受到广泛关注,在“不要重复自己”,“约定优于配置”等思想的指导下,Rails 带给 Web 开发者的是极高的开发效率。 ActiveRecord 的灵活让你再也不用配置繁琐的 Hibernate 即可...
Ruby on Rails中文指南
ruby on rails api方便查阅
最新Ruby on Rails中文版介绍,欢迎大家共同学习此最新的技术!随着Ruby和Rails版本的不断升级,这些知识也在不断的更新,谢谢的支持!
基于ruby on rails开发示例源码