• 我补充一个,macOS 其实默认就支持 Emacs 键位映射,所以在绝大部分需要输入文字的地方(浏览器,终端,IDE,编辑器,etc)都可以使用 Emacs 的快捷键,我比较常用的有:

    ctrl-a: 到行首
    ctrl-e: 到行尾
    ctrl-f: 向前一个字符(右箭头)
    ctrl-b: 向后一个字符 (左箭头)
    ctrl-d: 删除当前光标字符
    ctrl-k: 删除当前光标至行尾
    ctrl-n: 向下移动一行 (可以代替下箭头)
    ctrl-p: 向上移动一行 (可以代替上箭头)
    

    觉得 Ctrl 不好按? 到键盘设置里把 Cap Lock 改成 Ctrl 键就好啦,反正这个键极少用,用的话也可以用 Shift 代替。

  • #47楼 @nightire 其实我引用 Redux 的例子并不是想说它好,而是想支持之前的一句话,用的人多其实才是好事,集思广益才能加速促进。我对 Redux 也并不感冒,就不多加评判了。

  • 从去年开始边学边用 Ember.js 到现在一年多,业余也做一些 Ember 的技术咨询,说说我对这个框架整体的看法吧,先来优点:

    • 开箱即用 这一点是我最直观的感受,不仅可以用,而且超好用,比如无需任何配置直接写 ES6,整个人都好了很多。ember-cli除了在安装和升级项目的时候有点麻烦外,其他时候完全可以媲美 rails 的命令行工具,Ember 这一点启发了很多其他前端框架。

    • 与现有技术融合顺畅 尤其是可以直接大量借鉴现有的丰富的 jQuery 库,不知道可以省掉多少时间,少造多少没有明显收益的轮子。

    • Ember Addon 当然还是有人愿意造轮子,而且还愿意分享出来,一些复杂的场景现在都有了成熟的解决方案,比如ember-simple-auth, ember-cp-validations,etc。以前自己写的一个select2.js的 wrapper各种别扭各种不兼容,然后我发现了ember-power-select,原生实现,好用到哭。

    • Ember-data 不只是有很多好用的 API,而是用多了之后你会不由自主地围绕 Data 来思考,因为这是 The single source of truth,而且 Ember data 也是一个极好的存储状态的地方,可以省掉不同视图间大量的状态传递和计算。

    • 大量杀手级特性 比如 Computed Property,熟读其 bool, equal, oneway等 APIs 代码优雅指数可获极大加成。再比如 queryParams,对URL即状态这一理念的完美实践,记得这个理念是 Yahuda Katz 在哪个演讲里提出的,个人深以为然。

    接下来说说感觉不是那么良好的:

    • 学习曲线 真的不是一般的陡峭,基本上新手安装完,做完 ToDoList 了之后差不多新鲜感就过渡到就迷茫感了,老老实实去啃文档去吧。记得我开始学的时候,除了把最佳入门读物 Rock and roll with Ember.js过了一遍之外,还和一个以色列的哥们做了 5,6 次的远程结对编程,才慢慢地感觉有点头绪,真正写起来有行云流水的感觉就要到好几个月之后了。印象最深的是把后端的 snake_style 转换成 js 通用的 camelCaseStyle 就用了我3天,而那个 hook 就隐藏在文档的某个小角落里……

    • 使用场景局限 就是小项目不是不能用,而是用起来显现不出 Ember 的优势,用传统的技术比如 jQuery 也能实现的很好。这一点 @nightire 总结的很好,我就不多赘述,只是比较最近用 Ember 帮客户做了一个简单的 CRUD 的 app,感觉确实有点杀鸡焉用牛刀了。不过如果你的后端是 API-only 的那就另说了,

    • 文档(或者说缺少文档)平胸而论,官方现在的文档质量已经好很多了,但这也是很少甚至是唯一可以依赖的地方,其他方面比如书啊,教程啊要么很少要么就很过时,尤其是 Stackoverflow,上面关于 Ember 的问答大部分都「年代久远」,根本都不能看。 比如一个比较新的Contextual component特性,基本除了 RFC 和 Release Notes, 还没有看到有 blog 提到关于它的最佳实践,除非去扒开源 add-on 的源码。当然 Ember 有自己的 slack group,YouTube 上也有很多演讲,但太过分散而且效率低。所以很多时候想要真正自信地采用某个方案,还是得回去看官方文档,然后自己领悟,只有真正懂了才能形成自己的最佳实践,不然就是给自己或别人挖坑,这也算是某种程度的倒逼吧。

    • 开发进度 这一点 @nightire 也解释了,主要是这个新的 Glimmer 2的开发耽误了许多,社区追求更好的实现当然无可厚非,但客观事实就是 Ember 丧失了迅速发展的机会。想想去年这个时候(2015-11月),Angular 1已经日薄西山,2 还在无限 beta,React 的生态比现在还混乱,Vue.js 更是小众中的小众,那时候要做技术选型,作为唯一一个稳定先进的框架,有点常识的人都会认真考虑一下 Ember.js。可现在如果再选,你有不是一个而是四个成熟的选择,Ember 对那些技术决策人的吸引力不得不说小了很多,不是 hard core fan 或前端大拿,选 Ember 还是要很大决心的,这也导致了 Ember.js 至今仍然是不愠不火地发展着。虽然说做 early adopter 的感觉良好,但用的人多其实才是好事,集思广益才能加速促进。想 Redux 玩非主流的 FP,连 OO 都没搞明白的新手还不是趋之若鹜?这一点,Ember 社区真的还是要好好学习一个。

    缺点说了这么多,搞得我的口气好像在批评一样,但其实不然,我个人对 Ember 的整体感觉还是瑕不掩瑜,Ember的理念还是很先进的,掌握 Ember 之后面对其他框架的确有种高屋建瓴的感觉,很多看似新鲜的东西其实深究起来在 Ember 里早就实现了。但具体到个人需求,每个人都不一样,Ember 也不是银弹能照顾到所有,所以个人还是要按需选择。我们的目标是:不追 HYPE!

  • #31楼 @nightire

    我对 Ember 的诸多不满意之处是促使我深钻 React 的初始原因

    可以说说当初你对 Ember.js 有哪些不满意的地方吗?我觉得我现在也到这一阶段了,对 Ember.js 很熟稔,但真有点审美疲劳,有学习 Vue.js 的打算,或许对比之下能重新发现 Ember 的强大。

  • 终于更新了!

  • 全棧營感想 at 2016年9月13日

    #23楼 @lgn21st 我觉得加不加精代表的是管理员和主流的态度,也取决于帖子本身的内容。试想一个初来乍到的朋友,在 ruby-china 看到这篇帖子,说这个训练营是多么多么好,而且还是官方加精推荐阅读的,「你这样帮他说一遍,等于你也有责任吧?」作为一个中立的论坛,这样处理是否有些欠妥呢。而且如果以后也有类似这样的帖子,是不是也应该一视同仁加精呢?而且之前也有很多推广痕迹明显的帖子也都被低调处理了,这样的分别对待感觉有失公平。个人一点看法,还请斟酌。

  • 全棧營感想 at 2016年9月13日

    完全不明白为什么这种文章也会被加精?……

    看到竟然要贷款去上培训课就替这位学员感到不值,而且报了名还不一定能保证录取……贵营果然深得人性精髓,还没开课高大上的形象就已经呼之欲出了。而且通篇没看到具体学到了什么东西,满眼都是被打足了鸡血后的人生感悟,由此看来,这五万块其实买的不是课程,而是人生鸡汤,花一大笔钱感受一下将来成资深全栈后的优雅洋气范儿,但要说这两个月学到的技术就值五万块,我作为一个一分钱没花照样前后端通吃的过来人告诉你,你上当了!

    卖鸡汤就卖鸡汤,但不能挂着卖技术的幌子,这有欺诈的嫌疑。

  • 建议去掉登录验证码 at 2016年7月20日

    支持!

  • #8楼 @kgen #7楼 @jasl 这种功能一开始肯定会有新鲜感,并且如果是仅对自己可见的话也许还有些帮助,但我个人来说是绝对不希望让别人知道在我这个论坛的活动记录的。无关这个论坛的好坏,仅仅只是出于个人隐私。如果知道自己的一举一动都在被别人观察,哪怕仅仅是小范围内,我也会觉得受到侵犯的,这就是我的个人看法。

  • 这个真的没有隐私的问题吗?

自学成才