点击上方 前端Q,关注公众号

回复加群,加入前端Q技术交流群

周日参加了 TWeb 腾讯前端技术大会, 这里根据自己的理解, 对部分主题进行总结回顾, 一些主题本文只是做概要性的介绍, 如果对主题感兴趣, 可以关注 "前端Q", 号内回复 tweb 领取大会全部 ppt.

我们来看第一个主题~

腾讯文档渲染优化之路

讲师: 肖骏 - 腾讯前端开发工程师

腾讯文档目前有 1.6 亿月活, 日活用户峰值超过了 1600 万, 它需要支撑起千人同时编辑, 极限情况下,需要支撑数十万行的数据渲染交互不卡顿.

讲师讲述了在河南暴雨汛情期间, 一份 "救命文档" 写下的民间史诗. 验证了腾讯文档的高性能以及重要性.

腾讯文档是怎么一步步优化性能的呢? 讲师从以下几步做了阐述

  • dom 时代:

    • 使用will-change 或translateZ 等提升元素层级

    • 使用transform 和opacity 属性

    • 尽量避免改变元素的几何属性(例如宽度、高度、左侧或顶部位置等)

    • 修改“paint only”属性(例如背景颜色、文字颜色等)-> repaint

    • layout

    • paint 优化

    • dom 滚动复用, 通过虚拟列表减少渲染的 dom 数量

  • canvas 时代:

    • 遍历待绘制内容

    • 相同状态内容整理

    • 分类渲染

    • 单元格使用 canvas 渲染

    • 减少渲染时触发 GC

    • canvas 切换状态机优化

    • 离屏 canvas 与复用

讲师除了介绍腾讯文档的优化手段, 还介绍了如何精确、自动化地统计 FPS, 这里就不展开了, 详细的可以在 ppt 查看, 我们继续下一个主题~

Flutter 音视频开发实践

讲师: 牛赞 - 腾讯前端高级工程师

根据 statista 和 stackoverflow 的统计数据, 今年 flutter 的热度已经超过了 react native.

讲师介绍了 Flutter 的架构, Flutter 和 Web 开发的差异. 也介绍了腾讯实时音视频 TRTC(Tencent Real-Time Communication)在互动直播, 会议, 在线教育等场景的应用. 尤其在疫情期间, 是怎么助力线下业务搬到线上的.

期间, 讲师详细介绍了 TRTC 的架构, 以及 Flutter 在这个架构中扮演的角色.

最后, 讲师介绍了 TRTC Flutter 音视频的 SDK 设计, 主要围绕以下面临的几个挑战来阐述:

这些问题, 读者如果感兴趣, 可以获取到 ppt 后进一步了解~

我们来看下一个主题:

如何设计一门上万人使用的 DSL - 腾讯问卷 DSL 实践之路

讲师: 李泽帆 - 腾讯前端工程师

腾讯问卷的开发同学会做一些问卷的定制开发, 每份问卷, 和需求方沟通, 可能要 3 天时间才能开发完. 通常会出现如下情况:

面对这种沟通成本巨大的场景, 需求方清楚地知道逻辑, 但不会写代码. 这种情况就适合用 DSL 来解决.

这里简单介绍下 DSL (Domain-specific language), 中文翻译为领域特定语言,例如 SQL、JSON、正则表达式等。与之形成对比的是 GPL(General Purpose Language),中文翻译为通用编程语言,我们熟悉的C、C++、JavaScript、Java 语言等就是。

DSL 有如下特点:

  • 是一门便于人们理解的编程语言或规范语言,并且可以被计算机解释执行。

  • 相比于通用编程语言,只能表达有限的逻辑。

  • 因为受限的表达性,所以只会在某一些领域广泛应用。

我们来看一下腾讯问卷实现的 DSL

我们来简单了解下实现原理:

  • 通过使用解析器生成器将 DSL 翻译成可执行的语句, 腾讯问卷使用了 PEG.js

来看一个案例, 如何通过 DSL 表述两分钟前:

来看一下基于 peg.js 的实现:

可以看到, 有了 PEG.js, 我们不需要了解编译原理, 就可以很好地完成一个简单的 DSL 语言的编写.

讲师除了介绍 DSL 的实现方法之外, 还介绍了怎么设计更容易被书写, 以及 DSL 利弊. 详情还是查看 ppt 啦~

远程办公下开发测试协同如何提效

