写点什么

黄希彤:给前端开发者——云时代前端开发的边界拓

腾讯云

  • 2020-11-30
  • 本文字数:3294 字

    阅读完需:约 11 分钟

黄希彤:给前端开发者——云时代前端开发的边界拓

2020 年 11 月 29 日,腾讯 2020「小程序·云开发」技术峰会在北京顺利召开。本次峰会以“重新定义开发”为主题,深度聚焦小程序云开发的创新成果与实践案例。以下为前端开发领袖,腾讯云 TVP 黄希彤演讲实录:


大家好,不知道在现场的有没有做前端开发的或者从前端转到云上开发的?可以举下手吗?今天是一个关于云开发的会,前端能来到这里,说明我们的嗅觉都很敏感。这两年在云上面,开始闻到了一些前端的味道,好像我们前端搞事儿的时机又到了。


这让我我想起来 20 年前,我们前端有过一个最爽的时代。那时前端是一个像 BUG 一样的存在,所以 2000 年不止有一只千年虫


2000 年的时候我有一个朋友在中华网做前端,当然那个时候还没有前端这个提法,叫网站编辑。


那个时候的前端是做啥的呢,用 Dreamwaver 编辑静态网页,不用写脚本,至少不用自己写,DW 好像自己会生成一点儿脚本。那个时候,普通前端就是拖拽生成页面,高级前端就是 HTML+CSS ,没人写脚本。


那时候我那个朋友的工资是 1 万块,我是一个做 DELPHI 开发的,工资是 1800。那真是前端最好的年代,连 JavaScript 都不会,可以拿到一个程序员 5 倍多的工资,我瞬间就爱上了前端。


不过等我把 Delphi 程序员到工作辞了去深圳想搞前端的时候,互联网泡沫居然破灭了。


破灭了也好,大家都回到一样的起点,重新出发,开始一边学前端,一边试图搞清楚前端到底是什么意思。


我那个时候开始到 CSDN 论坛上混 JavaScript 版。那时也还没有前端这个提法,


但是开始有了动态网页的提法,就是所谓的 DHTML,也就是 HTML+CSS+JS。


到 2005 年,我作为第一个专职的前端开发加入腾讯。那时候中国做前端的人还很少,中国的互联网公司也都还没有前端开发这个岗位。


那个时候我作为前端开发的能力范畴也还是 DHTML,不过因为跳槽的过程有几十天的过渡期,我居然抽空复习了一下通讯协议。这对于现在的开发者已经是基本能力要求了,但是在当时的前端,这就严重超纲了,这是前端手伸得太长,想搞事儿了。


然后,我还没想好怎么搞事儿,事儿自己搞上门来了。2006 年的 1 月 1 号,元旦节早上 8 点整,腾讯的一批服务器崩溃了,来自全国的,远超常规的访问流量,持续不断的压在服务器上,然后服务器就崩溃了。


懂网络安全的同学都知道,这叫 DDoS,分布式拒绝服务攻击。这会给服务器带来很大的压力。


不过当时是元旦假期,我是等到 1 月 3 号早上才知道这事的。那天早上,我在查看我们开发的网页的时候,突然感觉到一种压力,不是网络并发访问的那种压力,是一种生理的压力。


然后我就去厕所释放压力。在厕所里我听到了两个人边释放压力边聊天。


一个就问,查到是谁在攻击了么,另一个就说没有,压力完全是分散的,追踪不到攻击来源。


原来我负责的业务已经不能提供服务了,但是要不是碰巧上了个厕所,我都还不知道,因为网络通讯层在当年,就是不关前端什么事的。


不过到底什么事关前端的事,大家也说不清楚。释放完压力回到座位上我就开始尝试做抓包分析。


得益于那十几天超纲的学习,我很快定位到问题。原来我们的服务器上,在输出文件时


间戳的时候,打错了一个字母,把 1 月的 Jan 搞成 6 月的 Jun 了。


六月还没到,这是一个未来的时间戳,浏览器就放弃了缓存。没有缓存,就是导致浏览器一直请求过量数据直到把服务器压垮的原因。


解决这个问题为前端开发在团队中争取到了在更大的技术领域上的话语权,而我们也开始思考,前端作为一个比较新的岗位,我们是不是可以尝试把各种各样的新技术卷入到我们的能力圈里面。


我们的能力圈越大,我们能解决的问题可能也越大,我们的话语权也会越大。


慢慢的,我们一边建设 web 前端开发这个通道岗位,一边趁着定义这个岗位的能力模型的机会,把各种各样边界模糊的能力都放到前端里面来。


