我最近想 xue web 后端开发,然后听说 rails 高端 大气 上档次,开发效率高,ruby 又讲究以程序员为本,就了 jie 了一下。
que 发现几个疑问,
更新快能否说明不够成熟,稳定呢?而且貌似测试用 rspec 的多,结果我发现 rails 作者说 rspec 已死,这。。。
当然我英语还凑合能看英文书,但还是 jue 得资料太少了,搜点东西,stackoverflow 就冒出来了,而别的语言大部分是 blog 内容。
我不知道这玩意咋部署的,要啥环境。听说了 heroku,我注册了看过,当时吓的我捂紧了钱包。
vps 也不便宜,我估计一般的 vps 怕是不行吧,好点得也忒贵了。
也没听说国内哪个大网站用 rails 开发的,当然我看过一个牛人的个人站是 ror 的,很好的站。
真诚求教,你们选择了 ror 的原因是什么。
我自己电脑 ubuntu12.04,用的默认的 ibus,拼音没有问题;公司用电脑 ubuntu14.04 装了搜狗输入法,也很好用。 chrome 浏览器有 google input 的插件,这些都是可以用的。
正文里这样写拼音让人觉得很随意,随意会被呵呵。
看得出你刚接触 rails,我现在回答你的问题:writing ruby make me happy, just so
的确有些字打不出来是正常的……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 很慢之类的话,心情不好的话,我也会说 呵呵 的……
http://www.wengchichi.com/how-to-install-and-deploy-rails-gracefully-zh/ 部署的话,可以看我这篇博客,挺简单的。
原因很简单:
至于你说的疑问,第一条也确实存在。 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 框架,哪个顺手就用哪个吧。
当初想做个 N.B 的工具,可压根不懂 Web 开发怎么办,找个框架吧,开发快些,框架哪家强?我觉得是 Ruby On Rails.然后就入坑了,迄今未爬出来。
不过学Rails之前需要会Ruby,所以学习成本并不低
这句话不同意,ruby 学习入门很容易,难的是 Rails 的 DSL,另外,真正重要的是学rails之前需要会web
最核心还是 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 也都是如此生成的。。。
哥资料都在你电脑里了。。。你有能力去看吗???
阁下听说的有误,PHP 才高大上,Java 开发效率才高,Node 才讲究以程序员为本
「更新快能否说明不够成熟,稳定呢?」
开源软件更新快说明社区活跃,发展健康。如果开源软件数月不更新,就要慎重考虑是否应该选择这个软件。
「而且貌似测试用rspec的多,结果我发现rails作者说rspec已死,这。。。」
David 对 RSpec 的反感并不影响社区使用 RSpec . 这也是开源软件的魅力之一,没有什么一言堂。至于 RSpec 是不是已死,阁下用用不就知道了?另外可以参考一下 "Rails has Two Default Stacks" 这篇文章
「二是资料少」
反正我是没见过资料比 Rails 更多的框架了,也许是我见识少
「搜点东西,stackoverflow就冒出来了,而别的语言大部分是blog内容。」
我觉得这涉及到三观问题... 当我看到搜索结果有 SO 的时候,第一反应是「哈哈,这下有救了」
「我不知道这玩意咋部署的,要啥环境。」
「虽然我什么也不知道,但这阻挡不了我开喷」
「听说了heroku,我注册了看过,当时吓的我捂紧了钱包。」
Heroku 上我有十多个站,从来没掏过一个美分
「vps也不便宜,我估计一般的vps怕是不行吧,好点得也忒贵了。」
由于不清楚对阁下而言多少钱算「贵」,所以没法评论。但我看一个月十刀的 VPS 跑 Ruby China 应该不成问题
「也没听说国内哪个大网站用rails开发的」
阁下志存高远,不知道打算开发多大的网站? https://ruby-china.org/sites 这里列出了一些网站可供参考
「真诚求教,你们选择了ror的原因是什么。」
Ruby on Rails 的简称是 Rails 不是 ror .
要说原因不外乎 语言奇诡,框架魔幻,社区活跃,外库丰富,教程齐全,资料翔实 等等原因
Rails 并不适合所有人,阁下大可寻一些更新更慢,库选择更少,搜不出太多 SO 内容,部署更便宜,很多国内大网站使用的框架来学习。如找到心仪的还请来此推荐一番。
#24 楼 @huobazi 哈哈,黑的好。 #20 楼 @swachian 关于学习成本,我觉得会写 PHP 语言与会使用 PHP 框架写项目是两回事。以及,会写简单的 Java Web 与用 Java 写 Web 项目也是两回事,并且不论是基本原理还是应用框架,它的学习成本都非常高。而 Rails 开发对 Web 基础技能和原理的依赖非常大,我觉得这正是优点,因为无论你今后怎么跳框架,这些东西都是不会变的;而正因为 Rails 用的是 DSL,这样才拉低了学习成本,如果不去深挖那些 DSL,在基本应用上还是很方便简洁的。只是,对于初学者,这样需要先适应一段时间。
@nikaone 楼主。上面很多大神已经提到不少了,我就补充一点。在国外,Rails 更多的应用于创业公司,也就是说 Rails 开发更多地注重敏捷开发,想要糙快猛地把应用搞出来,迅速发布并迭代。并且,实践证明 Rails 的性能尚好,部署也很方便(你去跟 JBoss 对比一下就知道了)。 所以,如果你想要敏捷,想要糙快猛,那就可以试试。如果你想要企业级开发的一些东西,建议出门左转移步Java、C#等。
因为我不喜欢 Java
RoR 资料其实不少,洋文不好的人确实不适合。
你开发遇到的问题爆栈上面基本都有。
公司里面买的阿里云服务器,部署使用 cap。
反正我不写测试,rspec 怎么样其实对我来说不是很困扰。
测试还有黄瓜什么的。
还有就是,你为何这么看不起爆栈而觉得有博客的内容才是你要的。
爆栈比知乎什么的靠谱多了。
反正我能用爆栈就不找博客。多么简单粗暴。
博客什么的看来多浪费时间。
阿里云又不贵。买一个最小的也够你用了。反正也没人看。
国内很多网站也有用 RoR 的。
干嘛总要觉得国内很多人用的东西就是好东西。
scala,clojure 国内用的就不多,就不好了么?
@blacktulip 回复的内容很犀利,很直接 , 评价一件事物好不好,别人的观点固然重要,最重要的是自己尝试下好不好,适合自己才是最好的,任何事物没有绝对的好与坏。如果觉得 PHP 更适合你,那在你看来可能 PHP 优于 RAILS,别人再怎么说也无济于事,就是这么回事。
同意 43 和 44 楼,我学 rails 的初衷完全是想实现自己的 idea,当年想开发个 APP 玩儿,发现需要掌握一门后端语言,直到找到著名的“15 分钟开发一个 BLOG”,直呼过瘾,就选择了 RAILS。没想到一入 rails 深似海,要想开发一个套完整 API 对初学者不容易,最终还是找了用 rails 技术的公司上班学艺去了,一晃两年过去了,现在有了 idea,做网站一个人也能勉强搞定,RAILS 给我的感觉实乃提高生产力的神器啊。