讲师: 杨晨(腾讯前端工程师) & 吴文斌 (腾讯前端高级工程师(whistle 作者))

两位讲师主要介绍了一个基于【Whistle】的代理集成多种功能的免代理平台 TDE (Tencent Debugging Experience). 对于还不了解 whistle 是什么的同学, 可以点击这里了解:Whistle实用功能介绍

拥有了 TDE, 我们就可以不用在本地安装 whistle, 而是通过一套系统, 在被测界面上注入操作面板解决各种代理, 抓包问题. 比如切换环境只需要在被测界面的面板点一下. 另外就是可以做到云抓包, 比如开发可以抓到测试同学的包. 同时 TDE 也解决了我们的代理配置无法共享的问题:

本次分享, 讲师还详细介绍了实现原理, 比如 whistle, nohost 的架构和实现细节, 安全机制等.

这个主题很多很多干货,就不列举了,只能说不能错过。 大家感兴趣的话还是进一步查看 ppt 哈~

Kubernetes 微服务体系下的便捷 BFF 开发

讲师: 王振威 - CODING 研发总监

讲师介绍了 BFF (Backend for Frontend) 的由来, 在没有 BFF 层时, 前端向后端请求数据, 会面临一个 N + 1 问题 (一个界面请求 N 个接口), 如:

这是不合理的, 渲染一个博客列表, 不仅需要查询博客列表, 还需要查询博客详情, 另外还要再分别发请求获取博客的评论, 点赞信息的请求.

这里的本质问题是前端是界面思维, 后端是数据思维, 这么直接请求, 就会导致接口调用复杂失控, 不利于后期维护:

所以我们需要 BFF 层:

如此, 前端就不再需要请求 N 个接口, 而是将这部分工作交给了 BFF 层, 而 BFF 层请求 N 个接口, 不存在外网延时, 鉴权等问题, 服务更加可控和高效.

接着, 讲师介绍在 kubernetes 下, BFF 会面临以下问题:

  • 环境搭建

    • 微服务数量多, 环境搭建复杂

    • 环境脆弱,易损坏

  • 本地资源不够用

    • 微服务占用资源太多

  • 编码自测循环耗时太久, 有些服务本地无法完成调试, 需要部署到开发或测试环境.

讲师介绍了通过 K8s 生态打造弹性环境体系来解决以上问题, 弹性环境体系可以确保每个人拥有云上独立的开发测试环境, 此外还可以通过 vscode 插件直连开发环境, 做到修改代码及时生效.

这一切, 都封装在背后, 对于开发者而言, 只是简单的改动代码, 环境, 资源都不需要考虑.

如上图, vscode 通过安装 nocalhost 插件, 点击开发环境右侧的小锤图标按钮, 即可在本地开发代码, 而这些代码, 包括 vscode 中的命令行, 都是一个云上的, 改完代码重启服务可以立即看到效果, 而无需等待漫长的 CI CD 流程.

如果大家想进一步了解 nocalhost, 可以观看如下视频, 或查看 ppt:

TWeb 还有很多主题这里没有介绍, 如低代码, 可视化, 跨端, 编辑器和效能方面的一些主题, 限于篇幅, 这里就不一一展开了, 大家可以关注 "前端Q", 号内回复 tweb 领取大会全部 ppt 进行学习哦~

往期推荐

大厂面试过程复盘(微信/阿里/头条,附答案篇)

面试题:说说事件循环机制(满分答案来了)

专心工作只想搞钱的前端女程序员的2020

最后

  • 欢迎加我微信,拉你进技术群,长期交流学习...

  • 欢迎关注「前端Q」,认真学前端,做个专业的技术人...

点个在看支持我吧

