瞎扯淡 想问个问题,你们为何选择 Rails?

nikaone · 2014年09月20日 · 最后由 michael 回复于 2014年10月28日 · 7900 次阅读
本帖已被管理员设置为精华贴

我最近想 xue web 后端开发,然后听说 rails 高端 大气 上档次,开发效率高,ruby 又讲究以程序员为本,就了 jie 了一下。

que 发现几个疑问,

一个是 rails 更新快,各种 gem 更新也快。

更新快能否说明不够成熟,稳定呢?而且貌似测试用 rspec 的多,结果我发现 rails 作者说 rspec 已死,这。。。

二是资料少,

当然我英语还凑合能看英文书,但还是 jue 得资料太少了,搜点东西,stackoverflow 就冒出来了,而别的语言大部分是 blog 内容。

三是部署成本高。

我不知道这玩意咋部署的,要啥环境。听说了 heroku,我注册了看过,当时吓的我捂紧了钱包。

vps 也不便宜,我估计一般的 vps 怕是不行吧,好点得也忒贵了。

也没听说国内哪个大网站用 rails 开发的,当然我看过一个牛人的个人站是 ror 的,很好的站。

真诚求教,你们选择了 ror 的原因是什么。

为什么说话要 jia 拼音?

没有觉得资料少 如果中文常有字都要打拼音,资料自然就少了,好好回去上学吧 😓

有道理!!!

#1 楼 @Rei #3 楼 @lingceng #4 楼 @flowerwrong

我用的 ubuntu sun 拼音 有些字打不出来,我是来请教的原因的,你们哪,艾。 #2 楼 @huacnlee

我自己电脑 ubuntu12.04,用的默认的 ibus,拼音没有问题;公司用电脑 ubuntu14.04 装了搜狗输入法,也很好用。 chrome 浏览器有 google input 的插件,这些都是可以用的。

正文里这样写拼音让人觉得很随意,随意会被呵呵。

看得出你刚接触 rails,我现在回答你的问题:writing ruby make me happy, just so

#6 楼 @lingceng

谢谢,以前安装过搜狗拼音和 google 拼音因为有时无法切换,所以换回默认的了。Google input 插件很好。

的确有些字打不出来是正常的……lz 不是故意的。我用 fcitx 在 Pidgin 用 QQ 就有个别字打不出来。所以有时就用拼音代字。

1、 Linux 更新也很快啊。但是没人说不成熟和稳定罢。 框架和 gem 更新快某种程度上说明用的人多、社团活跃吧,每个版本不仅仅是修复 bug,主要还是增加一些新的特性嘛。不过 Ruby 社团的框架和库有些是比其他的语言更新迭代都要快很多。

现在比较流行 minitest(可能吧),而且感觉自带的够用就好了。

2、 资料还是蛮多的(当然指英文),而且官网的 Rails Guides 很多详细,遇到一些问题 stackoverflow 也有,实在不知道怎么解决来这里问下(几个月前我刚做 Rails 应用就遇到问题来这提问了,论坛里的人回答很及时)

3、 部署我也不懂啊……我倒觉得 Rails 开发比部署简单多了。 选择 RoR 主要是平时没事看,就学习看,我有 Java 的 Web 开发经验,感觉 Rails 开发还是蛮顺的(一个月就开始做自己的项目了,感觉入门比 Spring 还好学的……)很多做起来比较顺利(比如图表、注册功能第三方库用起来非常快)。

其实主流的网页开发框架差不多就那么几种吧。 Java ( 感觉 web 开发实在太麻烦了,而且网页规模又不是几千万。最重要的是对同事或者别人的代码已经无语了。不过其实还好。) PHP 不懂,只是觉得 PHP 只能做网页,还不如学习其他语言去。 Python 看入门书看了好几本,后来学了 Ruby 感觉还是后者更合适我,也就无缘 Python 的 网页框架了。 JS 的 Node.js 之类的,讨厌 JS……