比如当时很多网页打开很慢。前端说我的页面没问题啊,后端说我的服务器也没问题啊,那问题出在中间咯,中间是运营商,关我屁事啊?


但是,我们前端是无所不能的嘛。我们开始在页面和脚本里面埋点,做前端性能监控。


当时浏览器还不支持 performance 接口,我们就自己想很多技巧来做各种协议层节点的监控。


比如说通过临时的一次性域名来分析域名解析过程,通过 http1.0 和 http1.1 请求的速度对比来监控 TCP 层握手和通信的性能。


我们使用浏览器插件来辅助提升速度,使用 Flash 来增强表现,我们写各种网络诊断工具放到用户端来定位问题。


越来越多原本不属于前端的技术被放到了我们的关注圈和影响圈里。在问题的解决过程里前端的边界就是这样越来越往外扩展。


我们的手越伸越长,甚至摸到了非技术领域。我们有一次发现,中国有 1700 万盲人不能正常使用网页,这哪行,我们前端是无所不能的嘛。我们一转手就做了网页无障碍化,然后又一转手还去推动了客户端无障碍化,然后一转身我们还成立了一个信息无障碍联盟,把中国最大的几个互联网产品都拉下了水。


说到无障碍话题,这两天 36 氪上有一个视频非常火,叫《这才是 iphone 的最强功能,不接受反驳》,建议开发者都去学习一下,怎么把一个产品做到受人尊敬。


2009 年前端圈子被丢进来一颗重磅炸弹。我还记得 Node.js 发布的时候,前端圈子里大家又兴奋又迷茫。


虽然 Node 主要是一个 Server 端的技术,本质上跟 web 端是在两头。但是由于和前端非常类似的开发语言和技术栈,让很多前端直接就撸袖子写自己的后台应用了。


差不多的时间里面,安卓系统也开始把智能手机低价化,在山寨手机开始爆发的时候,前端们发现我们不但可以写在智能手机上运行的网页,还可以用 HTML5 做跨端的 APP。


2015 年又出了一个超级炫酷的怪胎技术,我还记得第一次在一个 Awesome Day 活动现场听说了 Lambda 这个服务的时候,兴奋的回家就翻墙上了 AWS,写了第一个 Lambda 的 Hello world。


不过当时我还不懂 API 网关怎么连接上去,然后连一个 Hello World 页面都没能发布出来就放弃了。


当然只是放弃了这个 Demo。一转身我就转岗到腾讯云了。


2016 年微信推出小程序,那又是一次前端们可以狠狠的“搞事儿”的时机。前端技术栈几乎无缝衔接过来,前端的技术边界拓展到一个新的领域里面。


后来 2018 年小程序的云开发环境里面居然还支持了云函数,把前面刚发明出来的 node、


lambda 能力给包装到一套解决方案里面,还在里面塞进去了对象存储和数据库这么逆天的玩意儿。


我们的魔爪伸到后端了,颤抖吧后端。


当然今天我们不是要来讲这些过去的辉煌之类的,我想说的是,我们前端开发,从这个岗位诞生以来,边界就一直是在不断衍生和拓展的。


所以我们现在都开始不讲前端了,我们开始讲大前端了。大前端的边界本身也一直在扩展,这几年大家都关注到了,语言层面的 TypeScript,Dart,框架层面的 Vue、Reactact,跨端的 flutter、electron。而我觉得现在更好玩的,赋予前端更多能力,让我们玩的更酷炫的,是那些朝向后端拓展的趋势,那些云时代赋予前端开发者的后端能力,比如这两年的当红炸子鸡,serverless。


十年前我经常有一些新想法,想想虽然前端写一下只要两个钟头,还要去搞服务器搞数据库,算了。


而到了今天,我们有了云函数,有了云开发,我们不再需要非得去弄服务器和写 SQL。


今天我有一个什么好想法,就可以直接在腾讯云的云开发环境上,用免费的云数据库和对象存储来做存储,免费的云函数来做计算,免费的 CDN 来做静态分发,免费的 API 网关来做动态接入和分发。


我只要写好我的云函数代码,然后就等待美好的事情发生,比如明天我会不会红啊。


比如前面有一段时间我儿子在国外,我在国内。我想和我儿子远程玩个在线互动的游戏,我就写了个页面写了个云函数,然后我们就可以开始玩了,这是游戏的二维码,大家有兴趣现在也可以玩。


