BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

与Ember共同创作者Tom Dale聊Ember 3.0及其他

| 作者 Dylan Schiemann 关注 8 他的粉丝 ,译者 张兰月 关注 0 他的粉丝 发布于 2018年4月8日. 估计阅读时间: 6 分钟 | ArchSummit北京2018 共同探讨机器学习、信息安全、微服务治理的关键点

看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!

Ember的共同创作者兼LinkedIn高级软件工程师Tom Dale最近与InfoQ谈论了最新发布的Ember 3.0版本、Ember项目的方向、它与现代Web标准的一致性以及Ember在Rust和Web Assembly方面进行的最初实验。

Ember 3.0版本本身没有增加新的功能,而是取消了一些过时的功能。 Tom Dale说:

我们在Ember 2.x中实现了很多很棒的东西。 与许多其他项目相比,我们希望将好的东西带入2.x系列,而不是强迫用户升级来获得新的东西。

对于能够在没有重大变更的情况下实现大规模改进,Ember团队感到非常自豪。 例如,Glimmer 渲染引擎成功地在Ember 2.10中实施,而没有破坏Ember现有的构建组件的方法。

当被问及即将发布的3.x版本将会有什么重大变化时, Dale说:

Ember整体上不需要进行重大的根本性改变。 我们有清晰的愿景,Ember、Ember Data和Ember CLI之间必须要有很好的分离。 对于Ember 3.x,我们将专注于简化,使Ember更清晰,并与JavaScript社区的最佳实践保持一致。

对于Ember用户来说,Glimmer堪称是视图层方法的重大变革,它与React普及的单向数据绑定方法在许多方面类似。 Dale解释了Glimmer的不同之处:

最新的单向数据流方法是“数据向下、动作向上”(简称DDAU)。我相信您在Ember社区中已经听过无数次“DDAU”这个规则了,因为它可以帮助你避免陷入双向绑定,而Glimmer组件则将该模式直接应用在API中。

多年来,人们对于Ember的印象一直是所有功能必须一起使用,但实际上Glimmer可以单独使用。 Ember项目的目的是希望为Glimmer提供一个让用户选择或退出其他Ember功能的途径。 Dale解释了导致这种转变的原因:

前端工程已经成为高度状态化的分布式客户端,并且在高复杂度的情况下,一切都会崩溃。 许多新开发人员很热情,但需要帮助才能实现他们的目标。 对于这点,一个很好的比喻是你打保龄球时的球道护栏。 Glimmer也是一样,它能防止用户在与DOM交互时发生错误。

Ember的元件库将继续扩大。 尽管 Dale提醒说,Glimmer组件可以作为Web组件导入应用程序中,

但Web组件并不能替代Ember、React和其他框架的组件系统。 Web组件主要用于叶子组件,但它们多少有点像黑盒子。跨组件共享资源并不容易,所以这限制了Web组件的高效渲染。

Ember支持使用Ember组件作为Web组件,这是Ember在符合现有标准上的一项更大的尝试。 Ember团队还参与了TC39,一项推动JavaScript语言发展方向的过程。 譬如,Dale说

ES6类和装饰器非常重要,它们永远拥有类似于Ember的东西,但是现在它们可以使用约定俗成的东西,所以与标准语言功能相比,人们可以使用该框架,而无需学习框架中的所有内容。

Ember对待标准的方法类似于其他框架(如Angular 2+、Dojo 2+、React和Vue),目的是尽可能与语言功能保持一致。

除了这些标准之外,Ember团队也是TypeScript的粉丝,因为TypeScript给其团队带来了极高的生产力。并非所有人都是TypeScript的粉丝,Ember团队对此表示尊重并且一直致力于确保该项目的API对于JavaScript工程师来说是合理的。

该团队开发了框架的一部分,包括支持TypeScript的Glimmer,并且最近开始在Ember Core中使用。 Dale解释了他如何克服他最初对TypeScript的怀疑:

我们有一个在任何地方都需要的数据结构,我们对它做了很小的改动。 我已做好了准备,预计变更需要两周时间。 然而,使用TypeScript及其重构工具,我只是通过跟踪TS错误,便让测试套件在两天而不是两周后通过测试!

Ember还为TypeScript用户提供服务,因为在TypeScript中发布的npm软件包会自动提供TS定义,以支持喜欢使用TypeScript开发应用程序的Ember用户。

采访以WebAssembly作为结束。 目前一项有关Glimmer虚拟机的工作正在紧锣密鼓地进行之中,该虚拟机是使用Rust开发的,并在浏览器中使用了WebAssembly。 Dale指出:

Rust团队在推出WebAssembly方面已经付出了很大的努力。 但WebAssembly功能仍然相当有限,但Ember团队希望确保他们已经为WebAssembly做好了准备,或许它将是Ember部分框架的未来。

感谢Tom Dale花时间与InfoQ谈论了关于Ember的最新进展。 要了解有关Ember的更多信息,请访问Ember 网站

查看英文原文Ember 3.0 and Beyond with Co-creator Tom Dale


感谢无明对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT