经常看到大家讨论 Rails 是不是过时了?是不是不符合现在的网络发展了?
Rails 在发展的起初首先提出 MVC 框架的概念,被后来好多框架吸收应用,再后来 Rails 总是在第一时间把 coffee-script, sass,yaml 等吸收进框架。相信很少有框架会这么激进的吸收新的技术。除了 Rails 一直以来倍受歧视的性能问题,还有随着近几年网络技术的井喷式发展,Rails 已经很难把各式各样的新技术同时吸收进框架。似乎 Rails 已经走上它的末路,似乎 Rails 已经结束了自己的使命,这也让大家的 Rails 5 的新特性没有太多期待。
我想大家一起讨论一下各自期待的下一代框架,我先抛砖引玉,说说我的一些想法。
我最早使用 php 来开发网站,在重复开发了几个网站之后,我就开始找,是不是有这样的技术,可以直接生成一些经常会重复的代码。比如表的查询,php 里习惯为每个表写特定的查询函数,来实现对数据库的查询。首先我找了一些 php 框架,确实省了不少事,但是还是会写不少重复的代码。 Rails 在这方面,很少有工具能匹敌吧?(或者我孤陋寡闻了,大家可以推荐一些)
随着移动客户端(手机,pad 等)的增多,网站逐步向单页面应用方向发展,如此才有了很多 javascript 框架,来解决以前轻前端的的问题。 所以,未来的 Rails 可能需要向 MV{MVC}C,这里的 V 变为前端的的结合 javascript MVC 框架,发展。Fat Controller 可能变成 Thin Controller,而 View 合并了一些 Controller 的功能,走向重 View,其中承担了原来 Controller 的一部分功能。
现在一个大型的 Rails 应用常采用的方案是在多台服务器上运行多个 Rails App 的实例。这与自然界的成长规律相违背,最大的动物的重量也比不过一颗普通的树就是这个道理。一个单 Rails App 的代码库不会太大,因为太大了就无法维护了,光运行测试可能就需要十几个小时。而组件之间的轻耦合,有利于系统扩展。 所以未来是不是 router 的设计更加重要。将来的 Router 更像是管理员,将各部分功能组件连接起来。 这样的好处是容易扩展。
最近 PHPer 收到一个好消息就是 PHP 的性能大幅提升。看看 PHP 最早的时候甚至都不是面向对象。Ruby 2.2 以后较之前性能有了大幅提升,对于同样是由 C 写成的 Ruby,我们有理由相信 Ruby 性能还有很大的提升空间。
虽然早已用上了高大上的 tmux + vim,但是依然觉得在编写代码效率方面,肯定还可以更近一步。在 youtube 上面随意搜了下,视频里面必用 ruby 或 Rails。。。 难道 Rubyist 都很懒吗?还是都很追求效率?
以上都算是我的一些臆想吧,希望抛砖引玉,能引出大家更有价值的讨论。