“20年前,前端有过一个最爽的时代,但那时前端是像BUG一样的存在”,11月29日,由腾讯云与微信联合主办的第二届“小程序·云开发”技术峰会现场,腾讯云TVP、前端开发黄希彤现场分享了如何前端开发转到云上开发的发展历程。
作为腾讯历史上首个专职前端开发,黄希彤回顾了20年前的前端工作场景,那时候前端用Dreamwaver编辑静态网页,不用自己写脚本,普通前端用拖拽生成页面,高级前端则利用HTML+CSS。后来有了动态网页的提法,即DHTML(HTML+CSS+JS),前端开始慢慢接触后端。
在黄希彤的前端生涯里,有一件事让他印象深刻——某天腾讯一批服务器崩溃了,来自全国、远超常规的访问流量将服务器压垮。一开始他与其他同事认为这是DDoS分布式拒绝服务攻击,但却完全追踪不到攻击来源。
后来通过查验代码,发现问题出在输出文件时间戳的时候,打错了一个字母,把1月的Jan写成6月的Jun了。因为这是一个未来的时间戳,浏览器放弃了缓存,导致浏览器一直请求过量数据直到把服务器压垮。这次事件让黄希彤意识到,前端是不是可以尝试将各种各样的新技术融入能力圈之中?能力圈越大,能解决的问题可能也越大,属于前端的话语权也会越大。
此后,黄希彤针对页面打开缓慢的状况,开始在页面和脚本里面埋点,做前端性能监控。例如通过临时的一次性域名来分析域名解析过程;通过http1.0和http1.1请求的速度对比来监控TCP层握手和通信的性能;使用浏览器插件来辅助提升速度;使用Flash来增强表现;把各种网络诊断工具放到用户端来定位问题……
“越来越多原本不属于前端的技术被放到了我们的关注圈和影响圈里,在问题的解决过程中,前端的边界就这样越来越往外扩展。”
一个典型的例子是,有一次黄希彤和团队发现,中国有1700万盲人不能正常使用网页,随后就做了网页无障碍化,同时去推动了客户端无障碍化,并且成立了一个信息无障碍联盟
黄希彤表示,2016年微信推出小程序,前端技术栈几乎无缝衔接过来,将前端的技术边界拓展到一个新的领域。后来2018年小程序的云开发环境里面还支持了云函数,把业界刚发明出来的Node、Lambda等能力给包装到一套解决方案里面,甚至整合进了对象存储和数据库。
在黄希彤看来,前端从诞生以来,边界一直在不断衍生和扩展。如今是属于“大前端”的时代,语言层面的TypeScript、Dart,框架层面的Vue、React,跨端的Flutter、Electron,“大前端”的边界本身一直在扩展。而在云时代,Serverless则赋予了前端开发者后端能力。
他举例谈到,因为有了云函数、云开发的存在,前端无需再去涉及服务器和写SQL,有好想法可以直接在腾讯云的云开发环境上,用免费的云数据库和对象存储来做存储,免费的云函数来做计算,免费的CDN来做静态分发,免费的API网关来做动态接入和分发。
“我只要写好我的云函数代码,然后就等待美好的事情发生“,黄希彤表示。