写点什么

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

  • 2018-04-07
  • 本文字数:1882 字

    阅读完需:约 6 分钟

看新闻很累?看技术新闻更累?试试下载 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 )关注我们。

2018-04-07 19:001068
用户头像

发布了 34 篇内容, 共 19.2 次阅读, 收获喜欢 47 次。

关注

评论

发布
暂无评论
发现更多内容

十大排序算法思想与Python实现

宇宙之一粟

Python 排序算法 12月日更

百分点认知智能实验室:基于NL2SQL的问答技术和实践

百分点科技技术团队

Hoo虎符研究院 | 币海寻珠——2021年12月月底NFT榜单(2021.11.22 - 2021.12.21)

区块链前沿News

NFT 虎符交易所 虎符研究院 Hoo交易所

区块链将在元宇宙旅游中发挥哪些价值?

CECBC

农信机构如何推动供应链金融?

CECBC

Golang中的协程是干什么用的?

liuzhen007

28天写作 12月日更

数字化石油的开采利器:智能图像识别系统

百度大脑

人工智能

HarmonyOS(鸿蒙)——单击事件

李子捌

28天写作 21天挑战 12月日更

架构实战营第 4 期 -- 模块四作业

烈火干柴烛灭田边残月

架构实战营

mybatis中如何防止sql注入和传参

网络安全学海

黑客 网络安全 信息安全 渗透测试 安全漏洞

面试官:说说32位和64位

喵叔

28天写作 12月日更

Dubbo 框架学习笔记十一

风翱

dubbo 12月日更

阿里云混合云重磅亮相中国信通院2021混合云大会

案例应用 l 机器视觉"OCR识别"技术,高效解决医疗药盒字符检测难题

矩视智能

机器视觉 工业视觉 工业机器视觉 工业界机器学习

从350ms到80ms,打造新零售场景下 iOS 短视频的极致丝滑体验

阿里巴巴终端技术

ios App 短视频 移动开发

优酷弱网平台落地实践

阿里巴巴终端技术

弱网 弱网环境高可用

盘点 2021|日更一年的收获与改变

石云升

28天写作 12月日更 盘点2021

技术进步和个人幸福

mtfelix

28天写作

一指阁:用宜搭实现全面数字化管理,助力企业打开十亿市场新空间

一只大光圈

阿里巴巴 低代码 数字化 钉钉宜搭

如何利用区块链提高供应链金融数字化水平?

CECBC

读《思辨与立场》-09决策的艺术10掌控你的非理性倾向

wood

28天写作 批判性思维 思辨与立场

5G很美丽,也要解好题:为什么今天必须关注5G-Advanced?

脑极体

Agora Flat:在线教室的开源初体验

声网

人工智能 开源 flat

Flink CDC 系列 - 同步 MySQL 分库分表,构建 Iceberg 实时数据湖

Apache Flink

大数据 flink 编程 后端 实时计算

学习基本黑客技术

喀拉峻

网络安全 安全 渗透测试

元宇宙如何改写人类社会生活

CECBC

Yes And

将军-技术演讲力教练

Redis AOF 持久化详解

程序员历小冰

redis aof 28天写作 12月日更

Java 中的 xx ≠ null 是什么新语法?

CRMEB

关于Stream转Map的Duplicate key异常处理

一盐难进

java基础

微服务架构下请求调用失败的解决方案

JavaEdge

12月日更

与Ember共同创作者Tom Dale聊Ember 3.0及其他_JavaScript_Dylan Schiemann_InfoQ精选文章