最近公司在讨论做一个 ERP 运维问答的论坛系统,看了很多开源系统,觉得discourse
功能比较完善,灵活、可配置性非常好,部署方便,瀑布流的主题布局模式也很符合未来论坛的趋势,于是在ucloud
上租用了云主机,成功安装了discourse
的论坛系统,期间遇到一些小困难,在版主和很多热心朋友的的指点下都克服了。
论坛地址: 微服务
看了discourse
的源码,对ember.js
肃然起敬,顿时觉得以前用的html+css+jquery
应该是上个世纪的了,不过ember.js
入门有点难,在ember.js101
基础上加了些自己的语言,弄个【入门手册】 ,估计不少地方,初学没弄明白,请高手指教下,这里先谢了!
难在哪里?javascript framework 用来写前端历史也不短了吧?我倒是觉得 ember 比较小众,比起 AngularJS 和 React。但是我不明白为什么这么多公司投入这么多精力折腾前端的框架,几乎每年都有新框架,老了,实在追不上潮流。
#3 楼 @akirapanda 你恰好说反了。
ng 不知道 npm/bower/module/di 的确可以写一个简单的 demo,但是你要做正经的项目就必须得精通这些。Why?因为 ng 没有“约定”,你没有架构师的斤两(或者说你的团队里没有这样的人)就很难以 ng 做一个可靠的大规模项目,里面所有的坑都需要你(们)自己摸索自己填(当然现在也有不少教程和经验分享了,可是也以英语为主,英语要是过关早就自己摸索过去了)
ember 就不一样了,它是一个非常重视“约定”的体系,你不知道 npm/bower/module/di 一样可以写一个简单的 demo,而且 ng 你至少还得打个最简单的架子吧?可你看看 https://ember-twiddle.com,连架子都不需要你搭。
再说了。像 ember 或 ng 这样的框架,那种只需要一个 html 就可以写的 demo 有什么鸟用?谁会为了这样一个 demo 专门去学一个框架?像 ng 那种自欺欺人的入门教程根本就是在小看正经开发者的智商。
不说 demo,更重要的是做正经的项目 ember 也可以不需要你精通 npm/bower 等等(话说知道这些很难吗?我们是程序员诶),为什么?因为 ember 有全能大管家 Ember CLI,就连 ng 都知道自己的“松散”是个致命伤,所以现在有了 angular-cli 项目,这个项目说明第一句话就是:
Prototype of a CLI for Angular 2 applications based on the ember-cli project.
当初如果有这东西,犯得着一群开发者造一堆基于 yeoman 的 seed projects 吗?在这层面 ng 像媲美,不,追少 ember 还差的很远。这就是所谓的远见了,当初 Ember CLI 刚出来的时候,短视的人也会骂它不好用不够强,可是他们看不到它的好处,现在它逐渐成长了,知道厉害了吧?
用 ember 的好处就是团队也不需要一名顶梁柱式的架构师,因为人家已经把架构给你安排妥当了,唯一的难点就是因为这些东西都帮你安排妥当了,所以你得先学会这一套东西!这才是为什么大家认为 ember 比 ng 难入门的原因,归根结底是因为大部分前端工程师还处于手工作坊的意识阶段,所以才感觉 ng 比 ember 容易接受,可事实的真相是从工程角度上来对比,ng 和 ember 根本就不是一个级别的水准。
从工程和系统架构的很多方面来看 ember ng react 等等,ember 真是可以表示“我不是针对谁……”
@hxygsh 楼主,我想提个建议给你。
第一呢,你正在写的那些教程实在是有点过时了,如果是为了研究 discourse 那还有情可原,但如果是针对初学者的话我建议还是跟上主流的版本为好。
discourse 作为 Ember v1 时代的工程典范的确有其值得学习和借鉴的地方,而且 discourse 的团队也为 ember 的进步发展做出了很多帮助。只是因为它的架构实在过于庞大,而且当初也针对 ember 不够完善的地方做了很多定制性的东西,所以迁移到 ember 2 的技术体系就不是那么容易了。ember 1 和 2 的架构体系差异还是蛮大的,特别是 controller 和 view 这俩层在 ember 2 几乎就没有了(view 彻底没有,controller 还剩最后一点用处,马上就没了)。所以面向未来以及初学的话,discourse 并不是一个很好的教材。
第二,ember 经历了足够长的核心开发周期之后,未来的大方向和目标已经基本敲定,今年将会投入很大的精力在对初学者的帮助和培训上。今年特地重组了 ember 的核心团队,又特别组建了官方的文档和学习团队,重新编写了最新的手册和 API 文档,并且整合了 crowdin 做多语言翻译管理。
如果你对这方面有兴趣并且有时间的话,欢迎你加入 Ember 文档团队的 I18n 项目,一边学习最新的 Ember 知识一边帮助整个项目做文档的多语言化和改善工作,何乐而不为呢是吧?
有兴趣的话可以先看看这里:https://crowdin.com/project/emberjs 。愿意参与的话可以联系我或者直接 Slack Ember 的文档频道申请加入。
嗯,真的感谢您中肯而有见地的建议!之前看了您的一些文章,每一篇都满载自己的体会和思想,老实说我这水平很多内容没看懂,但能看出作者专业、严谨的态度,论坛里能得到您的回复 倍感荣幸。 您的建议我会认真考虑,您所谈到的 ember 让我对这个框架又有了新的认识,再次表示🙏感谢。
#6 楼 @akirapanda 嗯,你说的很对,就是这个区别导致了二者入门的门槛高度不同,但是上升曲线上 ember 反而平缓很多。随着越来越多规模较大的前端工程出现和趋于成熟,ember 的好处也会越来越被人所接受,其实这一方面正如你说的,PHP 和 Rails 的差别。
@nightire 看了看 https://crowdin.com/project/emberjs 的内容,如果可以的话我想花些时间参与文档的翻译工作,如您所说:“一边学习最新的 Ember 知识一边帮助整个项目做文档的多语言化和改善工作,何乐而不为呢是吧?” 我用 github 登陆看的,需要提交哪些资料呢?以及具体的时间、任务要求是哪些? 我的邮箱:[email protected]
#8 楼 @hxygsh 这个没有什么时间和任务要求,完全是靠社区驱动的,有时间就来贡献点内容便好。
加入的方式很简单,点击:https://crowdin.com/project/emberjs?auto_accepted=12858931 用你的帐号登陆就会自动把你加入进来
如果自动加入没生效,登录 Slack:https://embercommunity.slack.com/messages/dev-translations/details/
然后在 dev-translations 频道里(上面的链接就是)@lock,跟他说你要加入 Chinese 的翻译工作,然后告诉他你的 crowding 账号,他会帮你加入的。