|      1simapple      2014-11-10 11:47:48 +08:00 你可以再试试silex | 
|      2kankana      2014-11-10 11:50:03 +08:00 能说说rails有啥php不擅长的吗? | 
|      3hging      2014-11-10 11:57:07 +08:00 ruby大法好. | 
|  |      4roys OP | 
|  |      5WildCat      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可读性更好,尤其是闭包。 | 
|  |      6WildCat      2014-11-10 12:09:28 +08:00 另外个人不太喜欢 laravel 5的目录结构,感觉还不如不变。 | 
|  |      7jyootai      2014-11-10 12:36:05 +08:00 Ruby大法好,最接近人类的语言 | 
|  |      8luoyou1014      2014-11-10 12:38:29 +08:00 开始入坑吧…… rails的设计很好,可惜实现很有问题,稳定性有待加强,尤其在win下的稳定性几乎悲剧啊。 希望 rails 的开发团队再好好加油吧。 | 
|  |      9AWSAM      2014-11-10 13:03:44 +08:00 @luoyou1014 Rails本来就不是为win设计的 | 
|  |      10lichao      2014-11-10 13:17:46 +08:00 @luoyou1014 不能拿 ruby 在 win 下的稳定性说事,因为 99.99% 的 ruby 应用都是部署在非 win 环境下的 | 
|  |      11mahone3297      2014-11-10 13:42:21 +08:00 看大家都推崇laravel,比如symfony如何?我觉得好像蛮少人了解symfony,然后一直说laravel好。然后人云亦云。。。 | 
|  |      12redguy6      2014-11-10 14:21:48 +08:00  1 You should learn python. | 
|  |      13tang8888      2014-11-10 14:30:03 +08:00 nodejs - express 最好. | 
|  |      14chloerei      2014-11-10 14:33:59 +08:00 有那么多借鉴 Rails 的框架存在,难道对 Rails 本身长什么样不感兴趣吗? | 
|  |      16roys OP @mahone3297 当然也看了些资料的。不过确实不了解symfony,这就去查查。 | 
|  |      17TangMonk      2014-11-10 16:30:32 +08:00 还是ruby酷炫点 | 
|  |      18luoyou1014      2014-11-10 16:54:25 +08:00 | 
|  |      19crazyxin1988      2014-11-10 16:55:01 +08:00 为神马 不转python   python大法好~~~~~~ | 
|      20tini8      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=''> 快糙猛,各种语言通用 | 
|  |      21lichao      2014-11-10 17:01:58 +08:00 很多时候觉得坑多,是因为自己没掌握好,这个任何语言和框架都一样。 至少从我自身经验来看,Rails 带给我的快乐远多于痛苦 | 
|  |      22justplaymore      2014-11-10 17:20:26 +08:00 @mahone3297 symfony确实很强,可惜门槛比较高,一直在学,之前非常熟悉Yii,然后看了下laravel,觉得区别有点大,匿名函数过多的一个缺点就是IDE难以定位申明,依赖注入的特性确实不错,可是能用好也需要一定的水平,不能为了用而用,自认这方面水平不足,好多东西要学。 | 
|  |      23justplaymore      2014-11-10 17:21:35 +08:00 @tini8 全栈式框架基本都类似这样的 | 
|  |      24lygmqkl      2014-11-10 17:46:31 +08:00 @justplaymore 貌似一般的网站开发Yii足够了吧。。。为毛要折腾那么多,而不是多折腾点cool project呢? 回楼主,就算不折腾php也应该转python or node, 为毛是Rails? 其实真正的框架和语言是随着工作迁移的。。。至少国内是这样。 | 
|  |      25mahone3297      2014-11-10 17:58:36 +08:00 @justplaymore yii没看过。。。我也有看一点laravel的文档。。。不过你说的匿名函数,我都是不在意,还比较喜欢。依赖注入的话,symfony里面也用了蛮多。 我感觉,laravel有点codeigniter的味道,轻量级,容易入门,所以大家都关注。symfony就比较偏重了,所以关注的人少了。不知道是不是这样。。。 | 
|  |      26msg7086      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(); 真的不会被::和->弄的头晕吗? | 
|      28kankana      2014-11-10 19:50:30 +08:00 @msg7086 哈哈,也许因为我是个比较严肃的人, 所以还是比较喜欢php风格.  被laravel吸引, 其实主要是因为国外介绍laravel时,用的代码示例,让我有种回到java的时代. 我喜欢那种一层套一层的设计, testable的代码. 挺反感"业务逻辑应该放在C还是M". 不过,听说这种Hexagonal Architecture也是rails传过来的? | 
|  |      30bellchu      2014-11-10 20:07:53 +08:00 邓小平说的好,不管黑猫白猫,能捉老鼠的就是好猫 | 
|  |      32yjsslab      2014-11-10 22:19:19 +08:00 rails 也就 AcriveRecord 无可替代,如果你觉得你的其它工具可以比 AR 好,那就没有必要用 rails. 当然,只有写ruby脚本的话就没有必要换过来了。 | 
|  |      33roys OP @yjsslab AR 在PHP框架里很普遍了把。像laravel、Yii、Yii2什么的,学ruby当然不是为了rails~ | 
|      34watsy0007      2014-11-10 22:51:03 +08:00 你公司业务需要? 为啥想学习ruby? 你可以综合对比下试试。 | 
|  |      36yjsslab      2014-11-10 23:29:46 +08:00 @roys laravel、Yii、Yii2 如果你觉得那些够好,那真不推荐转到ruby. 很多公司还从ruby转出去呢,除非你一直是那种原型/初创那种。。。 | 
|  |      37msg7086      2014-11-11 01:22:26 +08:00 via iPhone @yjsslab 同意。最近在玩grape框架,就是grape+active-record,轻量又能享受神一样的ar。 | 
|  |      38luikore      2014-11-11 08:51:23 +08:00 rails 默认提供了全套最佳方案 (除了 js 各浏览器框架教派), 做新框架轮子时, 不知道某些方面怎么做就参考 rails 行了 -- 然后你会发现没有 ruby 的话有些事情真的很难做到. | 
|  |      39justplaymore      2014-11-11 15:54:35 +08:00 @mahone3297 symfony是先苦后甜,laravel比ci强的不是一点点,ci的设计和复用机制相比前面几个框架来说已经非常落后了,ci是上手快,但是要扩展功能的时候会发现自己要做的工作很多,而symfony和laravel的扩展非常多,框架本身是组件式的,可以随意替换和添加,这时候优势就体现出来了,还有个比较重要的就是symfony和laravel都遵循了composer的标准。 | 
|  |      40justplaymore      2014-11-11 15:57:21 +08:00 @msg7086 你说的是类似yii里的querybuilder,其实大多数情况下还是用criteria对象来做的,更加灵活。 | 
|  |      41msg7086      2014-11-11 16:15:25 +08:00 @justplaymore 看了一下你说的querybuilder和criteria。 直观感受就是PHP语言本身的表现力还是不行。 很多Ruby里顺手就能做出来的结构,跑到PHP里我实在是想不出要怎么做才能做得一样优雅。 | 
|  |      42mahone3297      2014-11-11 16:20:11 +08:00 @justplaymore 但是关键就是,大家都说laravel好,完全没人理symfony,连出来骂symfony垃圾的人都没有。。。很好奇。。。 | 
|  |      43justplaymore      2014-11-11 16:51:00 +08:00 @mahone3297 从文档资料的语言来说,中文文档越多,上手速度也越快,文档语言门槛低,愿意去读的人也就多了,laravel和ci有中文文档和中文社区,而ci的分支kohana只有非常稀少的中文文档,就很少有人会去了解了,symfony的英文社区非常健全,但是中文文档的缺乏成了比较大的障碍,这只是从文档语言上去分析。symfony的中文资料比较少,就算有,要理解也是需要很多基础的,他也有短板,就是性能比较弱,当然这可以用其他办法解决。 | 
|  |      44justplaymore      2014-11-11 16:53:20 +08:00 @msg7086 从语言层面上讲ruby确实非常厉害,很多方便的特性,这点php真没法比,只能靠框架来模拟语言层所没有的东西,这点确实比较麻烦,不过很佩服那些写框架的人。 | 
|  |      45mahone3297      2014-11-11 17:00:50 +08:00 @justplaymore 恩,这话说的确实有点道理。 问个问题,db中,要用外键吗?symfony的doctrine,用oneToOne,oneToMany这种,就自动加外键了。entity之间调来调去,当然爽了,但是性能有影响了。 所以想问下,是否要用外键?如果不用`$blog->comments()`这种是不是使用不来了? | 
|  |      46justplaymore      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应该也有类似的机制可以解决性能问题。 |