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。前端们,到云上来玩吧。
评论