Archive for July, 2007

REST是什么?

Friday, July 27th, 2007

其实昨天想写的叫“REST迷思”,不过今天看到这篇文章,我也”REST是什么?”
昨天整个下午我都在想REST到底是什么?我为什么要用它?应该用在什么地方?在骑车出门的时候还不停的在想,也没想很明白,本来还想发篇博客问问,没想到今天就有了。总的来说我还是比较同意dongbin的那篇文章的。
真正开始了解REST就是前一段时间,其实也不能说了解,就是看了一些介绍和视频。我也犯了老毛病,学到新东西就拼命的想往现在的项目上靠,美其名曰”学用,学用,学以致用”。
首先就碰到问题了。
1.比如:图书网站,有很多的书本,而书本属于某个用户。现在要开发图书列表和用户的图书列表。其实就是
/books/list
/users/leo/books or /users/leo/book_list or /users/leo/books/list
原来的想都不想两个action,处理book.find
当然了如果一个action可以优雅的解决问题那我还是趋向于一个action实现的,DRY嘛。(只是if else太不优雅了)
怎么用到REST呢?按模型来说,是这样的.
map.resources :users do |users|
users.resources :books
end
事实上这个是实现不了/books/list的。那就不用nested resources了,还是Controller加个action(哦,我可不喜欢/books;list_by_user这样的URL),还是增加一个controller?
那么那么,主要问题是什么呢(Ok,我个人的问题)?原来我的实现是直接从业务(需求,用户接口)映射到实现上来的,使用REST思考的时候呢?从model来考虑的? 至顶向下还是至底向上呢这是个问题。
用Rest是为很酷而又方便的url mapping吗?为了方便的列出model的关系吗?
2.一本书有很多章节.那么我的章节列表应该放在:
/books/1/sections (sections.index)
/books/1 (books.show)
里面呢? 如果按照Web Service的做法或是把REST当做Model的HTTP方式的接口(把book看做Resource)的话那么应该是在sections.index里面。而按照习惯我可能更喜欢/book/1里面显示sections list(至少,至少少一次点击。)。
Rest是Model的http接口吗?
3.“REST的主要优势在我看来其实在于它是一种对于服务器的更加有效的抽象方式。”(引用1)
按照这么说的话,个人认为REST并不适合于仅仅使用GET/POST的WEB应用的开发。在form里面加一个method的hidden变量然后把网址变成book;edit这样有意义吗?为了漂亮的mapping?只要你会写routes什么样的mapping写不出来?为了根据不同的format请求返回不同的结果?不用rest你也可以responds_to不同的format。
从WS的角度来说REST用HTTP的请求方式来映射function-name,只是为了方便理解?
到此以我对REST的理解来说我已经想不下去了,一团麻了。
REST到底是什么,适合我吗? 突然间我想到了04年刚刚接触敏捷是写的“你敏捷得起来吗?”,那么REST适合你吗?
上面的文字有太多的问号,正如我现在对于REST的问号。不过我觉的似乎从我现在的理解来说REST不适合于实用至上的我现在进行的这些项目。
引用1:http://blog.csdn.net/mozilla/archive/2007/06/07/1643095.aspx

开源不是件容易的事情,坚持不倒更是不容易。

Wednesday, July 25th, 2007

今天看到这个David Heinemeier Hansson says No to Use of Rails Logo觉的并不是什么好事,DHH他们的做法没什么好说的,按DHH在评论中说的如果只是说源代码以外的东西倒是无所谓了,反正我不写书什么的。
只是我在担心DHH他们在被无数人F**K以后,是否还有那么大的激情继续rails?
其实开源真不是件容易的事情,特别是长久之后很可能失去心理平衡。
我很自大的认为我曾经对开源有过很大的兴趣,但是看到人们用自己的代码做种种事情的时候又不对你的工作做什么肯定(违反权利条款等等)的时候确实不是什么很好的感觉,“我花那么多时间为了什么?”,当然了那时候还小,而且所做的事情又不能称之为梦想。(也有自己去工作阿,以及多发展方向的选择问题了)
那时候国内还有个open source online(oso.com.cn),那简直就是Web2.0的先行者,不过02年的时候这面大旗也倒了。。
hehe,所以现在对于那些开源程序我始终抱着一刻感恩的心(每当用的时候都会感谢一下作者,真的,呵呵),特别是那些改变生活方式的东西象vim,rails,linux等等。。
update:
刚才打开oso.com.cn发现现在变成一个dedeCms建成的垃圾站了,悲哀。。。

Rails API with the AJAX flavor

Tuesday, July 10th, 2007

是不是觉得rails的api文档很难用?每次都要X个find next。
那就用这个吧。。 Rails API with the AJAX flavor
用了一个多月了。
是不是效率高了非常多。。。从此远离api.rubyonrails.org。
ps:weblog主机搬到自己的机器后速度快了不是一般的多。。。 那天导数据库的时候发现半年时间spam竟然有9万多条。哦,我喜欢。。
pps:
Rjs是个好东西,早期rails版本我老是不能用,现在属于标准件了,那天晚上用eMule下了个“O’Reilly.-.RJS.Templates.for.Rails.chm”看了10来分钟就会用了。。非常之爽。
ppps:
eMule[veryCd]是不错,但是事物往往有两面性估计无数的躁动的孩子们(包括我?)会浪费无数的时间用它来下载毛片消耗过于旺盛的精力。
pppps:
腾讯真是垃圾,装个QQ,还非把QQ游戏放到快速启动上去,浪费了多少小青年的青春啊。现在不管几岁的孩子都是泡泡堂的高手,这样的公司早早倒掉,改天去庙里给它拜拜。。。。
ppppps:
慢慢的发现自己有变成愤青的趋势,不为别的只是对于现状的不满(?),什么砖窑啊,什么煤矿啊,什么实名啊,什么XX啊(哦,闲谈莫论X是)那天看到网上有人说对于这些知道的多了才觉得痛苦,对于嫉妒心理比较重的国人来说(这可不是我说的)可能对于他的前男友的女友/前女友的男友男友的前女友/女友的前男友知道的少些可能他会快乐些,要不无知真的更快乐吗?http://memedia.cn/是个好网站。

每重装一次机器我就对我现在做的事情多一份信心。

Wednesday, July 4th, 2007

最近装了4次操作系统,每装一次我就多一份信心,先做一下广告,半个月后发布第一beta版本。
博客的服务器换了,啊,终于不用受51的气了。
去了趟电脑城又被人严重鄙视了一把。。
原来小红帽是IBM特有的,其他还真都没有(Dell的有啊?)
原来笔记本的硬盘加个外壳就是移动硬盘了。
原来卖盗版光盘的可以那么的牛X。
原来只知道apple很牛,没想到买apple的也那么牛。
切,大不了老子不买了。
wakakakaka。。。

香港你好。

Sunday, July 1st, 2007

10年了。。。我还清楚的记得10年前的6.30晚上我在哪里和干什么。。