因为在云开发下做创新需要的计算、存储、分发各种资源唾手可得,所以我其实还做了挺多尝试的,比如疫情期间给志愿者开发信息系统,比如给自己公司的项目做在线实时图表等等,还帮朋友做了一写创业项目的 MVP。这种云能力的补充让我们前端比以往任何时候都更像一个极客。


我知道已经有很多的前端,像我一样,已经在尝试朝这个方向拓展自己的能力边界,让自己变成一个更全能的开发,在云上更自在的释放创意。


但是可能还有更多的还没有看到这个新机会的前端,那我希望通过今天的分享可以让你知道,我们前端的能力边界正在发生新的变化。


借用 Linus 老大的名言来结束,Talk is cheap,show me the code。前端们,到云上来玩吧。

2020-11-30 00:231504

评论

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

腾讯高工内产,Github都没的SpringBoot源码手册

Java spring Spring Boot 框架

惊艳!京东T8纯手码的Redis核心原理手册,基础与源码齐下

Java 数据库 redis 缓存

【实践篇】手把手教你落地DDD | 京东云技术团队

京东科技开发者

DDD Archetype 企业号 5 月 PK 榜 三层架构

ERP已死,秒杀系统称王!阿里巴巴内部「10亿级并发设计文档」

Java你猿哥

数据库 缓存 分布式 消息队列 秒杀系统

盘点一款好用的运维团队协同软件,用过真香!

行云管家

运维 IT运维 协同合作

阿里逆天级调优方案,内部这套Java性能调优实战宝典,堪称教科书

Java 性能优化 性能调优

卧薪尝胆30天!啃透京东大牛的高并发设计进阶手册,终获P7意向书

Java 系统设计 高并发

敏捷项目管理中缺陷bug的跟踪和管理

顿顿顿

Scrum 敏捷开发 缺陷管理 敏捷项目管理 敏捷开发管理工具

阿里技术大佬限产的Netty核心原理剖析手册,看完你不心动?

Netty

校园共享电动车发展现状及未来趋势

共享电单车厂家

共享电动车厂家 校园共享电单车 校内共享电动车

Tomcat处理http请求之源码分析 | 京东云技术团队

京东科技开发者

tomcat container HTTP 企业号 5 月 PK 榜

听听飞桨框架硬核贡献者如何玩转开源!

飞桨PaddlePaddle

开源社区 百度飞桨 PaddlePaddle

CST如何查看哪些 GPU 在线?

思茂信息

cst cst使用教程 cst操作 cst电磁仿真 cst仿真软件

2023年天津等级测评机构有哪些?具体位置在哪里?

行云管家

等保 等保测评 等级 天津

堪称一绝!阿里技术人都用的Nginx笔记手册,应用到架构齐全

nginx

最佳实践:基于vite3的monorepo前端工程搭建 | 京东云技术团队

京东科技开发者

前端 vite Monorepo lodash vue3 vite 企业号 5 月 PK 榜

CISA零信任成熟度模型(译文)

权说安全

英特尔黑科技加持,腾讯应用宝登陆电脑:安卓应用完美移植PC 更有神器辅助

E科讯

从源码全面解析 dubbo 服务注册的来龙去脉

Java 源码 dubbo

如何设计一个自动化测试平台

老张

自动化测试 测试开发 测试平台

CIO视角|平台工程带来的优势与机遇

SEAL安全

IdP 平台工程 企业号 5 月 PK 榜 内部开发平台

Java中synchronized锁的深入理解

Java synchronized

首届百度商业AI技术创新大赛启动 点燃AIGC革新“星火”

百度Geek说

人工智能 百度 AIGC 企业号 5 月 PK 榜

深度学习进阶篇-国内预训练模型[6]:ERNIE-Doc、THU-ERNIE、K-Encoder融合文本信息和KG知识;原理和模型结构详解。

汀丶人工智能

人工智能 自然语言处理 深度学习 预训练模型 Transformer

NFTScan | 05.22~05.28 NFT 市场热点汇总

NFT Research

NFT 热点

防lombok实现一个Getter注解,AbstractProcessor实例

Java你猿哥

Java ssm lombok

GitHub星标126K的京东「微服务进阶笔记」首次开源!好评如潮

Java你猿哥

Java 架构 微服务 微服务架构 架构师

500代码行代码手写docker-设置网络命名空间

蓝胖子的编程梦

k8s 容器网络 ,docker 容器网络方案 容器网络平台

5G和led显示屏有什么关系

Dylan

技术 5G LED显示屏

黄希彤:给前端开发者——云时代前端开发的边界拓_文化 & 方法_InfoQ精选文章