写点什么

与 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:001087
用户头像

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

关注

评论

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

软件测试|Pytest的必会技巧(一)

霍格沃兹测试开发学社

MySql 索引的失效与优化

Andy

聊一聊模板方法模式

设计模式 模板方法模式

Nacos必知必会:这些知识点你一定要掌握!

王中阳Go

Go 微服务 nacos 服务治理 配置管理

CSS小技巧之圆形虚线边框

南城FE

CSS css3 前端开发

软件测试|一步到位教会你Python字典操作(一)

霍格沃兹测试开发学社

定风波、渡重山、至未来:2023中国数字能源生态大会开启的新旅程

脑极体

新能源

如何使用Go语言实现LSP原则

Jack

Prompt learning 教学[最终篇]:Chatgpt使用场景推荐、优秀学习资料推荐、AI工具推荐

汀丶人工智能

人工智能 自然语言处理 ChatGPT 人工智能ChatGPT 吗? prompt learning

Prompt工程师指南[从基础到进阶篇]:用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题

汀丶人工智能

人工智能 自然语言处理 ChatGPT prompt learning

Zabbix电话短信报警技巧

外滩运维专家

zabbix电话报警 zabbix短信报警 zabbix飞书报警 zabbix钉钉报警 zabbix微信报警

软件测试|Python实用炫酷技能——推导式

霍格沃兹测试开发学社

设计模式之美--应用LOD法则实现“高内聚低耦合”

GalaxyCreater

设计模式

Java Web实战 | 设计一个监听器

TiAmo

JDBC 事件监听 监听

你管这破玩意叫缓存穿透?还是缓存击穿?

Java你猿哥

redis 缓存 缓存穿透 缓存击穿 缓存雪崩

从原理到实战,手把手教你在项目中使用RabbitMQ

Java你猿哥

Java ssm RabbitMQ 消息队列 RabbitMQ延时队列

软件测试|神操作!用 Python 操作 xmind 绘制思维导图

霍格沃兹测试开发学社

背靠香港影视集团星光文化,StarNFT问世了

西柚子

2023-05-14:你的赛车可以从位置 0 开始,并且速度为 +1 ,在一条无限长的数轴上行驶, 赛车也可以向负方向行驶, 赛车可以按照由加速指令 ‘A‘ 和倒车指令 ‘R‘ 组成的指令序列自动行驶

福大大架构师每日一题

Go 算法 rust 福大大

Orillusion引擎开源一周,荣登Github Trending榜单

Orillusion

开源 3D 渲染引擎 元宇宙 #WebGPU

AI DevOps | ChatGPT 与研发效能、效率提升(中)

laofo

DevOps 研发效能 ChatGPT

workerman 自定义的协议如何解决粘包拆包

北桥苏

php Unity3D workerman GatewayWorker

软件测试|不会Python RPC,一篇文章教你入门

霍格沃兹测试开发学社

什么是好代码/坏代码?给普通人的图解示例

越长大越悲伤

后端 好代码的衡量标准

C语言编程-程序结构

梦笔生花

C语言 结构 三周年连更

用友BIP成功入围工信部《2022年信息技术应用创新解决方案》

用友BIP

软件测试|PC端应用自动化最佳解决方案——Pywinauto

霍格沃兹测试开发学社

软件测试|手把手教你用Python来模拟绘制自由落体运动过程中的抛物线

霍格沃兹测试开发学社

Django笔记二十八之数据库查询优化汇总

Hunter熊

Python django 查询优化

ui设计软件Sketch 96.3中文激活版~ 支持m1

真大的脸盆

Mac ui设计 矢量设计

Unity3D 对接 workerman 实现联机游戏

北桥苏

php socket Gateway Unity3D workerman

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