想请教你们为何选择 rails - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jacob
V2EX    Ruby on Rails

想请教你们为何选择 rails

  •  1
     
  •   jacob 2014-09-20 18:45:32 +08:00 7134 次点击
    这是一个创建于 4069 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    que发现几个疑问,

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

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

    二是资料少,

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

    三是部署成本高。

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

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

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

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

    28 条回复    2014-09-21 19:22:10 +08:00
    roamlog
        1
    roamlog  
       2014-09-20 19:07:16 +08:00 via iPhone   1
    1)这就是 Rails 的特点,也是它成功的原因之一,如果你不接受这一点就最好别用,不然会很痛苦。

    2)资料相对其他语言来说确实不算多,搜出来 so 的内容不是很正常吗?而且也更好啊,blog 内容很多时候反而不好。

    3)一台 vps 而已,这哪里难了?你折腾其他语言也得有台 vps 啊。
    xp0729
        2
    xp0729  
       2014-09-20 19:12:57 +08:00   1
    我能说是因为非科班出身完全不懂c,java之类的然后觉得物以稀为贵不想学大流准备在Python和ruby中挑一个最后发现ruby-china感觉很对胃口最最后机缘巧合找了个rails的工作么........
    xp0729
        3
    xp0729  
       2014-09-20 19:14:39 +08:00
    顺便吐槽一下楼主说的问题其实都不是什么问题.....选择了,然后坚持下去准没错
    damajia
        4
    damajia  
       2014-09-20 19:14:55 +08:00   2
    已放弃的飘过

    我是经过自身近1年半的实践才放弃的,所以不要人云亦云。
    lightening
        5
    lightening  
       2014-09-20 19:17:50 +08:00   1
    开发速度特别快。Rails 帮你解决了大量问题。引入了 Migration, asset pipeline 等概念非常超前。研究 Django 的时候经常在想,DHH 怎么这么牛逼,2007 年就能设计出这么完善的框架。Rails 出现后,几乎所有语言都出现了深受 Rails 影响的框架。但就我所知道的 Django 来说,直到最近的 Django 1.7 才引入 migration,而且还残缺不全……

    关于你发现的几个问题:
    1. 如果你说的稳定是指不再加入新 feature 的话,那么 Rails 确实不够稳定。不过 Ruby 社区的文化就是这样,比较喜欢追求新东西。DHH 是个非常偏激的人,他就喜欢 Ruby 的内建测试框架 Test::Unit。你可以自己选用 RSpec 还是 Test::Unit。
    2. Rails 资料少确实是一个问题。一方面是因为比较新,另一方面是因为入门难一点。Rails 是一个大而全的框架,都学一遍要花不少时间。
    3. 用普通的 VPS 就可以部署了。看一下 Capistrano 这个 gem。Heroku 收费挺高的,而且限制比较多,不过省心省力,如果你项目人数很少没有精力维护服务器,Heroku 还是挺好的。
    roamlog
        6
    roamlog  
       2014-09-20 19:20:25 +08:00
    话说,lz 好像多次在 V2EX 抱怨 Rails 了,我觉得学 Ruby 和 Rails 应该是一个快乐的过程,如果弄得这么痛苦了,可能 Ruby 和 Rails 不一定适合你,也许可以考虑去弄点别的。。。
    msg7086
        7
    msg7086  
       2014-09-20 19:35:13 +08:00   1
    heroku太贵了用不起。

    rails的VPS的话我现在用linode 1024跑一个很小的类博客站,30万帖子,每天60万动态请求,CPU平均占用在10%以下。nginx+unicorn+redis+mariadb。

    rspec我觉得挺好。我这边用rspec+capybara做集成测试,感觉很舒服。

    ROR的特点就在于快速开发。想想吧,开发一个网站系统只需要一星期而且可以保证逻辑上基本bug free,这得节约多少钱。这年头服务器比程序员便宜多了……
    msg7086
        8
    msg7086  
       2014-09-20 19:38:42 +08:00
    至于大型网站不用ROR,道理也简单。一来系统大了以后,ROR的模式就不适用了。一来国内程序员很便宜,服务器反而很贵,直接造成了多招程序员少堆服务器的后果。

    ROR跑到很高的量以后就会渐渐出现瓶颈。如果没有强大的架构师支持的话,最简单的方法还是逐步迁移到其他平台上去。推特就是妥妥转去scala了。(其实scala比ruby更小众

    ROR最大的优势还是快速起步。一个公司刚起步做开发,如果一套系统要做个一年半载的,怎么混啊。还不如弄一堆gem花一个星期堆起一个原型再说。等原型做大了,钱挣多了,系统撑不住了,再换就是了。
    jacob
        9
    jacob  
    OP
       2014-09-20 19:45:11 +08:00
    @roamlog 没有吧,我只发过2个关于rails的帖子,上次是说镐头书,让你有这种想法真的挺不好意思,我有点强迫症倾向,又有哪个东西能完美呢

    @lightening
    感谢这么用心的回答,经你一说我就放心了,毕竟水平不够看不出好,但能体会到有很多封装好的方法很方便,gem和rake也能省去不少无聊的操作。 Migration, asset pipeline ,因为我不知道别的语言怎么操作数据库的和静态文件的,竟然错把好处当平常了。。。
    WildCat
        10
    WildCat  
       2014-09-20 19:48:39 +08:00
    借贴提问:
    t/134085#reply1
    roamlog
        11
    roamlog  
       2014-09-20 19:49:11 +08:00 via iPhone
    @jacob 现在中文书有一本新的了,你可以考虑一下
    zhs227
        12
    zhs227  
       2014-09-20 19:51:19 +08:00   2
    给客户陆陆续续做Rails项目快一年了,中文资料少确实是一个问题。不愿意看英文的话,Rails很痛苦。如果语言不是问题,Rails用起来就太理想了。

    关于版本匹配的问题,在Gemfile中可以指定要求的Gem版本号。对于维护系统来说问题不太大。现在搭好环境,Rails 2.x的还能跑起来。

    国外使用Rails的人太多了,基本上什么问题找两个关键词一搜就会导出到stackoverflow,Google就会准确的命中你要的那一条,最多第二条第三条,一般都好用。
    当然有的用法是手册上找不到的,最好把它记下来,方便下次使用。


    部署的话,一般的VPS都可以搞定的。当然比PHP这种传上去就用的要复杂点。
    msg7086
        13
    msg7086  
       2014-09-20 19:56:23 +08:00   2
    Migration和Assets都很好用。而且又因为Ruby本身的语言特性就决定了这货写DSL简直神一样,所以写一些奇怪的东西完全就不会感到不顺手。

    比如laravel里的ORM,
    $user = DB::table('users')->where('name', 'John')->first();
    而ActiveRecord里
    user = User.where(:name => 'John').first
    怎么看也是后者比较舒服。

    Rails用了很多Ruby的黑科技,而其他的语言很难做到如此灵活。就算是简洁优雅的laravel也没有办法把那些必须的语言元素(DB::table())省略掉。
    WildCat
        14
    WildCat  
       2014-09-20 21:11:04 +08:00 via iPhone
    @msg7086
    Laravel可以 User::where('name', 'john')->first() 的
    msg7086
        15
    msg7086  
       2014-09-20 21:29:23 +08:00 via iPhone
    @WildCat 双冒号和箭头的使用就能让人疼很久
    hustlzp
        16
    hustlzp  
       2014-09-20 21:41:40 +08:00
    之前接到过一个外包,1个月的时间,临时起意用RoR,踩了不少坑...

    不过感觉理念确实很赞,但对于个人来说,还是喜欢Python Flask~
    xiparos
        17
    xiparos  
       2014-09-21 05:37:42 +08:00
    资料少?stackoverflow 正好说明有人踩过坑,不太懂英文的敢说资料少?
    msg7086
        18
    msg7086  
       2014-09-21 06:17:24 +08:00 via iPhone
    除了爆栈网以外,如果日语好的话也可以直接看日语资料啊
    ahr0u
        20
    ahr0u  
       2014-09-21 08:26:58 +08:00
    @hustlzp 我接触过Flask和Rails,刚开始的时候也的确更喜欢Flask,接触不深有个问题想请教下,在安全上,我了解的是Rails作为非常成熟的框架,其安全上面的考虑是做得很多的,譬如常见的跨域攻击等都有相应的防护手段,虽然说安全与否看程序员个人,但Rails这方面无疑更省心一些,请问Flask在安全上面有那么周到的考虑吗?
    kongkongyzt
        21
    kongkongyzt  
       2014-09-21 12:49:03 +08:00
    iteye就是用ROR写的
    swirling
        22
    swirling  
       2014-09-21 13:08:21 +08:00 via iPhone
    @ahr0u flask基本框架只管核心,你需要这些一般都有插件。比如flask-wtfforms就可以。学习flask的成本其实不算低,因为其实flask本身虽然很轻,但是如果要用插件也需要很多学习,插件相关文档也很少。但是熟悉的话flask很灵活。
    BackBox
        23
    BackBox  
       2014-09-21 17:53:56 +08:00
    @zhs227
    哪里找到的Rails外包哦?
    ahr0u
        24
    ahr0u  
       2014-09-21 18:23:26 +08:00
    @swirling 谢谢,Rails 各种gem大部分特别是常用的譬如authentication, 权限, 文件上传等的文档倒是很好就是了
    ichou
        25
    ichou  
       2014-09-21 18:42:04 +08:00
    高档大气上档次 嗯 其实是感觉对 php 不会再爱了
    zhs227
        26
    zhs227  
       2014-09-21 18:45:36 +08:00
    @BackBox 外包的水很深,自己的经验是客户发展主要靠最初的客户推荐。目前主要做针对北美地区的(收点美元,顺便学一下英语),起点是国外几大知名外包网站:freelancer, elance, odesk。自从不知道什么时候阿三进驻后,报价竞争很惨烈,曾经有个阿三在上面找人$150一个月全职PHP,所以一直在上面混不是个好路子,但是如果要做国外的外包可以把这里当做起点,找工作时注意时差问题。
    国内的话不太清楚,一般找Rails的不多。之前有人推荐过猪八戒,可以在网上找相关帖子参考一下。
    这里面的经验要说完恐怕要几万字,不多说了,有兴趣的话自己勇敢去探索吧!
    BackBox
        27
    BackBox  
       2014-09-21 19:17:05 +08:00
    @zhs227 少年,留下Gtalk或者mail继续交流下。:)
    zhs227
        28
    zhs227  
       2014-09-21 19:22:10 +08:00
    @BackBox 要搞掂国外客户还是尽早弄个skype,我的skype id: skype.zhs227。俺孩子已经上幼儿园了,不再是少年了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     985 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 19:18 PVG 03:18 LAX 11:18 JFK 14:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86