Rails 的世界各种开源的优秀解决方案非常多,项目开始的时候比较痛苦地就是要根据自己的原则和项目的特点来做出正确的选择。
原本打算在新的项目中开始使用 ES6,然后前端的开发框架选择容易上手的,轻量级的vue.js。由于 Vue.js 只支持 IE9 以及以上的浏览器,考虑到新项目是面向国内用户的产品,用户中还是有很大一部分的 IE8,以及以下的浏览器用户。所以,最后还是决定使用 Jquery+knockout.js这样的组合。
通过在论坛里面帖子前端框架选择的一个现实的问题评论了解到。jquery 也有支持双向绑定的 lib: jquerymy.js 还有就是在这种情况下,如果要做 SPA 的话,可以使用backbone.js,兼容性也是很好的。
不再使用 simple-form,主要是感觉它提供的一些功能对现在的项目帮助不大,还有就是 simple form 的 wrapper 定制比较麻烦,也会把页面代码弄得很臃肿。在这种前提下还是使用 rails 自带的 form_for 就可以了。原则就是如果要使用的 gem 帮助不是很大,还是最优先用 Ruby 和 Rails 自带的一些方案。
尝试使用client side validations这个 gem,这样前后端尽可能共享验证的规则,减少自己写相关 js 代码。少些代码,少制造 bug。
网上已经有很多资料比较 Sidekiq,Resque 和 DelayedJob。我自己也都有简单用过。 所以决定在项目开始时(流量不大)使用 DelayedJob,简单易用,不要单独安装和配置 Redis,同时使用 ActiveJob 提供的 API,这样以后迁移到 Sidekiq 或者 Resque 也就不会很麻烦。
本周也开始看一下搜索功能的实现,以前我做过几年的基于 Lucene 的搜索开发,搜索服务就准备用 elasticsearch,发现相关的 Rails 的整合方案也很多。有官方的 elasticsearch-rails,还有一个比较流行的是searchkick,看了一下感觉功能很强大,所以下周准备拿 searchkick 试试。
这个选择主要是因为 Devise 功能强大,相关文档也很多,之前在项目中也用过。