论坛首页 编程语言技术论坛

为什么用RoR?为什么不用RoR?

浏览 46797 次
该帖已经被评为良好帖
作者 正文
   发表时间:2007-06-27  
离开RoR有一段时间了,本来不想提些负面的东西,不过JE猎头(机器人?还是感谢下)给我发过几次工作信息,所以我还是来表明下态度,说点感受吧。

我做过一段时间RoR,感觉小项目还是可以的,一旦项目发展到一定规模,RoR的各种优势都会变得不明显。

我现在所在的公司网站大概每天3亿PV,服务器加起来也有上千台,同时在线人数接近60万,各种数据每秒访问量都上万,所以不是任何数据库能负载的,即使是把数据库分库分表(这种情况下用RoR的ActiveRecord也不方便)。目前是按业务划分把各种业务逻辑和cache用C++写中间件,前台PHP用socket来调用(WebService?太慢),我所知道的一些国内同等访问量的网站也都是使用类似的方式。

不使用ActiveRecord的RoR项目是什么样的? 这个我还没仔细想过。我使用过1.1.6和之前的版本,对于网站的分层目录支持似乎都不是很好,而大型网站通常都会有很多层分级目录,这样是不是ActionPack又得考虑要不要再用?看看还剩下什么?ActionWebService?目前很少用到WebService,所以基本上RoR对于我目前所在的项目来说已经没什么有意义的东西了。

网站做到一定规模,要解决的东西都是很繁琐的,结果会有一大批人来做,每个人做的都是些非常简单的部分,唯一的要求就是在同样的功能下如何加快效率,服务器毕竟不可以无限增加,而且服务器越多维护成本也越高,cache/HA同步成本也越高。

前段时间公司请了些人来做敏捷培训,结果是培训完了,根本没什么效果,人家的例子和我们的相差太大。公司让我做RoR培训, 我也推掉了,目前我还看不到公司里使用RoR的合适场合。所以最近关注的都是并发、分布方面的东西。

为什么用RoR?理由也很简单,在中小型网站项目上,它还是可以用来快速开发原型。我去年用RoR做过一个小项目,大部分时间花在数据库建模、网站逻辑、后台工作自动化、JS脚本等。


上班中,抽点时间瞎写一下。
   发表时间:2007-06-27  
Ruby on Rails最大的价值,不是帮助这些巨头网站,而是让长尾巴能够动起来。每天3亿PV的网站,有任何问题他们都可以自己想办法去解决,技术对于他们来说不构成任何障碍。被技术阻碍住的,是长尾巴上的商业模式。37信号做的事情,如果没有那么快捷的工具,可能就不会做起来。让长尾巴动起来,和让大头跑得更快,这本身就是两件截然不同的事情。
0 请登录后投票
   发表时间:2007-06-27  
长尾巴成长为小巨头了,已经积累的技术该怎么办?
0 请登录后投票
   发表时间:2007-06-27  
qiezi 写道
长尾巴成长为小巨头了,已经积累的技术该怎么办?

至少RoR的应用维护和扩展起来不会比其他语言开发的更困难
只不过这点优势不足以吸引已有的巨头而已
0 请登录后投票
   发表时间:2007-06-27  
楼主是在腾迅吗?

其实到了全球排名前10之内的网站规模,不管用RoR,PHP,Java,还是Perl,C++都会面临同样的问题,编程语言的差异反而不存在了。你的题目也可以改成“为什么用Java,为什么不用Java?”或者“为什么用PHP,为什么不用PHP?”
0 请登录后投票
   发表时间:2007-06-27  
RoR如果没有统一的编程规范, 维护和更新基本上是很难.
RUBY的多样性写法导致代码的多样性, 维护有你受的. 
有点跑题了, 但对于大型项目来说, 可维护性很重要.
开发速度和效率倒是其次的.
0 请登录后投票
   发表时间:2007-06-27  
qiezi 发这样的帖子挺让我吃惊的。。。
我一直以为你专门做ror的呢
0 请登录后投票
   发表时间:2007-06-28  
logo 写道
楼主是在腾迅吗?

其实到了全球排名前10之内的网站规模,不管用RoR,PHP,Java,还是Perl,C++都会面临同样的问题,编程语言的差异反而不存在了。你的题目也可以改成“为什么用Java,为什么不用Java?”或者“为什么用PHP,为什么不用PHP?”

不是腾讯。。

主要不是说语言,而是框架,java里面可能是hibernate + struts + velocity,面对拆库拆表的情况,hibernate怕也会力不从心,最后可能也只有struts+velocity还能发挥点作用,为了简单还不如jsp算了,这跟我上面所说的RoR的情况相似。我以前看到许多知名的大网站都用PHP,感觉不能理解,后来想通了,规模上去了,什么ORM都用不上了,逻辑放前台也不方便,就会形成一些中间层,每个只负责单一业务逻辑,这样前台只需要一个处理显示逻辑的东西,PHP/JSP好像很合适,不过PHP更得开发人员青睐,修改了放上去就能看到效果(RoR好像也要development模式才行?)。
0 请登录后投票
   发表时间:2007-06-28  
yananay 写道
qiezi 发这样的帖子挺让我吃惊的。。。
我一直以为你专门做ror的呢

做过一段时间吧,喜欢过一段时间,也投入了一段时间。

做中小型项目都可以考虑它,大型项目我想应该也行,只是把RoR里面一些特别有用的东西都弃之不用,剩下的刚好是效率比较一般的Erb渲染页面了,呵呵。
0 请登录后投票
   发表时间:2007-06-28  
qiezi 写道
logo 写道
楼主是在腾迅吗?

其实到了全球排名前10之内的网站规模,不管用RoR,PHP,Java,还是Perl,C++都会面临同样的问题,编程语言的差异反而不存在了。你的题目也可以改成“为什么用Java,为什么不用Java?”或者“为什么用PHP,为什么不用PHP?”

不是腾讯。。

主要不是说语言,而是框架,java里面可能是hibernate + struts + velocity,面对拆库拆表的情况,hibernate怕也会力不从心,最后可能也只有struts+velocity还能发挥点作用,为了简单还不如jsp算了,这跟我上面所说的RoR的情况相似。我以前看到许多知名的大网站都用PHP,感觉不能理解,后来想通了,规模上去了,什么ORM都用不上了,逻辑放前台也不方便,就会形成一些中间层,每个只负责单一业务逻辑,这样前台只需要一个处理显示逻辑的东西,PHP/JSP好像很合适,不过PHP更得开发人员青睐,修改了放上去就能看到效果(RoR好像也要development模式才行?)。


原来是这么回事。。。所以上升到高级阶段,还是c语言写的中间件会更快一些
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics