2nd 2005.7.15 加入与J2EE内框架 的对比。
Java世界里几百个ORM Framework和MVC Framework妖精打架,吸引了全世界大部分目光的时候,Ruby on Rails悄悄出现了。
优点
1.简洁。因为是Pragmatic Programer那帮子人搞出来的东西,所以非常Pragmatic,Ruby本身的动态语言优势加上强悍的、高度自动化、疯狂使用了反射的基类,使得Rails的代码量只有Struts/Webwork+Spring+Hibernate的N份之一,默认的CRUD系统,只需要一行代码。
2.性能。据评测,速度居然还比Struts+Spring+Hibernate的速度快15%-30%。
3.良好的语义和领域驱动开发。
我觉得这点是最重要的,Active Record 采用了与Hibernate的Data Mapper不同的另一种领域模式--Active Record,获得了最直接的DDD模式。而Action Pack 也吸取了众多MVC框架的优点,同时去掉了他们的复杂性而成为亮点。还有Ruby能把语义定义得像DSL一样。让编程语言口语化也是我所关注的。
vs J2EE (first round)
因为以上优点,说它悄悄出现其实不全对,已经有不少人开始不安的拿Rails与java的方案作对比,结果不外乎,Rails在中小型项目表现很好,但还不能适应复杂的商业逻辑。但是,就像EJB说别人不支持分布式一样,是不是真有这么多复杂的模型和逻辑呢,而且,Rails还在发展,以后如何还未知。
学习目的
一来可以在中小项目里直接应用Rails从而获得N倍的开发速度,
二来更重要的是反过来影响在Java World里面ORM,、MVC的设计思路,改善自己的框架。
而且,Rails的入门有个特点,花上15分钟,写一行代码,就能实现第一个完整的CRUD系统,不像别的语言只能打印一句Hello world,真正useful的话要搞半天。
架构
ROR的架构图如下,服务器是Apache,根基是我认为最简洁的MVC方案--Action Pack和最DDD的ORM方案--Active Record,再加上类似JSP的view template和小小的代码生成器,就是Rails了。
vs J2EE (second round)
IBM DW上的文章 Ruby on Rails and J2EE: Is there room for both? 有详细的对比,推荐
可见,两者都是基于MVC与ORM模式,但两者的实现哲学不同。
MVC层,两者都是基于FrontController模式,通过DispatchServlet/ActionServlet ,把request映射到恰当的controller。不过Struts需要用xml详细配置每一个映射和Forward,而Rails则按照默认原则进行配置。
另外,Struts提倡每个ActionServlet完成一个动作,而Rails提倡把一组相关的动作放在一个Controller中。
ORM层,Data Mapper与Active Recorder模式的区别相当大。
Hibernate的Data Mapper模式,需要由Session充当Mapper 对POJO在DB之间进行映射。
Active Recorder模式则是让POJO封装DB中的一行数据,同时拥有CRUD的默认操作,针对一组POJO的操作如find, delete,则放在类的静态方法中。因为没有了作为Mapper的Session,整个程序很自然,很DDD。
学习资料
0. 隆重推荐
koalant的Ruby on Rails实践 (中文版,文笔清晰,看完它基本不用再看其他教程了)
1. 快速指南
Rolling with Ruby on Rails part1 ,part2
用Rails创建web应用
2. Ruby资料
《Programing Ruby 2nd》Progmatic bookshelf成员,第1版是免费的,随Ruby安装包附送。
而包含了最新Ruby1.8的第2版要收费,好在Emule上可以下到电子版。
《Progarming Ruby 1st》的部分中文翻译
3. Active Record和Action Pack的资料
Active Record
Action Pack
4.Rails作者及其他Rubyer的blog
David H. Heinemeier--loud thinking Rails的领导者
Andy
Dave Thomas
5.Ruby站点
Ruby on Rails
RubyForge Ruby的SourceForge
RubyGarden
Ruby中国
Ruby-CN
相关blog
1.Hibernate3.0 vs Rails Active Record
分享到:
相关推荐
- **Web服务和XML**:Rails支持Web服务的创建和XML的使用,可以利用Rails创建RESTful服务。 ### 其他 - **Rails的详细配置**:提到了Rails的详细配置,这可能包括数据库连接的配置、日志配置和环境配置等。 - **...
Ruby on Rails(简称Rails)是一个开源的Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,用于快速开发高效、可维护的Web应用。 描述中提到的“博文链接:https://zhangpeihao.iteye.com/blog/200033”是...
本教程将详细介绍如何使用Aptana与Rails结合,创建一个功能完备的Web应用程序。 首先,我们需要安装Aptana Studio。你可以从其官方网站下载最新版本的安装包。安装过程中,遵循提示进行,确保选择自定义安装并勾选...
总的来说,“Ruby on Rails快速Web应用开发实战”将涵盖如何利用RoR的特性和最佳实践,从零开始创建一个功能完善的Web应用。学习者将深入理解MVC架构,掌握路由配置、数据库设计、视图渲染、测试驱动开发以及如何...
Ruby on Rails(简称Rails)是一款基于Ruby编程语言的开源Web应用程序框架,它遵循“Don't Repeat Yourself”(DRY)原则和“Convention over Configuration”(约定优于配置)理念,极大地提高了Web开发的效率和...
通过学习《Web开发敏捷之道——应用Rails进行敏捷Web开发》,读者将全面掌握Rails框架的使用,理解敏捷开发的精髓,从而能更高效地开发高质量的Web应用。同时,书中丰富的实例和实战指导也将有助于提升开发者在实际...
Rails,全称Ruby on Rails,是由David Heinemeier Hansson创建的一个开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,强调使用简洁的代码和DRY(Don't Repeat Yourself)原则,使得开发过程更加高效且...
总结来说,"使用rails编写REST风格的web应用"涉及的内容包括Rails框架基础、MVC模式的理解、RESTful设计原则的应用、路由配置、控制器和模型的编写、视图渲染以及相关的测试和安全措施。学习这部分内容将使开发者...
Rails,全称Ruby on Rails,是一款基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在简化Web应用的开发过程,提高开发效率,同时强调“DRY(Don't Repeat Yourself)”原则和...
《Web开发敏捷之道:应用Rails进行敏捷Web开发》是一本深入探讨如何利用Ruby on Rails框架进行高效、敏捷的Web应用程序开发的书籍。该书的第一版提供了名为"depot"的源代码示例,旨在帮助读者更好地理解Rails的工作...
《应用Rails进行敏捷Web开发第三版》是一本深入讲解如何使用Ruby on Rails框架高效构建Web应用的专业书籍。Rails,作为一款强大的开源Web开发框架,以其“约定优于配置”(Convention Over Configuration, CoC)和...
Rails是一种流行的开源Web应用程序框架,它基于Ruby编程语言,旨在简化和加速Web应用的开发过程,强调“约定优于配置”和“Don't Repeat Yourself (DRY)”的原则。 该书第三版涵盖了Rails的最新版本,详细讲解了...
Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,极大地简化了Web应用程序的开发流程。本资源为"Ruby on Rails Web开发学习实录随书光盘"的源代码,...
而Ruby on Rails(简称Rails)是一种流行的Web应用框架,它使用Ruby语言编写,并遵循MVC(模型-视图-控制器)架构模式。Rails以其“约定优于配置”的理念,大大简化了Web应用的开发流程。Rails框架的创建者是David ...