【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

ng-conf 2016 大会深入介绍了新的 Angular 编译器

  • 2016-05-09
  • 本文字数:1231 字

    阅读完需:约 4 分钟

ng-conf 2016 大会第二天以一场技术性很强的主题演讲拉开了序幕。Angular 团队成员登台,深入介绍了 Angular 2。

Rob Wormwold Misko Hevery 主要谈论了新的离线编译步骤。Wormwold 展示了两种编译模式:动态和静态。动态模式就是 Angular 开发人员熟悉的模式。框架被发送到浏览器,所有的编译都是在那里进行的。在这种模式下,Angular 净负荷大约为 116K。

对于该离线静态编译器,有几个步骤可以将净负荷减小到 49K(最终应该是 45K)。

Hevery 列举了新编译器的其中几个好处:

由于我们已经使用 JavaScript 重写了解析器,所以我们可以让它对大小写敏感。这就是为什么,在 Angular 2 中,你不必使用ng-if,只需使用ngIf。我们还可以提供行号。我们知道特定的标记或控制器来自哪里。如果有异常,我们可以给出行号和列号。

这个新的编译系统仅使用了 JavaScript,没有任何 DOM 依赖,因此,它可以在任何地方运行,包括浏览器、服务器和其他任何运行 JavaScript 的地方。Hevery 表示,由于新编译器生成的代码是“单体的(monomorphic)”,所以浏览器 VM 可以内联函数调用点,“极大地提升速度”。

新编译管道由以下四个步骤组成:

  • 编译
  • 内联
  • Tree-Shake
  • “最小化(Minify)”

编译和最小化是这样一个过程里的典型步骤,但内联和 tree-shaking 是新增的步骤。内联会将所有导出和导入的各种模块合并到一个文件中。它不是简单的串联。Hevery 说,“我们说的是取得各个符号,然后将它们放在一起”。

目前,Tree-shaking 步骤使用了一个名为 RollUp 的工具,检查那个仅有的文件,剔除永远用不到的代码。这极大地较少了程序包中的代码量,因为除了其他原因外,Angular 编译器本身固有的东西也会被移除。Hevery 说道:

Tree shaker 会跟踪 [代码],只保留确实存在引用的符号。因为我们使用了 [离线编译器],没有引用 ng 编译器,所以它会被自动排除出去。实际上,我们还可以排除其他东西。如果你没有在应用程序中使用 ngFor 或 ngIf,那么我们也可以不包含它。我们只包含这个应用程序真正需要的东西。

从版本 1 到版本 2,Angular 完全重写了,这给社区带来了许多痛苦,Angular 团队希望那种情况永远不再出现。 Alex Eagle 上台谈了谷歌内部使用的重构工具,该工具可以保证其应用随 Angular 本身的变化而升级。他们希望向社区提供类似的东西。Eagle 说道:

我们可能保证 Angular 长盛不衰吗?通过及时更新框架以及让所有用户和我们保持同步,我们可以避免与“Angular 3”打交道吗?

该工具使用了 TypeScript 语言服务、新编译器和解析器为应用的 TypeScript 和 HTML/CSS 文件创建“源码修订建议”。Eagle 说,“那些修订足以纠正我们眼下在框架中造成的破坏”。为此,Angular 团队宣布,他们“计划构建”一套公共的工具,对于框架中的每一项破坏性变化,“一整套的升级选项可以帮你从现在正在使用的任何版本升级到最新版本。”

感兴趣的读者可以在 YouTube 上观看 ng-conf 2016 大会第二天主题演讲的完整视频。

查看英文原文 Deep Dive Into New Angular Compiler at ng-conf 2016

2016-05-09 19:002063
用户头像

发布了 1008 篇内容, 共 372.4 次阅读, 收获喜欢 340 次。

关注

评论

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

Linux中基于Docker搭建harbor私有镜像仓库(超级详细)

A-刘晨阳

Docker Linux 运维 Harbor 11月月更

数字先锋| 随时随地云端阅片,“云胶片”时代来啦!

天翼云开发者社区

智能时代如何打通商业市场?华为的内外兼修

这不科技

把Mybatis Generator生成的代码加上想要的注释

京东科技开发者

maven IDEA 代码注释 MyBatis标签 Generator

物流通知:您的快递即刻送达!

天翼云开发者社区

“元宇宙家园”国脉大厦展馆上线 天翼云实时云渲染筑基未来数字世界

天翼云开发者社区

2023上海国际智慧灯杆及智慧路灯展览会

AIOTE智博会

上海智博会 智慧灯杆展会 智慧路灯展会

大咖说·先临三维|技术入云塑造3D视觉行业新模式

科技pai

阿里云 科技 3D视觉

5 分钟带你在本地搭建一套云原生实验环境

谢烟客

Kubernetes 云原生 Service Mesh istio kind

南京等保测评公司有哪些?一共有几家?

行云管家

等保测评 等保备案 等保整改 南京等保测评

Docker搭建harbor私有镜像仓库(命令行模式)

A-刘晨阳

Docker Linux 运维 11月月更

背完这3套Java面试题,年后offer接不停

钟奕礼

Java java面试 java编程 程序员java

3000人群被字节内部技术图谱炸翻了,惊艳级实用

小二,上酒上酒

Java 架构 技术栈 字节

白活了!谷歌架构师10年心血汇成的《24种设计模式》,这才是正解

小二,上酒上酒

Java 设计模式

2022年中国母婴新消费市场专题分析

易观分析

母婴 消费市场

PID和TID的区别

源字节1号

APP开发 低代码开发 小程序开发 网站开发

【PCB干货】是开窗还是盖油?想搞懂过孔工艺,看这篇就够了!

华秋PCB

PCB PCB设计 过孔 PCB工艺

面试了个阿里P7大佬,他让我见识到什么才是“精通高并发与调优”

小二,上酒上酒

Java 流量 亿级并发设计

Jenkins + Docker 一键自动化部署 Spring Boot 项目

小小怪下士

Java Docker jenkins springboot

从 NASL 说开:低代码编程语言能饭否

石臻臻的杂货铺

11月月更

行业首个测试开发技术大赛开始报名啦~ 10万现金奖励等你来挑战

霍格沃兹测试开发学社

如何平衡客户和用户的诉求冲突?

QualityFocus

产品经理 需求 产品需求

java面试之经典算法篇

钟奕礼

Java java面试 java编程 程序员 java

中国互联网大会天翼云展区大揭秘!

天翼云开发者社区

Linux中安装/部署docker-compose

A-刘晨阳

Docker Linux 运维 Docker-compose 11月月更

瓴羊Quick BI在线电子表格,数据分析人员高效工作“神器”

巷子

栈简介、手撸顺序栈、手撸链栈和栈的应用

C++后台开发

数据结构 后端开发 linux开发 C++开发

企业需要进行信息化改革,有哪些好用的信息化管理系统推荐?

优秀

低代码 信息化 信息化管理

一文解决 Go 安装和常用环境变量的配置

陈明勇

Go 11月月更

就这样,进字节了?华为的Java面试题和八股文,真牛批

小二,上酒上酒

Java 面试题 八股文 Java面试题

【C语言】return 关键字

謓泽

11月月更

ng-conf 2016大会深入介绍了新的Angular编译器_JavaScript_David Iffland_InfoQ精选文章