当然最主要的是平时上班写 Java 之类的东西都已经很累了,既然空闲的时候我为什么要和同事一样用那么老的东西!最起码写网页试试 Play Framework 之类的也好啊(但是我如何说服别人这么做,项目经理也不肯啊),既然我自己一个写程序,就可以试试各种各样的有趣的东西嘛!

感觉版主回答“呵呵”还是有点过了,毕竟闻道有先后嘛。不过 lz 你如果你呆久了,你就知道其实社团里的人还蛮好的。如果有人跟我说 Java 很慢之类的话,心情不好的话,我也会说 呵呵 的……

至于你说的疑问,第一条也确实存在。 Rails 的快速更新可谓让人无所适从,之前的学习很多用不了多久就跟不上节奏了,需要再投入学习。 各种 Gem 随着 Rails 的升级也会发生不兼容或者需要更新使用技巧。所以我现在一般都懒得引入新的 Gem 了, 尤其是依赖 Rails 的那些 Gem,这样跟随 Rails 升级还轻松些。自己手工长远来看可能轻松些。 但这是尖端、先进难以避免需要付出的代价。如果学一下可以用十年,那肯定早就落后于平均水准了。

然而,后两条我并不认可。

Rails 的资料并不少,官方的 guide 就很全面,其他的甚至有基本中文书籍可以用来入门,比如 xdite 和 ihower 的电子中文书。 不过学 Rails 之前需要会 Ruby,所以学习成本并不低。

至于部署成本,是比 php 高,但不算太高的。一般的 vps 也够用了,这个看你的业务量了。 以 ruby-china 为例,也就是 ucloud 的虚拟主机,之前好像是盛大云还是某个云的虚机,访问量也算 不小的了,没觉得不够用吧? 至于 heroku 的价钱,人家是帮你省网管的。国内现在雇个能独当一面的网管没个 20w 人民币一年都下不来了, 换美帝的话可能就是少雇一个网管一年可以节约十几万美金了,所以 heroku 收这点钱对省一个网管来讲是便宜的。 但是,如果你本来就不打算雇网管,那 heroku 肯定是贵的,他们就是基于 amazon 的虚机的,用他的服务肯定比你自己直接用虚机贵,问题在于摆弄这些虚机也是要成本的,值不值就要看具体的业务和团队了。

楼主疑惑的是什么原因让我们使用 Rails 框架,而不是其他的框架。说说我的情况吧。

Rails 确实没有其它一些框架那么快,在你用过 Rails 后你会发现这是理所当然的。

前一段时间我用静态 html 写了公司官网 nginx + 静态 html 是最高效的,任何 java C++ 都是没办法比的。可现实环境并不是这么单纯,还有很多优化没有做。

<head> 中分布着很多零散的 Js Css 外部文件,为了减少现实环境中的链接数,需要把所有的 Js 合并成一个文件,所有的 Css 合并成一个文件,这就需要引入 Asset Pipeline

正好我们有用七牛的静态文件 cdn 服务,在 html 中的图片可以很容易的换成 cdn,可 css 里面的 图片要想换成 cdn 需要做的事情太多了,最终放弃这种方式,使用 Rails 来完成,主要是时间成本太高了。

前几年写 php 时,所有的数据库查询都是手动写,ActiveRecord 可以很方便的使用 ORM 来操作数据库,数据库的缓存也交给它解决,只要是之前查询过得数据都可以使用缓存,省掉了很多时间做缓存。

当然 Rails 提供的不止这些,还有很多实用的功能。如果使用其它框架,你需要自己做很多事情,你的时间会全部浪费在这些上面。

觉得,如果一个语言,连这个语言的书(文档不算书)都没有,才酸的上资料少。

rails 太臃肿了,帮程序员做的事情太多。 建议可以试试一些轻量级框架,比如 sinatra 和 padrino。 它们和 rails 一样,都是基于 rack 开发,很多基于 rack 的 gem 都是可以复用的。 ruby 开发 web 方面产品效率高,gem 丰富是很大一方面原因,还有就是 ruby 本身的灵活性,至于 web 框架,哪个顺手就用哪个吧。

