V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jacob
V2EX  ›  Ruby on Rails

想请教你们为何选择 rails

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

    我最近想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
    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   ·   我们的愿景   ·   实用小工具   ·   1231 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 18:08 · PVG 02:08 · LAX 11:08 · JFK 14:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.