Rails 是一把双刃剑 -- 上手难
Rails 在武林高手手中乃是一把神器,能劈能刺,正反皆可,但是在新人手里五分钟就能砍死自己。比起剑这样的贵族武器,农夫还是拿根木棒战斗力更强。
使用 Rails 的大侠们可以组成一个无坚不克的剑阵,但是不能组成一支军队。
大侠太少,招人太难。凑一只大军是没什么可能的。况且大侠大都很有个性,各自有各自的套路,真有一天凑齐了 100 个 Rails Hacker 估计也没法指挥。
我们都是游击队,鬼子落单就打,鬼子扫荡就散。
Rails 是给一个 6 人附近的小创业团队使用的框架,当项目成功之后期权兑现,走人。接着的团队该用 java 用 java,该用 php 用 php。能抗 500 还是 5 万个并发,让他们想去吧。我从来不纠结于 Rails 框架的性能问题,先优化代码和增加服务器。要是摸到了 Rails 性能的天花板,恭喜你上市了。这种问题也是让别人操心吧。
天下武功唯快不破
为什么 Rails 这么适合创业公司?因为 Rails 在 10 人的团队规模的时候开发最快!
第一,Rails 的社区太好,除了本身就极为优良的 Rails 框架本身,更因为 Rails 跟随最新技术如此之近,SCSS,Memcache,PGSQL 这种大规模应用绝对是其他社区的比不过的,因为我们有太多优秀的中间件 GEM,甚至很多直接集成进了 Rails。
第二,Rails 需要一流的开发人才,只有高手才能真正玩转 Rails,高手本已天下无敌,何况手中还有一把倚天剑。
小团队是天生适合创业的。 虽然初期资金有限,但是工资以外的期权让员工从为人干活变成为自己干活,提高了工作效率。
小团队的试错和转身能力是大团队不可比拟的,当某大公司还在写项目计划书的可行性报告的时候,小团队的第一个版本已经在 Heroku 上线了。当某大公司终于立项的时候,小团队已经进入了第三个迭代。当某大公司产品经理和下面的开发人员争论某个能不能做的时候,小团队已经发现这个项目 B2C 走不通,必须 B2B 才能赚到钱。当某大公司第一个版本上线的时候,尘埃已定。
因此,如果不是张小龙亲自带队,我是不怕腾讯这样的山寨大王的。
请认准 Rails。
个人认为,rails 的适应场合有:1) 小团队创业,快速实现; 2) 对性能要求不高但是需要快速开发的系统,比如公司内部系统,如 JIRA 之类型的;3) 测试脚本。当然,一些高性能、功能复杂的系统更需要松耦合的设计,每个模块越简单越好,sinatra 之类的框架可以胜任一些工作,rails 有点太臃肿了。很多大公司也在用 rails,或者通过多种技术结合,好的架构来达到不错的性能,或者用来做些内部系统,比如 OA 之类。其实很多情况下,瓶颈在架构设计,而 rails 集成了太多东西,过于臃肿,不利于优化架构,除非砍掉 rails,换成 sinatra 之类轻量级的。
#6 楼 @zj0713001 我只是想表述一下用水果刀切水果很好,但是砍骨头很吃力。但是非有个水果刀爱好者用特定的技巧让水果刀去砍骨头,并以此证明水果刀砍骨头也不错,那么我感觉这只是抬杠。我并不是针对谁,我只是想说请放开心扉,不要害怕离开舒适区。
我相信 CMS,OA 用 Rails 开发是极好的,就如同倚天剑割草必定一刀一大片,但是相信你也明白,武林大会才是他的归宿。
#7 楼 @search Rails 入门不难,甚至还有点简单。因为他让很多复杂的时候都预先处理好了。让新手一开始不用自己面对那些问题。比如 PHP 要从 Mysql 的连接类开始写。
但是同样是降龙十八掌,在乔峰手上天下无敌,但是在宋青书手上也不过如此。
@bydmm 我同意楼主的观点。说实话,比较大的复杂的系统光一个 rails 是搞不定的,结合了多种不同技术和框架后效果会好很多,并不一定要彻底抛弃 rails,只不过角色会变化,从一个完整系统变成了大系统的一个小模块。
#16 楼 @lidashuang 其实 Ubuntu 在很多笔记本上都存在驱动问题,笔记本有些辅助设备比较小众,Linux 驱动缺乏很常见。比如一些读卡器,红外,安全模块等。 即使有驱动,某些声卡驱动会导致失真,无线网络驱动会出现不支持某种加密算法等,因为笔记本不是 Linux 的主力,比如找个 Raid 卡驱动,反而就是 Linux 强项了。 我想 @bydmm 说得折腾就是类似这些麻烦,而且对于多数人来说,没有厂商资料,自己写驱动是不可能完成的任务。
而 Mac 显然不会有这些麻烦。
看到了这个文章适合说明 rails 适合的场合:http://www.iteye.com/news/28641-technology-stack-choice
看什么顺手就拿什么做了,要是你对 rails 熟就用 rails,要是你对 php 熟就用 php,其实无所谓的,用户才不关心你拿什么做的,只会看你做的东西满足用户的要求没
GitHub 中國遊記之 CSDN——Git+Code=Gold
CSDN:能談談 scaling 的問題麼?
Zach:最開始只有 github.com 的時候,好多人都說,你們用的是 Ruby on Rails,吞吐量的問題怎麼解決?我當時真想說,Ruby on Rails 不是導致速度受限的問題,數據到磁盤的讀寫速度才是硬傷。現在我們更新了一大批服務器,速度很快。
http://www.csdn.net/article/2013-12-23/2817890-GitHub-journal-in-China-Part2/1
#22 楼 @jarorwar 最近 groupon 都轉到 NodeJs 了, https://engineering.groupon.com/2013/node-js/geekon-i-tier/ 雖然 @luikore 大說還有下文。。。。
非常赞同楼主的观点!用 rails 和 ruby 就是为了快速开发和迭代。遇到性能问题,首选就是买服务器。
想请问,楼主关于单元测试,是怎么看?单元测试和开发(这里包括维护和 debug,团队交流)速度是一个什么样的关系? 谢谢!