楼主不是在 v2ex 发了么 怎么还跑这发了。。。别打击新手的积极性啊

我是爱上 ruby 了

如果你不持续学习 那你不适合做程序员

stackoverflow 比博客质量高多了=。=

当初想做个 N.B 的工具,可压根不懂 Web 开发怎么办,找个框架吧,开发快些,框架哪家强?我觉得是 Ruby On Rails.然后就入坑了,迄今未爬出来。

#11 楼 @swachian

不过学Rails之前需要会Ruby,所以学习成本并不低

这句话不同意,ruby 学习入门很容易,难的是 Rails 的 DSL,另外,真正重要的是学rails之前需要会web

#18 楼 @fsword 非常赞同。

最核心还是 web 基本原理。如果能够对每个请求背后都做了什么了然于心,那换什么语言框架都差不多了。

用户浏览器 =>域名解析 => 服务器 => App =>数据库 ..

#18 楼 @fsword 我指的学 rails 要学 ruby 导致学习成本高并不是说 ruby 难。而是和 php java 进行比较。学 php 的话,学会 php 基本就能写 web 了,但学会 ruby 还是没法写 web 的。虽然学会 java 一般也不会写 web,但是 java 是很多计算机甚至非计算机专业的学生在大学里必须学习的一门课程,对学 java web 而言多增加的成本也只有框架一个东西。

但 rails 的话,ruby 首先是绕不开的一个东西。其次,rails 在 windows 下跑的限制很多,它的核心开发者和应用开发者 80-90% 是用 mac,剩下的 10% 多也是 linux,这两个操作系统对新手而言都是障碍和需要付出学习成本的。因此我才认为学习 rails 的成本并不低。

会 Web 对学习 Rails 的帮助很大,反过来说熟悉 Rails 的过程也必然可以对 Web 更熟。但这个对新手也是完全不利的。可能没有其他 Web 开发经验的新人,真的很难体会 Rails 让人着迷的地方。

一直用,用了 6 年了

期间也玩过一点 dotnet 和 java,感觉都差不多,区别在于你是不是熟手。。。 不是熟手,啥框架都不舒服,特别是在你已经熟悉一种框架的情况下。

rails 帮你做了很多,帮你考虑了很多,所以就是 rails 很爽,再想用别的,就会有好痛苦感觉的原因。。。

学习成本是存在的,什么零基础几个钟头做好博客都是自己逗自己乐的。。。不了解 http 协议,不知道 html、css、js、数据库、开发语言、框架等等,都是扯淡。。。

如果你会。。。你自然不会觉得没资料,因为环境装好了,rails 的源码、插件的源码都在你电脑里了。。。如果你还在纠结 api 啥的,源码的注释就是 api 的信息,你在网上看到的 api 也都是如此生成的。。。

哥资料都在你电脑里了。。。你有能力去看吗???

#24 楼 @huobazi 哈哈,黑的好。 #20 楼 @swachian 关于学习成本,我觉得会写 PHP 语言与会使用 PHP 框架写项目是两回事。以及,会写简单的 Java Web 与用 Java 写 Web 项目也是两回事,并且不论是基本原理还是应用框架,它的学习成本都非常高。而 Rails 开发对 Web 基础技能和原理的依赖非常大,我觉得这正是优点,因为无论你今后怎么跳框架,这些东西都是不会变的;而正因为 Rails 用的是 DSL,这样才拉低了学习成本,如果不去深挖那些 DSL,在基本应用上还是很方便简洁的。只是,对于初学者,这样需要先适应一段时间。

@nikaone 楼主。上面很多大神已经提到不少了,我就补充一点。在国外,Rails 更多的应用于创业公司,也就是说 Rails 开发更多地注重敏捷开发,想要糙快猛地把应用搞出来,迅速发布并迭代。并且,实践证明 Rails 的性能尚好,部署也很方便(你去跟 JBoss 对比一下就知道了)。 所以,如果你想要敏捷,想要糙快猛,那就可以试试。如果你想要企业级开发的一些东西,建议出门左转移步Java、C#等。