2021 TWeb 腾讯前端技术大会精彩回顾(附PPT)相关推荐

  1. 2019腾讯前端技术大会 - 记录与思考

    2019年第三界腾讯前端技术大会,第一次参加这个大会,作为一个技术人,感觉还是有收获的,在此以博客的形式记录一下参会的点点滴滴以及个人思考 大会概况 时间:2019/11/16 9:00~18:00 ...

  2. 2017腾讯LIVE开发者大会精彩回顾!

    2017年11月4日,腾讯LIVE开发者大会在腾讯大厦二楼多功能厅完美落幕啦!腾讯LIVE开发者大会(TLC)是由NOW直播技术团队联合IVWEB团队共同发起的关于音视频/直播领域技术分享的开发者大会 ...

  3. 回顾 | Apache Flink 1.13 新版本 x 互娱实践分享 Meetup · 北京站精彩回顾 (附 PPT 下载)

    简介:PPT下载链接来啦! GitHub 地址 https://github.com/apache/flink 欢迎大家给 Flink 点赞送 star~ 5 月 22 日,Apache Flink ...

  4. 解密腾讯前端技术体系

    1 引言 为了了解当前前端的发展趋势,让我们从国内各大互联网大厂开始,了解他们的最新动态和未来规划.这是解密大厂前端技术体系的第三篇,前两篇已经讲述了阿里和百度在前端技术这几年的技术发展.这一篇从腾讯 ...

  5. 2018全球机器学习技术大会精彩谢幕

    文章来源:ATYUN AI平台 金秋9月,定位全球AI之都的魔都上海,在刚刚举办完全球瞩目的WAIC世界人工智能大会,又迎来了在技术界备受关注的ML-Summit 2018全球机器学习技术大会.本届大 ...

  6. SegmentFault 专访 | AlloyTeam 2015 前端技术大会讲师圆桌

    导读 继采访 AC 2015 讲师高工晓思之后,我们又访问了 AC 2015 的另外三位讲师:来自 AlloyTeam 的工程师郭碧青.潘佳韩和王斌,整理成这篇讲师访谈圆桌. 下面是三位讲师的简单介绍 ...

  7. 相约 | 2021全球C++及系统软件技术大会将于12月上海隆重召开

    C++语言由于在构建系统软件领域的关键作用而被誉为"皇冠上的明珠",从底层操作系统到数据库,从通信软件到AI基础框架,从金融交易到万物互联,C++无不扮演关键的关键牛刀的作用.随着 ...

  8. 知道创宇区块链实验室受邀参加“2021 CCF中国区块链技术大会”

    2021 年12 月 26 - 27 日 ,由中国计算机学会(CCF)主办的 " 2021 CCF中国区块链技术大会" 在海南海口隆重举办.此次会议邀请来自政府部门.高等院校.金融 ...

  9. 2015年中国数据库技术大会(DTCC)PPT合集

    2015年中国数据库技术大会(DTCC)PPT合集 由国内领先的IT专业网站IT168联合旗下ITPUB.ChinaUnix两大技术社区举办的2015第六届中国数据库技术大会(DTCC2015)在北京 ...

最新文章

  1. java fileupload 进度_Java上传文件进度条的实现方法(附demo源码下载)
  2. C ++ 11基于反向范围的for循环
  3. 【Mac】【环境变量】
  4. 【计算机网络】传输层 : TCP 可靠传输 ( 可靠传输机制 | 快速重传机制 )
  5. javascript 总结笔记
  6. svn: Can't open file '/a/b/db/txn-current-lock': Permission denied
  7. Python学习笔记之While循环(一)
  8. php 如何执行top命令,linux命令:top命令
  9. python selenium定位元素方法_[原创] python selenium 元素定位方法封装
  10. 苹果审核之遇到IPV6问题被拒的解决方法
  11. 京东量化平台宣告下线,其他平台该何去何从?
  12. CI-持续集成(2)-软件工业“流水线”技术实现
  13. IDEA启动Tomcat中文乱码(已解决)
  14. ftp服务器端口修改,FTP端口:默认为21端口
  15. 数据库知识整理 - 概述、数据模型、三级模式结构
  16. 计算机专业考研英语二国家线多少分,考研英语二国家线多少,2019年考研英语二国家线?...
  17. 于IIS 7的HTTP 错误 500.0 - Internal Server Error(错误代码:0x800700.
  18. Android App的设计架构:MVC,MVP,MVVM与架构经验谈
  19. Android调用新版百度天气api,解决地理编码问题
  20. windows自带的复制粘贴历史工具

热门文章

  1. 高德足迹地图在哪里,高德地图怎么点亮城市?高德地图足迹地图查看方法
  2. 大数据运维实战第一课 大话 Hadoop 生态圈
  3. 随手笔记之逆序输出数字
  4. 浅谈机器学习-回归与分类的区别
  5. cookie、sesion
  6. Windows-dos命令
  7. JAVA实现PDF无损转WORD
  8. 为什么小样本不建议用深度学习?
  9. Doctype 作用? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
  10. ssh怎么ftp上传文件到服务器,ssh ftp上传文件到服务器