`
SpringArt
  • 浏览: 323003 次
社区版块
存档分类
最新评论

Rails 1.2 + REST : 讨论 Rails 的核心价值

阅读更多

作者: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向服务器发起PUTDELETE请求。这样,就要求服务器端在四动词的背景下重新思考应用的构造。传统上,服务器端应用只是通过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>

  1. 硬盘式随身听用电量多,电池恐怕撑不住<o:p></o:p>
  2. 硬盘晃动时容易有挑针的现象<o:p></o:p>
  3. 硬盘歌太多了,你很难用随身听这样的小屏幕选择几千首歌。<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>

分享到:
评论
11 楼 dongbin 2006-12-13  
lighter 写道
dongbin 写道
很明显,楼主还没有对rails中的RESTful学习和实践过,所以谈得太~~~~~虚了!

相信你研究一下REST会更有见地的阐述这个问题。

dongbin对REST有什么高见,可以发表一下,作一些阐述,谢谢
http://dongbin.iteye.com/blog/38856
10 楼 lighter 2006-12-13  
dongbin 写道
很明显,楼主还没有对rails中的RESTful学习和实践过,所以谈得太~~~~~虚了!

相信你研究一下REST会更有见地的阐述这个问题。

dongbin对REST有什么高见,可以发表一下,作一些阐述,谢谢
9 楼 dongbin 2006-12-13  
很明显,楼主还没有对rails中的RESTful学习和实践过,所以谈得太~~~~~虚了!

相信你研究一下REST会更有见地的阐述这个问题。
8 楼 thegiive 2006-12-12  
For cvu
感謝 , 受教了
7 楼 cvu 2006-12-12  
REST的意义不在于做一个网站,而在于网站间的互相调用变得异常直接。网站间的调用,也可以理解成不同系统间的调用。

比如一个公司的CRM、workflow、财务系统、website...可以是一套大系统,那样太繁杂,也可以是分别几个独立的系统(decoupled systems),但是互相调用metadata就会非常不方便。一般有这么几种方式实现(从差到好排序):
1、A系统直接调B系统的数据库
2、用程序访问B系统的网页,取出A系统需要的东西
3、各系统把经常要访问的功能写成web service
4、各系统做一套api
5、REST

上面的例子说的是公司系统,大众网站也是如此,如果大家都用REST,mashup也会更容易,好的应用会更多。
6 楼 thegiive 2006-12-12  
dennis_zane 写道
在ROR之前,难道ORM还不够深入人心?
谈的太虚了,或者说什么都没谈


沒錯 , 我也覺得我談的沒啥技術含量 , 所以我沒這個膽發表到這裡來 
這篇與其說我在評論技術? , 還不如說我在 murmur 比較好
而且我發現我的文章重點有點失焦了

不過這篇我想講的是
我很欣賞 DHH 一副  老子就是要世界跟著我走的氣魄   
5 楼 yuxie 2006-12-12  
dennis_zane 写道
在ROR之前,难道ORM还不够深入人心?
谈的太虚了,或者说什么都没谈


我想hibernate虽然很成功,但是并没有像大家想象的那样深入人心。在以前的ORM里,拿的出手的大体有hibernate和ibatis两个(toplink等不在考虑),hibernate管的事情太多了,生成的sql又臭又长(robbin语),而ibatis管的事情太少,还得我自己亲自来写那些又臭又长的sql。
而相反ror的ActiveRecord好像做的那么恰到好处.正如东家之子云云
4 楼 dennis_zane 2006-12-12  
在ROR之前,难道ORM还不够深入人心?
谈的太虚了,或者说什么都没谈
3 楼 spartak 2006-12-12  
rails不是要推广rest,更不是activerecord
rails只是用自己认为正确的方式做web开发

enjoy rails
2 楼 njmzhang 2006-12-12  
看不懂,谁能扫盲一下什么叫REST?
1 楼 wlbookwl 2006-12-12  
好文,支持rails

相关推荐

    应用Rails进行REST开发

    我们常说的 REST 这个术语,精华就是 http 协议中 get, post, put, delete 四个方法.Rails 从1.2版本开始,就支持 REST 这个技术了. 这个教程一开始会简短的介绍REST的背景和概念,接着介绍为什么要开发 REST风格的...

    Web开发敏捷之道-应用Rails进行敏捷Web开发-第三版.rar

    相比第2版中的内容,Rails 2增加了REST、资源、轻量级web service等新特性。本书涵盖了这些全新的内容,因此能更好地体现出Rails框架的发展现状。 整体而言,全书既有直观的实例,又有深入的分析,同时还涵盖了web...

    ASP EXCEL导入SQL

    Rails框架(从版本1.2.x起)成为了第一个引入REST作为核心思想的主流网络软件开发框架。在Rails框架的充分利用了REST软件架构之后,人们更加坚信REST的重要性和必要性。Rails利用REST软件架构思想对网络服务也提供了...

    《[精通ASP.NET.MVC.5框架》高清带书签

    1.2 当今的Web开发 3 1.2.1 Web标准与REST 3 1.2.2 敏捷与测试驱动开发 3 1.2.3 Ruby on Rails 4 1.2.4 Node.js 4 1.3 ASP.NET MVC的关键优点 5 1.3.1 MVC的体系结构 5 1.3.2 可扩展性 5 1.3.3 HTML和HTTP上的严密...

    nosql 入门教程

    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 存储汽车...

    JAVA上百实例源码以及开源项目

    百度云盘分享 简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对...

    JAVA上百实例源码以及开源项目源代码

    Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 ...

    java开源包1

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

    java开源包11

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

    java开源包2

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

    java开源包3

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

    java开源包6

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

    java开源包5

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

    java开源包10

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

    java开源包4

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

    java开源包8

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

    java开源包7

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

    java开源包9

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

    java开源包101

    它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费...

Global site tag (gtag.js) - Google Analytics