Rails 都说 Rails 过时了,那么怎样的 Rails 才不会过时?

rocLv · 2015年11月06日 · 最后由 fighterleslie 回复于 2016年03月20日 · 3616 次阅读

经常看到大家讨论 Rails 是不是过时了?是不是不符合现在的网络发展了?

Rails 在发展的起初首先提出 MVC 框架的概念,被后来好多框架吸收应用,再后来 Rails 总是在第一时间把 coffee-script, sass,yaml 等吸收进框架。相信很少有框架会这么激进的吸收新的技术。除了 Rails 一直以来倍受歧视的性能问题,还有随着近几年网络技术的井喷式发展,Rails 已经很难把各式各样的新技术同时吸收进框架。似乎 Rails 已经走上它的末路,似乎 Rails 已经结束了自己的使命,这也让大家的 Rails 5 的新特性没有太多期待。

我想大家一起讨论一下各自期待的下一代框架,我先抛砖引玉,说说我的一些想法。

Rails 最初吸引我的还是生成代码的技术,未来吸引我的还会是代码生成。

我最早使用 php 来开发网站,在重复开发了几个网站之后,我就开始找,是不是有这样的技术,可以直接生成一些经常会重复的代码。比如表的查询,php 里习惯为每个表写特定的查询函数,来实现对数据库的查询。首先我找了一些 php 框架,确实省了不少事,但是还是会写不少重复的代码。 Rails 在这方面,很少有工具能匹敌吧?(或者我孤陋寡闻了,大家可以推荐一些)

未来的框架会由轻前端、重后端转向重前端、重后端

随着移动客户端(手机,pad 等)的增多,网站逐步向单页面应用方向发展,如此才有了很多 javascript 框架,来解决以前轻前端的的问题。 所以,未来的 Rails 可能需要向 MV{MVC}C,这里的 V 变为前端的的结合 javascript MVC 框架,发展。Fat Controller 可能变成 Thin Controller,而 View 合并了一些 Controller 的功能,走向重 View,其中承担了原来 Controller 的一部分功能。

MVC 框架向轻耦合方向发展,Router 更强大

现在一个大型的 Rails 应用常采用的方案是在多台服务器上运行多个 Rails App 的实例。这与自然界的成长规律相违背,最大的动物的重量也比不过一颗普通的树就是这个道理。一个单 Rails App 的代码库不会太大,因为太大了就无法维护了,光运行测试可能就需要十几个小时。而组件之间的轻耦合,有利于系统扩展。 所以未来是不是 router 的设计更加重要。将来的 Router 更像是管理员,将各部分功能组件连接起来。 这样的好处是容易扩展。

毫不怀疑,Ruby 性能依然会有大幅提升

最近 PHPer 收到一个好消息就是 PHP 的性能大幅提升。看看 PHP 最早的时候甚至都不是面向对象。Ruby 2.2 以后较之前性能有了大幅提升,对于同样是由 C 写成的 Ruby,我们有理由相信 Ruby 性能还有很大的提升空间。

最后,Ruby 程序员都很懒,大家适应不了其他语言:)

虽然早已用上了高大上的 tmux + vim,但是依然觉得在编写代码效率方面,肯定还可以更近一步。在 youtube 上面随意搜了下,视频里面必用 ruby 或 Rails。。。 难道 Rubyist 都很懒吗?还是都很追求效率?

以上都算是我的一些臆想吧,希望抛砖引玉,能引出大家更有价值的讨论。

我还说 php 是宇宙最好的语言呢

#1 楼 @oth 易上手啊,又没有太多库

#2 楼 @roclv 内置上千 API,PHP 实现了用所有可能的单词组合定义方法名。

活到老学到老,拥抱新技术自己就不会过时。

幻想学好 Rails 后能够一劳永逸,最容易过时。

😄

看好代码生成,Ruby on Rails 写出来的代码运行时动态性带来的性能损耗过高,如果能生成静态代码定是极好的

ruby 的性能问题一直以来被诟病,可这都是"成功"之后去考虑的问题,项目还没跑起来 何谈"性能"?

Rails 在发展的起初首先提出 MVC 框架的概念

MVC 这个架构模式首次提出来是在 1979 年,有兴趣可以 google 下 SmallTalk-80 MVC,Rails 的 MVC 属于一种叫做 Model-II 的 MVC 变体

Fat Controller 可能变成 Thin Controller,而 View 合并了一些 Controller 的功能,走向重 View,其中承担了原来 Controller 的一部分功能。

Rails 的 convention 一直都是 thin controller,fat controller 本来就是不对的。

前后端分离的目的是为了解耦,让前后端成为正交的,两者可以分别迭代,互不影响。"View 承担 controller 的功能"。。。这是从何说起啊?

Ruby 程序员都很懒,大家适应不了其他语言

我怎么觉得 Ruby 程序员都很 open-minded,视野开阔,兴趣广泛。。。

总之,原 po 槽点略多啊。。。

easonlovewan Ruby 和 Ruby on Rails 在 2017年 还有前途吗? 提及了此话题。 01月18日 10:12
需要 登录 后方可回复, 如果你还没有账号请 注册新账号