从大二开始就接触了RubyonRails,对这套web框架无比喜爱,对Ruby的精简、语义化无比着迷,虽然现在工作是纯前端了,但是还是对服务端只是感兴趣,Rails我从2.3.5版本开始用,到后来的3.2.x,最后因为并发量过高撑不住了,只好转身投入Go的怀抱,后来也没有再接触它了。前段时间忘记在什么公众号上看到一篇讲Rails5.0正式发布的消息,一下子勾起了我的记忆,是哦,我当年还是个服务端的同学,那时候对前端知之甚少,连jQuery都只会简单运用,却因为Rails爱上了web开发。Rails对于初学者来说很好入门,基于MVC架构,它简单到几乎不需要你写多少代码,就能搭建起一个小型的Blog网站。它就像开发商交付给你的精装房,厨房卫生间,水电一一帮你接好,你只需要为你的家置办一些家具就可以入住了,简直不能太棒!
话说回来,因为看到Rails5.0发布的消息,我重新打开官网(http://guides.rubyonrails.org/),看看经历了两个大版本,它会给我们带来什么惊喜!打开http://weblog.rubyonrails.org/2017/2/23/Rails-5-1-beta1/,里面提到有几点重要的改进:一是对Javascript支持力度更大了,支持使用yarn管理npm包,支持webpack构建,不再使用jQuery;二是系统测试,不再只关注单元测试,而是引入Capybara(其实我也不知道这是什么鬼),可以更好的进行系统的测试;三是密钥管理,你不再需要自行设计各种密码加密,不仅麻烦还不安全,它受启发于Ara T. Howard的sekrets gem,在5.1中加入了更可靠的密钥管理机制;还有好多更新点,感兴趣的自行了解,我就不再废话了。
说说为什么当初抛弃Rails吧,主要是因为近几年越来越讲究前后端分离,前端的地位越来越重要,各种交互行为越来越多,如果再把两者糅合在一起,耦合太多,不利于团队协作。既然选择了前后端分离,那么Rails这套框架就显得有点太重了,因为我们只是把它用来做个api服务器,完全不需要各种actionView,viewHelper,而这一块也是导致一个rails进程占据很大内存的原因。从当时的处境看,将Rails换成更快的Go貌似势在必行了。
这次Rails5.0的更新,还提供了一个api-only的模式,你可以创建一个只用于提供api的服务器,意味着它不再是个大胖子了,听起来是个很好的消息,至少对于我来说,我很需要这样的模式。趁着今晚比较有空,我尝试用Rails5做一个简单的包含用户认证的小app。Rails还有一个好处就是在GitHub上有大量的成熟解决方案,比如用户认证这块,直接使用devise_token_auth,它直接帮你把用户注册、登录、邮件确认,记住密码等一系列事情做好了,甚至数据库都给你设计好,因此我只花了不到半个小时就把注册接通了。前端用了目前比较熟悉的vue,一路十分顺畅,心情非常好,故作此文留个小纪念!
PS: 好多年没写东西,感觉写得很挫,但我相信,只要我努力地坚持写下去,以后还是会跟现在一样水的,习惯就好!😌
2017年03月09日01:04:52