2014 年 Chrome 开发者峰会 - Polymer - 当前形势

Polymer 和 Web 组件是近来非常热门的话题,由于这个生态系统发展迅速,开发者往往很难掌握所有最新的变化。

在 Chrome 开发者峰会上的演讲中,Polymer 团队的工程经理 Matt McNulty 解释了什么是 Polymer,并概述了 Polymer 1.0 的发展路线图。

什么是 Polymer?

首先,什么是 Polymer?

Polymer 是一个库,可帮助您基于网络组件构建元素和应用。Web 组件是一套尖端的新标准,允许开发者使用自己的自定义元素扩展 HTML 词汇。

Polymer 帮助开发者更快地构建应用

由于 Web 组件设计为浏览器的新基元,这意味着它们功能非常强大,但级别也很低,使用它们需要大量代码。

Polymer 使 Web 组件的功能更丰富

Polymer 通过“添加”语法来简化 Web 组件的运行。它减少了您需要编写的样板代码量,并且添加了声明式样式,因此创建 Web 组件就像编写 HTML 一样简单。

聚合物实验

Polymer 最初只是一项实验,目的在于了解我们能否 polyfill 实现 Web 组件标准,并在这些技术在所有浏览器中推出之前获得开发者的反馈。随着越来越多的开发者开始使用 Polymer,它从简单的 polyfill 变成了具备各种生产力功能(数据绑定、属性更改观察器、自动节点查找等)的实际库。但所有实验都有结果,那我们是如何做到的呢?

Polymer 报告卡需要改进

虽然许多开发者表示他们喜欢在 Polymer 中使用 Web 组件的表现力和生产力,但他们也对性能和整体复杂性表达了担忧。

这凸显了 Polymer 一直以来的自然张力:通过尝试推动网络平台向前发展,同时也创造了可供开发者信赖的生产价值。

即将发生的变更

Polymer 团队仔细研究了该库的每项功能,目的是打造出一个更精简、可直接用于生产环境的版本,让开发者能够放心使用。

Polymer 已被重构为一系列层。核心功能快速、精简,而更高级的功能将由用户选择启用。对于大多数应用场景,核心功能应能满足开发者的需求。

Polymer 已重构为层

简化的数据绑定

Polymer 的数据绑定系统也针对性能进行了显著优化。按照分层方法,双向绑定现已成为可选功能,默认为单向绑定。此外,已发布的属性类型已明确指定,属性更改现在会触发一个事件,以帮助不同库中的元素更轻松地进行通信。

数据绑定已简化

更精简的 Shadow DOM

Shadow DOM polyfill 是一项了不起的工程壮举。它旨在全面且符合规范,这对于全面测试平台原语非常重要,但遗憾的是,对于 Polymer 未使用的功能,它引入了许多性能瓶颈。

下一版 Polymer 将采用不同的方法,采用只对 Polymer 所需内容进行填充的填充码式层。

Shim shadowdom 的快得多

现有的 polyfill 将仍然存在于常规的非 Polymer 网络组件中。

迁移至 webcomponents.org

说到 polyfill,它们同样有新家园。目前,许多开发者对 Polymer 和 Web Components 之间的关系感到困惑。有些人认为您必须使用全部 Polymer 才能使用 Web Components,而事实上您只需要用到 polyfill。

为了更明确地说明上述区别,我们即将将 polyfill 移至 webcomponents.org,并将它们重命名为 webcomponents.js

Polyfill 即将迁移到 webcomponents.org

此举旨在帮助其他库作者充分利用 polyfill,不会造成任何混淆。Polymer 团队将继续为 polyfill 做出贡献,但希望此次变更能够使其成为社区的共享资源。

成果

那么,所有这些变化会产生什么结果呢?

速度

在 Chrome 上,Polymer 的速度提高到了原来的 5 倍,在 Safari 上,其速度提高到了原来的 8 倍

Polymer 在 Safari 中的运行速度现已提升 8 倍

文件大小

文件大小也缩减了 87%,从 123KB 缩减到 15KB(gzip 压缩后 6KB)。

聚合物现在体积小 87%

路线图

下一版本将会进行一些 API 破坏性更改,以新版本号 (0.8) 表示,但该团队希望明确指出这不是重写。将当前项目从 Polymer 0.5 移动到 0.8 应该非常简单。

Polymer 团队还制定了路线图,以便开发者更清楚地了解即将发布的版本。

Polymer 路线图,第一季度推出 Beta 版,第二季度推出 1.0

0.8 预览版现已作为 GitHub 上的一个分支提供(不过它仍处于积极开发阶段,相关文档尚不完善)。0.9 官方测试版计划于 2015 年第 1 季度推出,而 1.0 则将于第 2 季度推出。

实验已结束

随着 Polymer 最近的所有变化,它背后的团队正在为使 Web 组件成为每个开发者堆栈中不可或缺的一部分奠定基础。如果您刚开始接触 Web 组件,现在就是了解并熟悉这些变革性技术的好时机。如果您已经在使用组件(和 Polymer),那么前景确实是一片大好。请密切关注 Polymer 博客,了解所有最新动态;如有问题或意见,请注册 Polymer 邮寄名单。祝您编程愉快!