#23 楼 @blacktulip 「当我看到搜索结果有 SO 的时候,第一反应是「哈哈,这下有救了」👍

#28 楼 @huacnlee 😄 python 3 的尴尬让我一直打不起精神学 python

#23 楼 @blacktulip 能分享下 Heroku 的省钱攻略么?

为什么要用一个打不出字的输入法?

另外,DSL 需要学?扯淡吧。跟学设计模式一样扯淡。

#23 楼 @blacktulip 资料翔实。。。。不应该是资料详实么,你被输入法出卖了

#32 楼 @dddd1919 不应该,就是「翔实」

最近在学 rails,发现 rails 会帮你做很多事情,而且使用很灵活,至于性能方面不知道怎么样。

#33 楼 @blacktulip 俩 xiang 都行,不过这个.......

#9 楼 @wcc526 挺受用的,请问您的博客使用什么搭建的啊?

就是看到一个“一键部署”(对,就是那个 InstantRails),然后 Ruby 的语法又比较有趣,就入坑了。没想到之前看中的优点根本用不上……泪

因为我不喜欢 Java
RoR 资料其实不少,洋文不好的人确实不适合。
你开发遇到的问题爆栈上面基本都有。 公司里面买的阿里云服务器,部署使用 cap。 反正我不写测试,rspec 怎么样其实对我来说不是很困扰。 测试还有黄瓜什么的。 还有就是,你为何这么看不起爆栈而觉得有博客的内容才是你要的。 爆栈比知乎什么的靠谱多了。 反正我能用爆栈就不找博客。多么简单粗暴。 博客什么的看来多浪费时间。 阿里云又不贵。买一个最小的也够你用了。反正也没人看。 国内很多网站也有用 RoR 的。 干嘛总要觉得国内很多人用的东西就是好东西。 scala,clojure 国内用的就不多,就不好了么?

@blacktulip 回复的内容很犀利,很直接 👏 , 评价一件事物好不好,别人的观点固然重要,最重要的是自己尝试下好不好,适合自己才是最好的,任何事物没有绝对的好与坏。如果觉得 PHP 更适合你,那在你看来可能 PHP 优于 RAILS,别人再怎么说也无济于事,就是这么回事。

#5 楼 @nikaone sunpinyin 输入一些例如“月”是有问题的,我已经换回 ibus 的 pinyin,一切良好。其实选择 RoR 也就是在于有点探索精神,而且在一个世界不稳定的时候,才是可以驾驭他的时候。等一切都尘埃落定了,也就索然无味了。生命不息,折腾不止阿

#6 楼 @lingceng It makes me happy too 😝

在用过的语言里,Rails 建站是最快,也是最容易上手的了。最主要它融合了很多 Best Practice,减少了很多麻烦的配置。

Rails 最大的问题就是越学越发现要学的越多,活生生的把人往全栈上逼啊。

@jjzxcc 同感! --Rails 最大的问题就是越学越发现要学的越多,活生生的把人往全栈上逼啊。

同意 43 和 44 楼,我学 rails 的初衷完全是想实现自己的 idea,当年想开发个 APP 玩儿,发现需要掌握一门后端语言,直到找到著名的“15 分钟开发一个 BLOG”,直呼过瘾,就选择了 RAILS。没想到一入 rails 深似海,要想开发一个套完整 API 对初学者不容易,最终还是找了用 rails 技术的公司上班学艺去了,一晃两年过去了,现在有了 idea,做网站一个人也能勉强搞定,RAILS 给我的感觉实乃提高生产力的神器啊。

rails 社区走在 web 开发的最前沿

@blacktulip 祝贺 rc 三周年。Django 伙伴希望 Rails 快一点,不过分吧?

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