学 php 的,想转 ruby~ - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
roys
V2EX    问与答

学 php 的,想转 ruby~

  •  
  • &nbs; roys 2014-11-10 11:20:02 +08:00 7968 次点击
    这是一个创建于 4068 天前的主题,其中的信息可能已经有所发展或是发生改变。
    搞了这么久的web开发当然也想做点其它的,综合考虑后开始学习ruby(ruby有rails还可以做许多php不擅长的)。
    可是开始学用laravel后自己又动摇了。laravel 真的那么强?
    laravel kept me from leaving PHP???
    46 条回复    2014-11-11 17:31:35 +08:00
    simapple
        1
    simapple  
       2014-11-10 11:47:48 +08:00
    你可以再试试silex
    kankana
        2
    kankana  
       2014-11-10 11:50:03 +08:00
    能说说rails有啥php不擅长的吗?
    hging
        3
    hging  
       2014-11-10 11:57:07 +08:00
    ruby大法好.
    WildCat
        5
    WildCat  
       2014-11-10 12:08:47 +08:00
    @roys
    我都是初学者。

    以前学习laravel的时候用它打算写一个校友会网站,https://github.com/imWildCat/tzyz_laravel

    后来用Rails写了: https://github.com/imWildCat/tzyz

    感觉还是用Rails比较愉快,而且Rails非常成熟,比laravel值得信赖。
    比如队列的解决方案,Rails有sidekiq,Resque等等成熟的方案,laravel 4.2的据说坑还是不少。另外确实Ruby可读性更好,尤其是闭包。
    WildCat
        6
    WildCat  
       2014-11-10 12:09:28 +08:00
    另外个人不太喜欢 laravel 5的目录结构,感觉还不如不变。
    jyootai
        7
    jyootai  
       2014-11-10 12:36:05 +08:00
    Ruby大法好,最接近人类的语言
    luoyou1014
        8
    luoyou1014  
       2014-11-10 12:38:29 +08:00
    开始入坑吧……

    rails的设计很好,可惜实现很有问题,稳定性有待加强,尤其在win下的稳定性几乎悲剧啊。
    希望 rails 的开发团队再好好加油吧。
    AWSAM
        9
    AWSAM  
       2014-11-10 13:03:44 +08:00
    @luoyou1014 Rails本来就不是为win设计的
    lichao
        10
    lichao  
       2014-11-10 13:17:46 +08:00
    @luoyou1014 不能拿 ruby 在 win 下的稳定性说事,因为 99.99% 的 ruby 应用都是部署在非 win 环境下的
    mahone3297
        11
    mahone3297  
       2014-11-10 13:42:21 +08:00
    看大家都推崇laravel,比如symfony如何?我觉得好像蛮少人了解symfony,然后一直说laravel好。然后人云亦云。。。
    redguy6
        12
    redguy6  
       2014-11-10 14:21:48 +08:00   1
    You should learn python.
    tang8888
        13
    tang8888  
       2014-11-10 14:30:03 +08:00
    nodejs - express 最好.
    chloerei
        14
    chloerei  
       2014-11-10 14:33:59 +08:00
    有那么多借鉴 Rails 的框架存在,难道对 Rails 本身长什么样不感兴趣吗?
    roys
        15
    roys  
    OP
       2014-11-10 16:27:10 +08:00
    @chloerei 恩 我也是这么想的。
    roys
        16
    roys  
    OP
       2014-11-10 16:29:31 +08:00
    @mahone3297 当然也看了些资料的。不过确实不了解symfony,这就去查查。
    TangMonk
        17
    TangMonk  
       2014-11-10 16:30:32 +08:00
    还是ruby酷炫点
    luoyou1014
        18
    luoyou1014  
       2014-11-10 16:54:25 +08:00
    @AWSAM
    @lichao
    非win下也相比于其他类型的框架,坑也比其他框架多的多,也可能是系统问题,不过我在centOS,Ubuntu下都折腾了很久,只能说,rails的开发团队太着重于功能集成以及版本更新,对测试的要求还是有些低。

    不过说不定在mac上稳定性会非常好。
    crazyxin1988
        19
    crazyxin1988  
       2014-11-10 16:55:01 +08:00
    为神马 不转python
    python大法好~~~~~~
    tini8
        20
    tini8  
       2014-11-10 16:59:56 +08:00   1
    rails太过自恋了,恨不得把HTML、CSS、Javascript、database。。。所有web相关的知识都囊括进去。所有的东西都按rails way进行。

    举个例子:image_tag,刚开始用的时候很爽,看着rails的文档吃着火锅唱着歌。后来一年多没碰rails再去维护的时候,被image_tag的各种参数弄SB了,还是用 <img src='' style=''> 快糙猛,各种语言通用
    lichao
        21
    lichao  
       2014-11-10 17:01:58 +08:00
    很多时候觉得坑多,是因为自己没掌握好,这个任何语言和框架都一样。

    至少从我自身经验来看,Rails 带给我的快乐远多于痛苦
    justplaymore
        22
    justplaymore  
       2014-11-10 17:20:26 +08:00
    @mahone3297 symfony确实很强,可惜门槛比较高,一直在学,之前非常熟悉Yii,然后看了下laravel,觉得区别有点大,匿名函数过多的一个缺点就是IDE难以定位申明,依赖注入的特性确实不错,可是能用好也需要一定的水平,不能为了用而用,自认这方面水平不足,好多东西要学。
    justplaymore
        23
    justplaymore  
       2014-11-10 17:21:35 +08:00
    @tini8 全栈式框架基本都类似这样的
    lygmqkl
        24
    lygmqkl  
       2014-11-10 17:46:31 +08:00
    @justplaymore 貌似一般的网站开发Yii足够了吧。。。为毛要折腾那么多,而不是多折腾点cool project呢?

    回楼主,就算不折腾php也应该转python or node, 为毛是Rails? 其实真正的框架和语言是随着工作迁移的。。。至少国内是这样。
    mahone3297
        25
    mahone3297  
       2014-11-10 17:58:36 +08:00
    @justplaymore yii没看过。。。我也有看一点laravel的文档。。。不过你说的匿名函数,我都是不在意,还比较喜欢。依赖注入的话,symfony里面也用了蛮多。
    我感觉,laravel有点codeigniter的味道,轻量级,容易入门,所以大家都关注。symfony就比较偏重了,所以关注的人少了。不知道是不是这样。。。
    msg7086
        26
    msg7086  
       2014-11-10 18:10:21 +08:00   1
    @lygmqkl hobby project 当然要选自己最舒服的语言了。工作是另一码事。要是工作是Java难道写个Blog也得Java写么……

    @kankana 语言的表达能力。PHP完全的C风格,而Python推崇任何事情都应该只有一种做法。
    Ruby这种语言本身就要灵活得多。一来很多符号可以省略,一来做一件事可以有很多种做法,而且都能做得很好并且不算很难理解。

    比如在Rails里,一下的句子是等效的:
    Post.where user_id: 264
    Post.where(user_id: 264)
    Post.where({user_id: 264})
    在PHP或者Python里,你不可能省略这些括号。甚至比如这样的句子,
    $users = User::where('votes', '>', 100)->take(10)->get();
    真的不会被::和->弄的头晕吗?
    lygmqkl
        27
    lygmqkl  
       2014-11-10 18:26:33 +08:00
    @msg7086 好吧我好像可以明白国内程序员为毛那么喜欢挑语言了。。。。果然是鲁迅笔下的人物啊。。。。
    kankana
        28
    kankana  
       2014-11-10 19:50:30 +08:00
    @msg7086 哈哈,也许因为我是个比较严肃的人, 所以还是比较喜欢php风格.

    被laravel吸引, 其实主要是因为国外介绍laravel时,用的代码示例,让我有种回到java的时代.

    我喜欢那种一层套一层的设计, testable的代码. 挺反感"业务逻辑应该放在C还是M".

    不过,听说这种Hexagonal Architecture也是rails传过来的?
    kankana
        29
    kankana  
       2014-11-10 20:00:06 +08:00
    @kankana 搞错了...
    bellchu
        30
    bellchu  
       2014-11-10 20:07:53 +08:00
    邓小平说的好,不管黑猫白猫,能捉老鼠的就是好猫
    roys
        31
    roys  
    OP
       2014-11-10 22:15:38 +08:00
    @bellchu 有一个工作的语言,然后害得有个兴趣语言。我是这么想得。
    yjsslab
        32
    yjsslab  
       2014-11-10 22:19:19 +08:00
    rails 也就 AcriveRecord 无可替代,如果你觉得你的其它工具可以比 AR 好,那就没有必要用 rails.
    当然,只有写ruby脚本的话就没有必要换过来了。
    roys
        33
    roys  
    OP
       2014-11-10 22:35:20 +08:00
    @yjsslab AR 在PHP框架里很普遍了把。像laravel、Yii、Yii2什么的,学ruby当然不是为了rails~
    watsy0007
        34
    watsy0007  
       2014-11-10 22:51:03 +08:00
    你公司业务需要?
    为啥想学习ruby?

    你可以综合对比下试试。
    yjsslab
        35
    yjsslab  
       2014-11-10 23:26:26 +08:00
    @roys 就是因为ruby这种语法才是 rails 的 AR简直无可替代。其它语言的不会有那么方便强大。
    yjsslab
        36
    yjsslab  
       2014-11-10 23:29:46 +08:00
    @roys laravel、Yii、Yii2 如果你觉得那些够好,那真不推荐转到ruby. 很多公司还从ruby转出去呢,除非你一直是那种原型/初创那种。。。
    msg7086
        37
    msg7086  
       2014-11-11 01:22:26 +08:00 via iPhone
    @yjsslab 同意。最近在玩grape框架,就是grape+active-record,轻量又能享受神一样的ar。
    luikore
        38
    luikore  
       2014-11-11 08:51:23 +08:00
    rails 默认提供了全套最佳方案 (除了 js 各浏览器框架教派), 做新框架轮子时, 不知道某些方面怎么做就参考 rails 行了 -- 然后你会发现没有 ruby 的话有些事情真的很难做到.
    justplaymore
        39
    justplaymore  
       2014-11-11 15:54:35 +08:00
    @mahone3297 symfony是先苦后甜,laravel比ci强的不是一点点,ci的设计和复用机制相比前面几个框架来说已经非常落后了,ci是上手快,但是要扩展功能的时候会发现自己要做的工作很多,而symfony和laravel的扩展非常多,框架本身是组件式的,可以随意替换和添加,这时候优势就体现出来了,还有个比较重要的就是symfony和laravel都遵循了composer的标准。
    justplaymore
        40
    justplaymore  
       2014-11-11 15:57:21 +08:00
    @msg7086 你说的是类似yii里的querybuilder,其实大多数情况下还是用criteria对象来做的,更加灵活。
    msg7086
        41
    msg7086  
       2014-11-11 16:15:25 +08:00
    @justplaymore 看了一下你说的querybuilder和criteria。
    直观感受就是PHP语言本身的表现力还是不行。
    很多Ruby里顺手就能做出来的结构,跑到PHP里我实在是想不出要怎么做才能做得一样优雅。
    mahone3297
        42
    mahone3297  
       2014-11-11 16:20:11 +08:00
    @justplaymore 但是关键就是,大家都说laravel好,完全没人理symfony,连出来骂symfony垃圾的人都没有。。。很好奇。。。
    justplaymore
        43
    justplaymore  
       2014-11-11 16:51:00 +08:00
    @mahone3297 从文档资料的语言来说,中文文档越多,上手速度也越快,文档语言门槛低,愿意去读的人也就多了,laravel和ci有中文文档和中文社区,而ci的分支kohana只有非常稀少的中文文档,就很少有人会去了解了,symfony的英文社区非常健全,但是中文文档的缺乏成了比较大的障碍,这只是从文档语言上去分析。symfony的中文资料比较少,就算有,要理解也是需要很多基础的,他也有短板,就是性能比较弱,当然这可以用其他办法解决。
    justplaymore
        44
    justplaymore  
       2014-11-11 16:53:20 +08:00
    @msg7086 从语言层面上讲ruby确实非常厉害,很多方便的特性,这点php真没法比,只能靠框架来模拟语言层所没有的东西,这点确实比较麻烦,不过很佩服那些写框架的人。
    mahone3297
        45
    mahone3297  
       2014-11-11 17:00:50 +08:00
    @justplaymore 恩,这话说的确实有点道理。
    问个问题,db中,要用外键吗?symfony的doctrine,用oneToOne,oneToMany这种,就自动加外键了。entity之间调来调去,当然爽了,但是性能有影响了。
    所以想问下,是否要用外键?如果不用`$blog->comments()`这种是不是使用不来了?
    justplaymore
        46
    justplaymore  
       2014-11-11 17:31:35 +08:00
    你说的这个调用模式和yii的relation比较类似,但是doctrine是orm,由entity生成表,这方面我不太了解,你可以查下doctrine的文档。
    yii里的relation可以手动定义两个表之间的关联字段(逻辑外键),而不用在数据库里创建对应的外键,最好的办法还是你自己试一下。

    entity关联调用是会引起性能问题,但这个在yii里调用relation粗分为2种方式Lazy Loading和Eager Loading,Eager Loading在查询结果前将2张表现做join,然后再进行查询,而Lazy Loading会导致一条记录查询一次sql,性能很低。

    doctrine应该也有类似的机制可以解决性能问题。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     950 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 22:36 PVG 06:36 LAX 14:36 JFK 17:36
    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