作者:thegiive,Taipei, Roodo, TW
<o:p></o:p>
我 还记得以前我跟另外一个人讨论 ORM 的时候,还有人说到 『ORM毫无意义可言,他一点实用价值都没有』。的确在那时的世界里面,ORM是被视为拖累框架速度的凶手, ORM无法像 SQL 语法一样完全处理各种不同的情况,ORM没有任何实用的必要,他只是一个科学家的玩具而已。但是 Ruby on Rails 一推出,在如此漂亮方便好用的 ORM 之下,彷佛任何网页开发架构没有 ORM 好像就逊了一截。于是每个新出的 Framework 开始学习 Ruby on Rails,加入 Active Record 类似的机制,彷佛 ORM 是所有 Framework 必须也是必要的机制。
到底在 Ruby on Rails 之前,这个世界是没有 ORM 的需求,还是只是我们这些凡夫俗子看不到这样的需求?
当我提到 Rails 1.2 导入 REST 的时候,大家的问题又变成『为什么要用 REST?』『REST 有其它的好处吗?』,其实说实在话,我不知道 REST 到底会带来什么样的革命。或许他也只是个营销名词。孟岩先生曾经对这个事情发表评论
<o:p></o:p>
Ajax 的出现标志着RIA时代逐渐走来,客户端将不再是清一色的HTML页面,也可以是一个Ajax的程序,通过 XMLHttp向服务器发起PUT和DELETE请求。这样,就要求服务器端在四动词的背景下重新思考应用的构造。传统上,服务器端应用只是通过REST 风格将部分服务暴露出来。而Rails 1.2则直接将REST直接作为构建整个Web应用的中心,这才是Rails 1.2的独特之处,也是张显Rails社群离经叛道和卓尔不群的地方。为了要采纳REST风格,Rails 1.2革新了Web应用的构造思想,整个领域建模的思想都有所变化。现在整个Rails社群都应当准备向REST时代迁移。
<o:p></o:p>
说实在话,我还是无法很准确的抓住<st1:personname w:st="on" productid="孟">孟</st1:personname>先生的点。因为如果众多网页程序设计师对于 REST 的好处跟坏处都不甚明了,那要怎么推行 REST 呢?当大家都不用 REST ,那么使用 REST 有任何意义吗?但是看到 DHH 在 2006 Rails Conf 讲解了 Rails 1.2 对于 REST 的导入的这篇演讲<o:p></o:p>
之 所以今天我们会在这里聚会,之所以Rails是今天的Rails,恰恰因为我们对很多事情说了“不”,恰恰是因为我们将很多人 拒之门外。如今Rails被越来越多的人接受,但我并不认为因此我们就可以背离先前的原则。所以,尽管我毫无疑问地支持Thomas的很多实用的建议,但 对他的论调则不以为然。我不认为Rails应该向外部世界屈服,恰恰相反,Rails正在有力地让外部世界向我们屈服。<o:p></o:p>
凡 事迎合大众到底是金科玉律,还是庸人的想法。我回想到当我接触 Ruby on Rails 之前,我似乎也是座落在『ORM毫无意义可言,他一点实用价值都没有』这一群人。现在的我呢?又到了哪里去呢?回到 REST 这个话题,到现在为止我还是不知道 REST 能够为我带来什么东西?但是我愿意去尝试看看,因为
到底在 Ruby on Rails 1.2之前,这个世界是没有 REST 的需求,还是只是我们这些凡夫俗子看不到这样的需求?
渐 渐的我发现到, Ruby on Rails 的核心价值不在于他的方便好用,其实就是在于 DHH 那一句『我不认为Rails应该向外部世界屈服,恰恰相反,Rails正在有力地让外界世界像我们屈服。』。在 iPod 刚推出的那年,所有评论一面倒的偏向『这个世界并没有任何硬盘式的 MP3 Player 的需求』,现在那些人又到哪里去了呢?追根究底,iPod 当初让评论家否定的原因是因为<o:p></o:p>
- 硬盘式随身听用电量多,电池恐怕撑不住<o:p></o:p>
- 硬盘晃动时容易有挑针的现象<o:p></o:p>
- 硬盘歌太多了,你很难用随身听这样的小屏幕选择几千首歌。<o:p></o:p>
而 iPod 最后成功的原因很多,但是最主要的原因在于他放大硬盘式随身听的好处(一次可以将所有的歌放进去),而且他的实做让硬盘式随身听的缺点缩小,所以他成功了。
有些人迎合世界的需求,有些人用良好的产品去创造这个世界的需求。
真 正让 REST 可以起来的原因,是 Ruby on Rails 到底能不能实做出一个很方便,很好用的 REST 架构?而非去问现在市面上到底有没有 REST 的需求。当 Rails Team 真的做出一个很棒的 REST 架构的 Framework ,可以放大 REST 架构简洁的优势,却又可以缩小 REST 的缺点,那全世界都会因为 Rails 而转动,就跟当初的 Active Record 一样。但是如果有这个需求,但是实做无法吸引大家使用,也不会有人去使用的。加油吧,Rails Team。
延伸阅读<o:p></o:p>
<o:p> </o:p>
<o:p>原发表处:http://lightyror.blogspot.com/2006/12/rails-12-rest-rails.html</o:p>
分享到:
相关推荐
自Rails 1.2版本开始,REST被纳入核心框架。Rails提供了一种名为`scaffolding`的工具,用于快速生成符合REST原则的控制器和模型。路由(routing)在REST应用中扮演关键角色,它定义了URL与控制器操作的映射。Rails的...
- **安装 Rails 1.2 或更高版本**:确保使用了支持 RESTful 开发的 Rails 版本。 - **了解基本概念**:熟悉 REST 的基本原则以及 HTTP 方法的作用。 #### 1.5 资源 Scaffold Rails 提供了一个强大的工具,即 ...
Rails 从 1.2 版本开始支持 REST,这意味着开发者可以轻松地构建符合 REST 原则的应用程序。 **Rails 中 REST 的实现**: - **资源映射**:Rails 使用路由表将 HTTP 请求映射到相应的控制器和动作上。 - **控制器...
### Rails 2.0 关键知识点详析 #### 一、引言 Rails 2.0作为Ruby on Rails框架的一个重要版本,在其发布时引入了一系列改进与更新,旨在...对于正在使用Rails进行Web开发的团队来说,了解这些新特性是非常有价值的。
相比第2版中的内容,Rails 2增加了REST、资源、轻量级web service等新特性。本书涵盖了这些全新的内容,因此能更好地体现出Rails框架的发展现状。 整体而言,全书既有直观的实例,又有深入的分析,同时还涵盖了web...
Ruby on Rails是遵循REST原则的开源Web开发框架,自1.2版本起,RESTful设计成为了其核心理念。Rails框架通过约定优于配置(Convention over Configuration)的原则,使得开发者能快速构建RESTful应用。本项目将运用...
Ruby on Rails自版本1.2起就内置了对REST的支持,这极大地简化了Web应用的开发过程。 - **RESTful路由**:通过定义路由,可以自动地为不同的HTTP动词映射到相应的控制器动作。 - **资源控制器**:每个资源都对应一...
Rails框架(从版本1.2.x起)成为了第一个引入REST作为核心思想的主流网络软件开发框架。在Rails框架的充分利用了REST软件架构之后,人们更加坚信REST的重要性和必要性。Rails利用REST软件架构思想对网络服务也提供了...
1.2 面向列的有序存储 9 1.3 键/值存储 11 1.4 文档数据库 14 1.5 图形数据库 15 1.6 小结 16 第2章 NoSQL上手初体验 17 2.1 第一印象——两个简单的例子 17 2.1.1 简单的位置偏好数据集 17 2.1.2 存储汽车...
它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...
它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...
它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...
它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...
它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...
它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...
它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...
它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...