瞎扯淡 第一年开发 Rails 的一些感受

bydmm · 2013年12月30日 · 最后由 bydmm 回复于 2014年01月04日 · 4627 次阅读

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 之类轻量级的。

#2 楼 @zeeler 我认为 rail 最大的价值就是快速开发。这一点上,rails 适合创业但并不适合 OA 这样的系统。

创业小团队就是要快,快速上线,快速试错,快速转身。快慢决定了生与死。

但是公司内部的 oa 系统,足够快的目的,除了快更是为了节约成本。在这一块 rails 的极限速度发挥不出来,自然也体现不出太大的价值。

#3 楼 @bydmm 你说的也没错,不过类似于 CMS 和统计系统的展现等 WEB 项目,挺适合用 rails 的,一个是需求变化快,另外,也确实需要效率来弥补人员不足。总之,性能要求不高但需要快速开发的 WEB 项目才能发挥 rails 的威力!

#1 楼 @zj0713001 我并没有指责任何人,我只是阐述一下现象。

#5 楼 @bydmm 太不凑巧了...我们就是用 rails 做的 cms oa,cms 还包括了前端交易系统...

Rails 入门不难,有点 http 的经验很好入门

rails 也不是高手的专属

#6 楼 @zj0713001 我只是想表述一下用水果刀切水果很好,但是砍骨头很吃力。但是非有个水果刀爱好者用特定的技巧让水果刀去砍骨头,并以此证明水果刀砍骨头也不错,那么我感觉这只是抬杠。我并不是针对谁,我只是想说请放开心扉,不要害怕离开舒适区。

我相信 CMS,OA 用 Rails 开发是极好的,就如同倚天剑割草必定一刀一大片,但是相信你也明白,武林大会才是他的归宿。

#7 楼 @search Rails 入门不难,甚至还有点简单。因为他让很多复杂的时候都预先处理好了。让新手一开始不用自己面对那些问题。比如 PHP 要从 Mysql 的连接类开始写。

但是同样是降龙十八掌,在乔峰手上天下无敌,但是在宋青书手上也不过如此。

#3 楼 @bydmm 这一楼真是不知道在说什么,「极限速度」是什么?啥语言/框架是适合做「OA 系统」的?

请问楼主,你是用的什么操作系统呢?~~新手求教育@bydmm

没人会承认是自己能力问题玩不转 Rails 的,所以离开的时候都会扯出各种各样 Rails 的问题。

#9 楼 @bydmm 我也木有跟你抬杠啊 只是觉得 rails 给你留下了这样的印象好遗憾

#11 楼 @gsky 我用的是 OSX 在 MAC 下开发,原因除了 MAC 不折腾,更因为我还要负责前端的工作,需要用 Photoshop 切图。

关于折腾这个部分,比起在 ubuntu 下安装 Rails 环境这种小折腾外,更麻烦的是 ubentu 的驱动,常用软件的匮乏等问题。我同事的一台笔记本,在 ubuntu 下 mic 驱动总是出问题,最后只好在 win 下装了个 ubuntu 的虚拟机开发。

@bydmm 我同意楼主的观点。说实话,比较大的复杂的系统光一个 rails 是搞不定的,结合了多种不同技术和框架后效果会好很多,并不一定要彻底抛弃 rails,只不过角色会变化,从一个完整系统变成了大系统的一个小模块。

#14 楼 @bydmm ubuntu 做开发的话,不用装驱动,一般笔记本装上就能用,搭 rails 的环境比 mac 还方便

#16 楼 @lidashuang 其实 Ubuntu 在很多笔记本上都存在驱动问题,笔记本有些辅助设备比较小众,Linux 驱动缺乏很常见。比如一些读卡器,红外,安全模块等。 即使有驱动,某些声卡驱动会导致失真,无线网络驱动会出现不支持某种加密算法等,因为笔记本不是 Linux 的主力,比如找个 Raid 卡驱动,反而就是 Linux 强项了。 我想 @bydmm 说得折腾就是类似这些麻烦,而且对于多数人来说,没有厂商资料,自己写驱动是不可能完成的任务。

而 Mac 显然不会有这些麻烦。

一下歪楼就歪到了讨论开发环境,感觉等下就会有人讨论那个版本的 Linux 来做开发的好了。。

感觉社区很多人有点容易轻易站在道德跟境界的最高点上看问题。。当然不是说楼主

"但是在新人手里五分钟就能砍死自己。" 点评的极是。

看到了这个文章适合说明 rails 适合的场合:http://www.iteye.com/news/28641-technology-stack-choice

#12 楼 @Rei 记得 rubyconfig2013 那里有个 groupon 的从转到 jruby 的。不知道@Rei 怎么看!

看什么顺手就拿什么做了,要是你对 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 大說還有下文。。。。

#25 楼 @ksec @luikore nodejs 为什么!!为什么!!!为什么不是 golang!!!! @Rei 如何看待 groupon ~~

#20 楼 @hpyhacking 我刚入行的时候就砍不死任何人,因为一行都码不出来,而且还瞻前顾后 :-D

非常赞同楼主的观点!用 rails 和 ruby 就是为了快速开发和迭代。遇到性能问题,首选就是买服务器。

想请问,楼主关于单元测试,是怎么看?单元测试和开发(这里包括维护和 debug,团队交流)速度是一个什么样的关系? 谢谢!

#28 楼 @yfractal 可能是我们的测试能力不足的原因,TDD 在我们这个团队暂时还没有实现。 现在还是比较原始的人工测试阶段。 不过如果以后我们的版本更新速度更稳定一些的话,相信还是可以配合的上的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号