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
分享到:
相关推荐
本章详细介绍Rails数据持久化技术ActiveRecord的使用,包括ORM与ActiveRecord的简介、建立数据表的映射、执行动态查询、插入数据、删除数据、表之间的关联,以及数据有效性验证等。 第11章 MVC的控制器层。本章...
赠送jar包:spring-orm-5.0.8.RELEASE.jar; 赠送原API文档:spring-orm-5.0.8.RELEASE-javadoc.jar; 赠送源代码:spring-orm-5.0.8.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-orm-5.0.8.RELEASE.pom;...
赠送jar包:spring-orm-4.2.2.RELEASE.jar; 赠送原API文档:spring-orm-4.2.2.RELEASE-javadoc.jar; 赠送源代码:spring-orm-4.2.2.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-orm-4.2.2.RELEASE.pom;...
赠送jar包:spring-orm-5.0.8.RELEASE.jar; 赠送原API文档:spring-orm-5.0.8.RELEASE-javadoc.jar; 赠送源代码:spring-orm-5.0.8.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-orm-5.0.8.RELEASE.pom;...
赠送jar包:spring-orm-4.2.2.RELEASE.jar; 赠送原API文档:spring-orm-4.2.2.RELEASE-javadoc.jar; 赠送源代码:spring-orm-4.2.2.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-orm-4.2.2.RELEASE.pom;...
java mongodb orm 实现-基于mongodb-driver开发的ORM
ORM将数据库行映射到Ruby对象 目标 编写将数据库行转换为Ruby对象的方法 编写允许您搜索数据库的方法 概述 我们将继续建立我们应用程序的Student类。我们正在构建一个应用程序,以帮助公立学校的管理员跟踪学生。在...
spring-orm-4.2.4.RELEASE-sources.jar spring框架的整合源代码
stream-ruby, ruby 客户端生成活动使用 GetStream.io 提供&流 流 ruby 是一款用于构建可以伸缩新闻发布和活动流的...注意,还有一个更高级的 Ruby on Rails - 流集成插件库,它将钩子插入到 ORM 。你可以在 https://get
spring-orm-4.0.0.RELEASE-javadoc.jar
spring-orm-4.0.0.RELEASE-sources.jar
额.... 这个资源已经旧了 因为这个资源里面没有详细的文档 而且有些bug没有修正 这个组件的更新版本请大家移步到以下地址下载: http://download.csdn.net/source/2048329 还有这个资源的分数我设置为0
资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:dgraph_orm-0.1.52-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
官方版本,亲测可用
spring-orm.jar
hsweb-easy-orm, 简单的orm工具,为动态表单而生
It only will provide a structure, inspired on Ruby on Rails, that will allow you to organise better your projects, initialise your own or third party libraries, call in a easy way your models, ...
纯手动学习搭建了一个基于ASP.NET MVC的ORM框架,该框架是EF,Spring.net,Memcached和cache分布式缓存结合搭建实现,并且在项目的根目录下data下有一个自己设计的基于RBAC权限设计的sqlserver数据库备份文件。在这里...