UPDATE(2014.12.24): 今天看了一篇文章 http://www.justinweiss.com/blog/2014/12/23/how-to-choose-from-conflicting-rails-advice/ 大概意思是说,如果你觉得一个技术需要你去考察一段时间优劣并且还难以做选择的话,那你不如先选择一个,总比什么都不选择好。技术总是在变,过一段时间你的想法可能就会变了,而且你学到的东西也是很有用的,就算再转换另外一项类似的技术也没那么难。送给像我一样有选择强迫症的人。
翻译这篇文章,一是想知道 rails 中用什么 framework 比较好,二是作为自己学习的一个输出。建议大家看原文: http://andrzejonsoftware.blogspot.com/2013/12/how-can-rails-react-to-rise-of.html
大家在 rails 中用什么 front-end framework,show 一下吧~
============
懒人看我的翻译吧:
Rails 在处理后端部分毋庸置疑,做的是非常好的。基于 conventions,所有的 app 都有很类似的结构,每个人都知道如何玩的转。
放眼看看 Rails app 的前端部分,你就看不到啥 conventions 了,没有什么相同的结构让每个人都知道怎么玩。
对于一个创业团队来说,使用 Rails 是非常好的方式,因为许多 Rails 开发团队知道怎么用 Rails 的方法来完成项目,也更容易扩展团队。而现在情况变了。后端部分依然是我们熟悉的部分,而 JavaScript 呢?每个 Rails app 中都不同,JavaScript 正常他们占有代码的 50%.
有些开发者使用 jQuery 的 plugin。
有些开发者跟随 DHH 的建议使用 SJR(Server JavaScript Responses)。
最新的趋势,是对 JS framework 的使用,比如 Ember.js 或者 Angular.js,这种方式似乎也更符合 Rails 的哲学 (conventions, magic, implicit features)。
另外有些开发者(包括本文作者)不想使用任何的 framework,而是使用自己定义的架构比如 http://hexagonaljs.com/
不使用任何 framework DHH 推荐使用 SJR - Server JavaScript Responses - see http://37signals.com/svn/posts/3697-server-generated-javascript-responses 从我的观察来看,社区领袖没有反对使用当前流行的 JS framework,只是这个问题不是当前他们关心的焦点。 这种方式可能会让社区有些分化(倒不一定是坏事)。我遇到了一些人,他们比较担心 Rails 的未来,他们不知道是不是应该投入自己的时间去学习 Rails。对于这些人,可能长期来看,他们更加倾向于多学习一些 JS。现在招聘需求中要求使用 Angular 和 Ember 的工作也越来越多了。 这种方式,我们看到 rails-api(http://blog.steveklabnik.com/posts/2012-11-22-introducing-the-rails-api-project )流行了起来。
rails 推荐使用某种 JS framework 可以是 Angular 或者 Ember,Angular 的发展势头很强劲(http://www.funnyant.com/choosing-javascript-mvc-framework/ ),Ember 是由 Rails 社区中的名人 Yehuda 来主导开发的,虽然没有 Angular 使用的人多,但 Ember 在 Rails 社区中更受欢迎。 这种场景在 Rails 的发展史上似曾相识,当年 Yehuda 创造了 Merb,之后 Merb 合并到了 Rails(http://yehudakatz.com/2008/12/23/rails-and-merb-merge/ )。同样的事会再次发生在 Ember 身上么?很有可能。 Angular 会变成默认的 JS framework 么?Rails 会推荐 Angular 么?使用 Angular 配合 Rails 开发没什么难的,只是 Angular 还不是 Rails 默认的选择。DHH 之前对 Rails 做了一些大胆的改变,例如将 CoffeeScript 作为默认的选择(谢谢!)。Angular 会么?
Rails 鼓励使用 JS framework,只是对 JS framework 保持不可知的论调 这种情况其实在社区中已经发生了,很多人使用了一些 JS framework,效果还不错。
以上 3 种 DHH 会继续推荐使用 SJR,Rails 核心团队也会将 Ember 作为默认的选择(可以很容易禁用),而社区呢,每个人可以基于自己的情况选择相应的 JS framework。
未来会怎样我也不知道。Rails 已经做的很好了,它可以不用有任何的回应。需要我们注意的是,这不只是关乎纯粹的合理的技术的选择,Rails 在市场方面一直做的很出色。我们会看到很多改变的,比如引入它自己的 JS framework。
我目前使用 rails-api(http://blog.steveklabnik.com/posts/2012-11-22-introducing-the-rails-api-project )的方式来是用 Rails 构建 app。Rails 在 API 方面做的很好,所以我可以选择任何的 JS framework。
如果我的目标是让 Rails 对于新手来说更加流行,那我会建议选择 Angular 作为 Rails 的默认 JS framework。这样会有更多的人热爱 Rails 这个社区。我目前还不是太喜欢 Angular,但是选择 Angular 会对新手更加适合,因为这会省去了新手选择的烦恼。
同时,其它的后端社区也在持续进化。你知道 PHP 和 Symphony2 么?这个 framework 的架构比 Rails 还要超前。另外,你知道 Scala 目前有多流行么?
我们需要担心 Rails 的未来么?需要保持后端的独立让后开始学习其它的后端框架么?我们要使用 mixroservices(http://www.youtube.com/watch?v=2rKEveL55TY )的方式让 app 同时与几种不同的后端技术交互么?(完)