烬。 你最好的选择。

如果您正在考虑使用哪种工具来帮助您构建下一个应用程序,则需要考虑使用Ember.js 构建前端应用程序非常复杂,涉及许多问题。 这是您不想独自承担的冒险,并且希望为即将发生的任何情况做好准备。 Ember支持您,我将阐明为什么您应该在下一个项目中考虑它。

库不是框架。

库是工具。 它们使您能够做特定的事情。 考虑一个油漆刷,它只能完成一项工作,并且只完成一项工作。 框架包含多种工具。 在Ember中,这些工具已被社区策划为对前端开发中一些最复杂和常见问题的最佳解决方案。

烬。 你最好的选择。
灰烬是精心策划的工具箱

我看到的问题是,前端社区整体上将两者混淆了很多。 例如, Glimmer.jsVue.jsReact.js是视图层工具-它们可帮助您管理页面上的呈现元素。 但是,有些工具可以解决其他问题,例如用于路由支持的React-Route r和router.js以及用于工具的create-react-appember-cli

框架包含这些工具,因此您可以开始构建应用程序。 我的第一个框架是Rails ,这是一个由一些优秀的库组成的框架的出色示例。 问题在于后端框架不会在前端进行心理转换,因为前端毕竟只是UI,对吗?

否。前端开发包含Web api支持,工具,部署,测试等。 这些库已被许多库改进,但口袋中的框架至关重要-它使您能够更快地交付软件,从而最大程度地减少决策疲劳。

交付软件。

确保出色的软件交付是我的首要责任。 作为软件工程师,我负责构建东西。 这些事情都是面向客户的,任何阻碍达成目标的事情都会分散注意力

有人可能会说,建立框架是软件工程师的责任。 而且,是的。 但是,我们还需要在琐事的成本和用户面临的价值之间取得平衡。

我喜欢的团队最关心运输软件。 他们认识到解决普遍存在的开发问题的需求与客户需求之间存在微妙的平衡和明显的区别。

灰烬开箱即用。 它建立了一个社区,可以共同解决常见问题,同时在您的应用程序中提供您最需要的功能。 如果没有您需要的东西,那么它广泛的附加组件生态系统绝对可以为您提供解决方案。 如果最终还是行不通,我相信您会发现其他愿意帮助您的人。

选择灰烬的好处。

更简单的生活。

自从选择了Ember之后,我就不必担心工具,Web API支持,安全合规性等等。 这是为什么? 因为社区由这些领域的专家组成,他们竭尽全力为您,我和其他所有人提供帮助。

在Ember中进行测试是生活变得更加轻松的完美示例。 单元,集成和全面的验收测试是框架的一部分。 您只需选择要使用的测试运行程序(例如qunit [2], mocha等)。 其他所有内容都组合在一起,您可以快速开始编写和执行测试。

使工程师能够毫不费力地编写验收测试可以消除单独的质量检查部门的要求,尤其是对于小型团队和预算紧张的情况。 您可以免费获得所有这些。

一个友好的社区。

社区可能是选择Ember的最佳方面之一。 由于对话是透明的并且对公众开放 ,因此在网络上记录了为什么在另一种模式上实现某种模式或某种技术更好的原因。 准备好您进行审查,批评,避免或实施。

另请注意,Ember不会消失。 Ember社区建立的基础是个人和公司的联盟。 社区中的每个人都来自不同的背景,有不同的问题和大量见解。 但这就是框架的核心优势所在-健康讨论,实施和交付经​​过测试的解决方案。

文档。

该库的文献资料非常丰富[4]。 通过源代码,指南或闲聊,您可以找到问题的答案。 甚至更好-它已被认真对待。 文档版本化,在Github上基于社区的对话非常透彻,核心团队已实施准则,可帮助在广泛的插件系统中实施此标准过程。

对Ember的常见批评。

不酷

好吧,是的,我敢打赌您会喜欢使用框架中的许多功能。 例如,源地图开箱即用,这意味着您可以使用Chrome的开发人员工具来广泛构建您的应用程序。

如果您刚入门,保持稳定的状态可能不会浮华,而且Ember不允许您破坏事情可能会令您感到困扰。 我们曾经这样做过,但它并没有那么有趣。

好消息是您的声音可以听到。 Ember有组织的RFC流程来讨论框架中的重大更改。 您可以在更改发生之前了解它们,付出2美分或创建自己的RFC来获取反馈。

学习曲线陡峭。

Ember由有助于简化应用程序开发过程的各种关键部分组成。 例如,引入了路由,部署和自动化测试。这意味着,您不仅需要了解Ember推荐的设计模式-而且还需要了解其他方面以交付良好的工作软件。

这使学习曲线有些陡峭,因为不仅有关于为可视层组成组件的学习。 关于Ember陡峭的学习曲线的观点已被反对使用,但是我要挑战这一事实,因为随着您的需求超出视图层,您最终将需要学习开发的其他方面。

请注意,这引起了核心团队的注意,并且为简化工作以确保简化准入门槛而采取了很大的行动。 例如,已经提出转移到JavaScript类,从而消除对this.get和this.set的需求,从而消除了JavaScript开发人员的最大困惑。

土著不是主要公民。

Ember是致力于单页应用程序(SPA)体系结构的框架。 您从SPA获得的好处就是Ember的好处。 由于SPA不是本机应用程序的概念,因此Ember不适合本机应用程序。

请记住,Ember正在通过渐进式Web应用程序取得进展。 因此,如果您要考虑选择一个选项,请查看mixonic 通过Ember构建渐进式Web应用程序

为什么要选择Ember。

Ember正在启动领域和企业级别使用 那里有各种各样的应用程序,它们已经证明对时间具有弹性。 它已在许多行业中使用,并已证明可以快速有效地扩展规模。 恩伯(Ember)帮助企业提高价值并稳定开发团队

从软件工程的角度来看,团队的稳定比我所做的其他任何工作都有价值。 当您可以与团队合作并共享相同的语言而对技术几乎没有混淆时,团队就会成长,并且比实际产品更有价值。

从产品的角度来看,您可以看到快速的进展。 实际上,如果您选择的工具使您能够快速迭代功能并在几乎没有时间的情况下实现反馈-对我来说,这似乎是适合该工作的正确工具。

最终从业务角度来看,我越早可以为产品增加价值就越好。

如果您希望您的团队在交付价值时更加高效和满意,那么您应该考虑选择Ember。 如果您仍然犹豫不决,请随时通过@alvincrespo在Twitter上与我联系 ,我们非常乐意帮助您找到最佳的工作工具。

谢谢。

谢谢所有帮助我写这篇文章的人。 非常感谢您的时间和精力,希望在此我的文字能正确反映您的评论。

笔记。

[1] create-react-app(CRA)略微基于与ember-cli相同的理念。 CRA提供了创建应用程序的初步经验,但是一旦您的需求超出了该项目的目标,您就可以自己完成。 另一方面,ember-cli提供了一个插件生态系统,使您能够加入cli以自定义构建。

[2] ember-qunit是默认的测试运行程序,无需预先配置

[3]透明对话的示例:

[4]文件示例:

From: https://hackernoon.com/ember-your-best-bet-b5cd7275dc84