【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

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

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

关注

评论

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

View系列:硬件加速,安卓面试项目

android 程序员 移动开发

View,2018android面试题

android 程序员 移动开发

python3如何安装MySQLdb库

YUKI0506

Python3 mysqldb

WebP 探寻之路,kotlin环境搭建

android 程序员 移动开发

Tomcat体系架构,2021吊打面试官系列

android 程序员 移动开发

ViewPager(二),android移动应用开发教程

android 程序员 移动开发

VirtualAPK 详解和使用,网易云的朋友给我这份339页的Android面经

android 程序员 移动开发

React Native 与 嵌入Android原生与Activity页面互相跳转

android 程序员 移动开发

Retrofit-+-RxJava-+-OkHttp-让网络请求变的简单-封装篇

android 程序员 移动开发

使用策略模式重构电商折扣和支付场景

Tom弹架构

Java 架构 设计模式

阿里:“6大核心调优技术”曝光,真是小母牛坐飞机,牛逼上天了!

Java高级开发

架构 JVM Java 分布式 Java性能调优 M-SQL

阿里内部热捧“Spring全线笔记”,不止是全家桶,太完整了

Java spring 程序员 springmvc springboot

react-native Navigation导航器,kotlin协程使用

android 程序员 移动开发

RecyclerView 事件分发原理实战分析,历经30天

android 程序员 移动开发

StateMachine使用及源码解读,kotlin面试题

android 程序员 移动开发

ViewPager中使用Fragment时防止数据预加载,腾讯架构师深入讲解Android开发

android 程序员 移动开发

Sqlite全面学习(一),oppo android面试

android 程序员 移动开发

TCP_UDP协议详解,大牛带你直击优秀开源框架灵魂

android 程序员 移动开发

ViewPager翻页特效(2_特效关键代码),android混合开发专利

android 程序员 移动开发

Room增删改查,真香!,android编程实战pdf

android 程序员 移动开发

RxJava 沉思录(三),android开发入门与实战网盘

android 程序员 移动开发

我的毕业总结

张文龙

#架构实战营

一周信创舆情观察(10.25~10.31)

统小信uos

华泰证券研究所谢春生:从全球看金融 IT 架构的变化

BoCloud博云

云计算 系统架构 金融科技

ViewDragHelper之手势操作神器,vue数据双向绑定

android 程序员 移动开发

TCP粘包半包问题和解决,android实战开发-天气预报PPT

android 程序员 移动开发

volatile关键字在Android中到底有什么用?,零基础入门android

android 程序员 移动开发

远程连接Windows服务器

坚果

云服务器 11月日更

Router_一款单品、组件化、插件化全支持的路由框架,安卓开发面试题自定义view

android 程序员 移动开发

ScrollView嵌套RecyclerView滑动冲突相关问题,BAT这种大厂履历意味着什么

android 程序员 移动开发

终于有人把阿里巴巴的“双11”高并发系统秒杀架构终极版教程,整理成册了

Sakura

Java 程序员 架构 面试 计算机

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