辞旧岁立新年 | 展望前端工程师的2023

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

「InfoQ 年度技术盘点与展望」是由InfoQ主办的年度技术盘点与展望项目,是 InfoQ 全年最重要的内容选题之一。

近日,字节跳动云原生 PaaS 资深前端工程师黄健受邀参与,分享主题为 《展望前端研发工程师的 2023》 。本文整理自黄健于直播中分享的内容。

主题介绍

  • 分享主题:《展望前端研发工程师的2023》主要内容:
    • 第一部分:前端工程师与云原生
    • 第二部分:回顾过去,畅谈未来
    • 第三部分:职业发展,未来前景

第一部分:前端工程师与云原生


大家好,我叫黄健,目前就职于字节跳动的架构前端团队,在这些年的经历里,我非常有幸地亲历PC时代,移动互联时代再到今天的AI/大数据三个大时代,也完整见证了前端技术的高速发展,当然自己作为InfoQ的老用户(我的极客时间里先后买过50多门课),今天也很荣幸地能从一个读者走到台前,来和大家一起分享这个前端展望的直播主题。

主持人:可以介绍下你在字节跳动负责的具体工作吗?

好的,我现在在字节跳动主要负责云原生应用平台方向的技术建设,我所在的团队的全称叫: PaaS 前端研发团队,其实从团队的描述中也可以看出来,我们的团队名称有两个关键词,一个是泛(广泛,通用的意思),另一个是PaaS,这个属于云计算领域的一个专业数据,即“平台即服务”的缩写,具体涉及到的产品包含有kubernetes的基座,微服务框架,制品产物的构建发布,函数计算等平台产品,还有如大数据,消息队列等云原生下的商业应用产品。所以我对自己的定位是:一个在互联网时代下征战多年的前端老兵,也是云原生时代下的技术布道者和实践者,说点有意思的是自己虽然base地在北京,但是因为团队业务遍布国内五个城市,所以我作为出差狂人,也经常在上海,杭州,成都,南京等城市随机出现,欢迎大家可以随时约我线下交流。

主持人:从您的描述里出现了多次云原生这个比较时髦的词汇,那您结合你的专业背景,具体讲讲前端和云原生之间的关系吗?包括当下前端如何应用Serverless?

大家知道,整个云计算的市场伴随着虚拟化和容器技术成熟之后,迎来了他的第一个高峰期,那时候我们谈论最多的一个词叫:上云,即把传统的物理机房,服务器,数据库等都搬到云平台上,这样做的好处是可以普通用户可以通过互联网按需获取各种IT资源,同时无需关注机房搭建,服务器硬件采购,软硬件更新等,并且能做到随用随走,按需付费,成本优势还是非常明显的。也正因为此,在传统企业陆续上云后,新兴企业采用云计算的方式来搭建信息基础服务设施也就成了首选,这时候就迎来了云计算市场的第二个高峰,当然,因为你的平台在诞生之初就是跑在云上,所以这些都会深远地影响你的架构选型,服务部署和运维治理的设计,也就是我们现在提到的云原生了。

主持人:听上去很有意思,可以展开说说吗?

好的,云原生(Cloud Native)是一个组合词,“云”表示应用程序运行于云环境中,“原生”表示应用程序在设计之初就需要充分考虑到了云平台的弹性和分布式特性,天生就是为云设计,并沉淀出最佳实践,所以云原生既是一种构建和运行应用程序的方法,也是一整体套技术体系和方法论,即:生在云上,长在云上,天生为云。如果找个前端同学比较好理解的概念,可以想想我们经常会接触到一个词,叫W3C,他会为我们的网页技术开发提供一系列标准的集合,那在云原生领域,对应也有个组织叫CNCF(云原生计算基金会),他会对云原生的标准给出最权威的定义,同时也会围绕云原生下的技术发展给出最佳实践的指导,并且维护一个厂商中立的开源生态系统,来推广云原生技术,像大家经常听到的docker,k8s,gRPC,prometheus等都是这个生态下的作品。通过将最前沿的模式开源化,让这些创新为大众所用。

主持人:刚才聊了很多都是云计算领域的概念,那同时作为专业的前端工作者,您能具体讲讲前端和云原生之间的关系吗?

我觉得这一个非常好的问题,前几天掘金做了一份2022中国开发者生态报告,里面提到了多数开发者对云原生技术都有接触但了解较浅,每周投入时间在 1 小时以内 ,但是结合我自己的实际工作情况来看,云原生的很多概念已经渗透到了我们很多基建平台中,越是大企业往往封装的越好,真正的做到了润物细无声,这样是我们经常说的,一个好的云计算平台应当是让你感受不到他的存在但是又能真实地解决你在研发链路上的各种问题。

主持人:可以给大家来举个例子吗?

前面我们有提到,云原生不单单是一个产品,而是一套技术体系和方法论的合集,就像我们经常把网页开发的内容概括为:结构(Structure)、表现(Presentation)和行为(Behavior)一样,云原生里也有四大核心要素,分别对应微服务、DevOps、持续交付、容器化,这样都会深刻地影响着我们的开发方式和平台基建。

众所周知,前端工程师现在所接触的技术领域已经不是十年前可以同日而语了,我记得我刚工作那会,前端群里大家经常自嘲为“切图仔”,似乎大家的工作只要在本地完成静态页面样式和交互脚本开发即可,剩下的工作就是把开发后的产物打个zip包发给我们的服务端同学后就宣告结束了。后来我们有了前后端分离的概念,前端同学慢慢地需要自己去完成前端构建产物的部署,有的是推到CDN上,也有的内网平台也会直接挂到静态服务器下面,这时候大家已经会陆续地接触到如:Docker容器,微服务平台,CICD等,这些本质上看已经都属于企业级设施了,这就对应了和云原生的第一次联系,我们作为前端工程师,需要和所有的研发工程师一样,熟练地去使用云原生下的基础设施,而且这些基础设施就是按着我们前面提到的四要素来搭建的,这里我推荐一篇我们团队的博客文章,详细地介绍了前端部署时会遇到的种种平台和细节思考,以上所说为第一个阶段;

主持人:那还有第二阶段吗?

没错, 伴随着node.js技术的蓬勃发展,现在的前端已经慢慢地朝着大前端的概念演进,这里提到的“大”在我们看来有些代表方向,有些同学是朝着跨端发展,在写移动H5应用的同时也会接触到安卓和iOS等Native平台,还有些同学会朝着全栈化发展,用node/golang去包办前后端产品的开发,这些同学从能力模型上看已经很靠近服务端了,所以服务端同学需要用到的工具平台,前端也都需要了解,比如:node的服务如何部署,应用的健康度观测如何做,服务流量上来后如何做扩缩容,线上的白屏化运维如何保障等,这些就是前端和云原生结缘的第二个阶段吧。

主持人:相信很多前端的同学都有听过过Serverless这个词,您在字节跳动也在负责对应平台的研发工作,可以向大家介绍下前端应该如何更好地使用Serverless吗?

这里我可以把它称作是前端和云原生结缘的第三个阶段,Serverless,全称 Serverless Computing(无服务器运算),一般的实现形式为 FaaS(Function-as-a-Service,函数即服务),当然也会包含有BaaS能力(Backend-as-as-a-Service,后端即服务,存储/消息队列/OSS等),这是云计算的一种模型。在 Serverless 概念下,基于事件驱动的全托管计算服务,计算资源会通过函数服务化,屏蔽了运行环境与机器的概念。对于开发者而言,基于 Serverless 的应用部署可以在函数级别快速实现,而无需过多地关心服务器的问题,省略了部署、运维相关细节而步骤,从而极大增加软件开发迭代效率。

比较经典的产品像:开源框架 Midway Serverless 就是一套面向 Serverless 云平台的开发方案,可以使用 Koa,Express 或 Egg.js 作为基础 Web 框架,也提供了独立使用的基本解决方案,例如 Socket.io,GRPC,Redis和 RabbitMQ 等。这样就非常适合前端/全栈开发人员用自己熟悉的语言框架去实现业务功能,同时也可以充分享受云端一体化应用开发体验,代码完成后即可一键部署到Serverless/FaaS的环境中,不用再关心资源配置等细节。所以node+serverless的组合,在未来很长的时间应该都是一个主流趋势。

主持人:字节跳动下的serverless有啥自己的产品或者特色吗?

字节跳动在serverless的投入是非常大的,Serverless 作为云原生下一站,我们在:大规模高弹性,资源高效分配,消费类业务覆盖,轻量级 FaaS Worker(基于WebAssembly 的技术手段实现进程内的函数隔离,可是实现极致短的冷启动时间,函数高密部署),云边一体等都有深度的实践,前端同学不仅参与了平台的搭建,也深度支持WebAssembly  + JS生态能力建设和开发调试套件的维护,我觉得这些对于前端同学职业生涯的中长期发展是非常有益的。目前我们的公有云商业版本veFaaS也开启了公测,欢迎大家了解。

主持人:作为公司的老员工,您是如何亲历字节跳动云原生发展的从0到1的?

字节跳动的云原生发展历程大致经历了 4 个阶段,可以看得出来和云原生官方的推广时间线是基本吻合的,属于比较年轻的实践主体,历史包袱轻,发展脚步快。

  1. 第一阶段是 2016-2017 年间,开始尝试实践 Docker & Kubernetes。

  2. 第二阶段是 2017-2018 年间,公司业务全面实现了微服务化,为后续全面云原生化奠定了基础。

  3. 第三阶段是 2019-2020 年,字节跳动实现了核心业务的云原生化。

  4. 第四阶段是 2021年~至今,字节跳动内所有业务均已经实现了全面云原生化,并且基于云原生基础设施,成功支持了春晚、电商大促等活动,充分验证了其稳定性和弹性能力。

此外, 字节跳动现在也是CNCF的白金会员。我们拥有数十万级容器集群规模应用实践,全面融入全球云原生技术生态,也在为云原生下的开源生态建设,做出持续贡献,我们的明星开源项目:CloudWeGo 在社区中的反响也非常好,包含有goalng和rust生态的各种开源组件,项目累计star数已经破万。

第二部分:回顾过去,畅谈未来

主持人:2022年前端领域发生的您印象最深的事情是什么?

我最近专门关注了2022年JavaScript 明星项目的榜单,也细读了2022 年前端大事记,这些对于前端技术的发展趋势都做了很好的总结,最大的变化应该是大家对于前端明星项目的关注不在只围绕前端流行库的新特性和各种Web应用框架,而是把视角延伸到了如:高性能+开箱即用的 JS 运行时,更丰富多彩的工具链生态和全栈型项目, 其中用更多原生语言来实现前端工具链中似乎已经成了行业均认可并且在广泛实践的方向,像年度榜单冠军Bun.js使用了 Zig 的低级语言从头开始实现数百个 Node.js 和 Web API,内置构建打包器,转译器和包管理工具,战斗力还是挺爆表的。Turbopack 增量打包工具发布伴随着Next.js 13的发布更是一鸣惊人,大家从未如此在前端工具链上投入如此高的关注,这些生态里越来越多的工具都在经历从被JS实现到被Rust重写,效率都在数倍乃至数十倍的提升,这就要求未来前端的技术演进不单单是需要关注工具应用层,而是要对计算机系统,编译原理,新式编程语言,架构设计能力提出全新的挑战,概括一下就是:前端工程师在拥有丰富武器库选择的同时,需要更主动激进地去探索更多工程上的极限!

当然,降本提效也是大家都在聊的一个主题,前端工程师应当要持续性地提升团队经营意识,如何更好地为企业创造价值(省钱 vs 赚钱),在这个背景下,我会比较看好全栈型项目的持续推广使用,比如:Next.js 开发商Verce在2021年就获得1.5亿美元D轮融资,估值超过25亿美金;Figma被Adobe 200亿美金受过收购,这些团队中的核心成员有很多都是明星前端,这也给前端团队未来的经营起到了很好的示范作用:不仅可以挑战新式技术,还能持续创收。

主持人:以前我们开玩笑说“前端一天一个新框架”、“前端难度18个月翻一番”,您是怎么看待这个问题的?

这句话应该是经典摩尔定律在前端领域的描述吧,我自己在上网的时候也经常看到这句话,我觉得可以一分为二看,一个就是前端的技术迭代确实非常快,各种技术推陈出新,我觉得这也间接地证明了这个方向本身还是非常活跃的,还在处于上升期,如果大家都不在讨论新东西了,那反而需要想想是不是到了行业发展瓶颈期了。

另一个就是大家普遍关注的生存问题,在如此变化剧烈的环境下,如何更好地实现个人发展,我可以介绍下我自己的适应经验,就是技术变化虽然快,但是这个难度更多体现在是设计原理上,应用层的使用一定是倾向于越来越简单,不然针对新生代的开发者会很难大规模地去推广使用。

因此我觉得可以把知识领域做些细分,做好内外兼修,像基础知识这类属于内功修炼,任何时候都不会过时,底子打的越牢固,适应能力也会越强,所以要戒骄戒躁,持续学习;再就是领域知识,这里面又分通用和专用,比如:前端工程化,图形可视化,Web性能优化等就属于通用知识,一般也和大家负责的业务方向紧密相关,这些可以做些深入研究,多积累行业前沿经验,争取成为该领域的专家;最后就是专用知识,也是大家平常讨论最多的,如:UI库,Web框架,新出的构建工具等各种轮子,这个变化确实非常快,和日常开发写代码也最为紧密,我理解为是“术”,一般按需学习,主要考验的是动手能力,优先满足实际业务需要,熟练后大家的竞争差异相对较小,如果愿意折腾可以多看看里面一些比较好的设计。

主持人:但从近几年发展来看,前端新趋势是否逐渐变少并开始稳定?

我觉得每一个开发者都是需要去了解当下的技术新趋势的,就像我们每年都会去关注Tiobe的编程语言排行榜一样,它代表的开发者的技能能否跟上趋势,或是否有必要作出战略改变。近几年前端新趋势变少,我觉得是行业普遍认可前端开发已经抵到达了深水区,当跑马圈地到达一定阶段后,大家就会慢慢地走向务实,从扩张模式重新回归到精耕模式,关注点会逐步放回脚下,把之前70分的工作往90分推进,更加注重极致性能,用户体验和效率提升这些老生常谈的问题,也会更加注重投入产出比。

主持人:目前跨平台比较成熟的、值得推荐的框架有哪些?您认为还有哪些框架非常有潜力可能会在未来被大家熟知或者使用的?

跨平台一直以来都是个比较大的概念,专业术语叫:Cross-Platform,直译为跨平台,也叫跨端,其本质目标都是一样的,就是希望能做到“一次编写,处处运行”(Write Once, run everywhere),原理上基本就是提供一个标准化容器,这个容器是跨平台的,屏蔽所有系统底层差异,封装好系统调用,并对外提供了统一的 API。最典型的例子就是我们的浏览器内核Blink,好处就是让我们写的页面只要是按标准规范的实现,就能同时跑在多个平台下。

目前跨端的概念发展最快的应该是在移动端领域,从早起的hybrid,React Native再到现在的Flutter等,技术生态也一直在持续演进,所以如果说要推荐,我觉得还是要结合自己的业务发展阶段和使用目标去看,我更倾向于介绍下如何去提升框架的选用标准,开发者自己做加权分,而不是具体介绍哪一个具体的框架,如下可做参考:

  • 一次学习,处处编写
  • 极致性能
  • 技术架构的先进性
  • 规模上量后的代码可维护型
  • 高度化的UI组件定制能力
  • 二次开发和企业定制能力
  • 开发资源丰富,社区活跃度高;

跨端框架的发展趋势和潜力有几点可以关注,一个是这几年桌面应用开发的重新回暖,像桌面级的跨端开发框架我觉得热度会持续走高,这里面就包含成熟的electron和新起之秀Tauri;

第二是结合国内的现状,小程序作为H5页面形态的补充,大有持续发展的趋势,围绕小程序开发的开放式跨端跨框架解决方案我觉得还是比较有潜力的;

第三个是字节跳动内部现在做的一些探索,用纯Web 技术栈去绘制 Native UI 的高性能跨端解决方案,重点围绕全屏和半屏页面的实现,比如:大家在抖音中看到的购物商城,世界杯专题,新年活动等都是用的这类方案做的实现,主打灵活和性能;最后是原生语言自身的演进,声明式API,响应式设计,组件化,函数式编程这些前端领域已经非常主流的方案同样也在影响移动端UI方案的进化,像iOS的SwiftUI,Android里的Jetpack Compose都是值得去长期投入的方向。

主持人:您是否在过去一年中使用过微前端相关的技术? 经常采用的微前端方案有哪些?请老师说说微前端的趋势?

关于微前端技术我们是在深度使用中,像在字节跳动内部的云计算平台中,从2021年开始改造到今天,目前已有了130个子应用的接入,我们的自身体会是微前端不只是一门具体的技术,而是整合了技术、策略和方法,可能会以脚手架、配套工具和规范约束等等成体系的形式综合呈现,算是一种宏观上的架构,业内也有single-app,qinakun,microapp等,各有千秋,只要适用当前业务场景的就是好方案,所以大家要把重点回归到微前端需要解决的问题上:因为微前端的使用不只是一门具体的技术,而往往是一套体系,所以大家可以更侧重关注一下如何将微前端的全套体系和自己公司的基建做好结合,才能最大程度地释放前端的潜力,具体会包括有下面内容:

「治理体系」 简单看可以视为一个上线管理平台 + 上线发布流程,包含应用声明周期管理,依赖管理;

「运行时容器」 容器承载着主应用,通过在主应用中注册子应用的方式来实现微前端,也可看做是一种runtime的方案,像我们感知最明显的js运行沙箱,css的隔离,路由的加载卸载,应用通信都是在这里面完成。

「开发配套」 给开发者提供完整的文档指引,脚手架和发布平台,方便应用的快速部署调试。

「微物料」 微物料将微前端的粒度级别从应用级别延伸到了组件、函数级别,同时也可以让各个接入应用可以共享平台下的生态能力;

结合上面所说,可以看出来好的微前端方案都应该在上四个维度展开建设,目前以经典路由分发+资源处理的主子工程方案使用是最成熟的,开山派的single-spa,阿里的qiankun,字节跳动的garfish都是在生成环境中验证过的;另外就是以Webpack5的新特性模块联邦(Module Federation)为代表的去中心化方案,多个独立构建的应用之间可以动态地调用彼此的模块,轻松地拆分应用,真正做到跨应用的模块共享也是业内大量实践的。

其次还可以关注下基于 Web Components 的微前端方案,核心是组件化的思维,以组件加载的方式将微应用整合在一起作为微前端的一种手段,如果对浏览器运行环境无要求,业务也是全新开发的话是可以去尝试一下的。

关于微前端的趋势,大家可以关注一个点就是微前端的概念是出自传奇软件大师马丁•福勒(Martin Fowler),他也是微服务的概念的提出者,所以关于微前端其实也可以理解为是:用微服务的思想来开发前端工程, 那微服务中很多的设计的思想都是可以借鉴过来的,比如:

  • 更完美的应用隔离(容器运行时)
  • 更完善的应用健康度观测(观测治理)
  • 更高效的应用加载卸载(编排调度)
  • 更完善的应用间通信(消息队列)
  • 更精细的微前端访问治理(流量网关)
  • 更快速的前端展现(边缘访问加速,容灾建设)

主持人:现在公司或组织都在向云迁移,这是否会给用户界面带来新需求?前端开发人员应该如何做好相关准备?

结合云原生的概念描述,有个观点很重要,就是云原生是一整套利用云计算交付模型的优势来构建和运行应用程序的方法论,但是我们感知最明显的公有云只是其中的一种形式,但类似云的交付并不仅限于公共环境,还包含有私有云,混合云,分布式云等,那作为云原生下的前端开发,我们会面临的第一个挑战就是我们的产物交付,也需要能在多种云形态之间进行平滑的切换,甚至能做到一次编写,处处运行,这个从工程的基建,物料的统一,本地开发工具的完善都有非常大的挑战。举个例子,作为C端用户,可能你一次更新所有的用户都可以快速体验最新的功能,但是作为云计算平台的交付产品,我们的产品原子特性,服务版本都是需要各种灵活定制组合的,甚至不同的客户用到的版本和功能都会有差异,这些就对我们的产品研发有很高的要求了。

另一个就是增质提效了,云计算的平台其实非常类似B端的站点开发,对于组件的丰富度,代码逻辑的抽象都有很高的要求,而且一旦有了异常会直接影响用户的功能使用甚至经济收益,这些对于页面的容错性要求也是极大的,用户可能会因为你的一次故障而彻底抛弃你。前端人员的最大准备应该是要适当跳出前端视角,从云计算开发工程师的视角去思考我们做的事情,按云产品的交付标准去打磨产品,不要抵触领域知识的学习,同时也能真正做到从开发到上线都能云原生化,积极融入业务。另外就是云计算的市场空间非常大,行业中的可互相学习的产品也非常多,还是要保持积极开放的心态,多体验多交流。

主持人:这两年我们看到Rust 工具融入前端生态,比如SWC、Turbopack,那么您认为前端工程师需要学习这么一门新语言吗?

在前面聊到的2022年回顾里,我提到了一个概念就是:前端工程师在拥有丰富武器库选择的同时,需要更主动激进地去探索更多工程上的极限! 目前的行业趋势大家也不难发现,更高性能的TypeScript / JavaScript 转译器已经尝试在用第三方语言实现,例如:基于Rust实现的SWC,基于Go实现的ESbuild等,给前端生态带来了全新的活力。字节内容,我所在的团队也在加大对于Golang,Rust语言的基建。通过 Rust 自研 JavaScript 底层工具链, 实现倍速级别的性能和开发体验提升已经作为团队的一个技术方向在推进落地,从行业趋势来看,Vercel 和 Rome Tools 两家明显公司也在使用 Rust 整合整套工具链。所以,未来前端工程师在稳住JavaScript基本盘的同时,需要再深入学习1-2门高性能语言已是行业共识,学起来!

主持人:在您看来,未来TypeScript会超越Javascript,成为新的前端标准吗?

TypeScript 是种很棒的语言,显著改善了开发者体验。它还新增了安全层,促进工具质量提升,技术生态也欣欣向荣,网上之前有做过统计就是八成以上的用户在使用过 TypeScript 开发项目后都表示会继续使用,说明语言的满意度是非常高的,而且是真正地解决了开发者的很多痛点。但是抛开语言层,TypeScript本身也不能说就是完美的,比如性能一直以来都是 TypeScript 最受诟病的问题。由于TypeScript 是自实现的,而且这种实现非常复杂,它的类型系统本身可以算是种迷你编程语言,这导致类型检查的速度极其缓慢,另外它自身也存在很多缺陷,比如allowJs 配置选项、any 类型和 intersection 类型,其类型系统根本无法保证代码的类型安全。

所以我更看好TypeScript 和 ECMAScript的标准互相对齐,持续兼容,而不是互相替代。这里额外推荐两篇文章大家可以去看看:《I’m porting tsc to Go》、《下一代前端语言之争,JavaScript 要被新语言反超?》

主持人:前端从业者需要掌握哪些工程化技术?

广义的前端工程化: 前端工程是软件工程的一个子类,目的是将软件工程的方法和原理运用在前端开发中,最终实现 高效开发有效协同质量可控狭义的前端工程化: 前端工程是指将开发阶段的代码转变成生产环境的代码的一系列步骤,主要包括:开发构建,CICD,Devops,部署发布,错误与性能监控,自动化测试等。

综上:需要覆盖从开发到线上的完整流程,尽量做到开发快,测试准,部署稳,同时做好对应的配套平台建设。 前端工程化的的最佳实践网上都可以找到很多公开资料,对于这块各个公司都非常愿意拿出来交流,我自己也经常关注InfoQ的专家主题分享,收获挺大的。

主持人:您如何看待WASM在未来的发展趋势?我们前端从业者需要掌握这门技术吗?

WebAssembly (缩写 WASM)是一种可运行在现代网络浏览器中的新型代码,它的设计目的不是为了发明一种新的编程语言,而是为如 C、C++ 和 Rust 等语言提供一个高效的编译目标。它在安全的、可移植、轻量化、高效率的虚拟机沙箱中执行,并且可以在不同平台上实现接近本地的运行速度,具有天然的轻量、安全、快速等优势。

在浏览器端,它主要适用如下场景:

  1. 将 C、C++、Rust 等高级语言编写的程序移植到浏览器,例如Photopshop的在线版,Figma等;

  2. 图形图像处理领域,如:文件解析,加密处理、数据可视化等对Web应用有较高性能的提升场景;

  3. 音视频编解码等,比如FFmpeg 与 WebAssembly 实现纯前端视频截帧这种流媒体下的解决方案;

不止于浏览器,还有云端环境:

值得一提的是,WASM的轻量级、安全模型、隔离性使得它在广泛的环境中都可以使用,只要需要提供一个符合WebAssembly标准规范的虚拟机环境,从边缘云到 IoT,再到函数计算领域,都可以作为类似docker的轻量级替代方案来使用。云原生社区最近发布了一篇《2023 年 WebAssembly 技术五大趋势预测》也是非常值得读一下的。

作为开发者,我一直有个观念就是:项目里我可以不用,但是技术上我不能不懂!

主持人:您认为在 2022 年及以后,前端开发人员需要具备一些虚拟现实 (VR) 和增强现实 (AR) 的技术知识吗?

这个概念目前还是比较前沿的,我可能没法直接从技术角度给出分析,但是可以看看目前资本的走向和政策引导趋势,2022年以来,华为、三星、索尼等大厂纷纷在 AR/VR 终端和各类设备中持续布局,期待新产品的推出提升使用体验,推动硬件渗透率提升。据统计2022年全球 元宇宙 产业共发生了704笔融资,总金额达868.67亿元。伴随重量级厂商入局, VR/AR产业生态日益成熟,加之技术迭代发展、内容生态扩容、产品出货量增长;

国家和地方层面持续推出激励政策

在政策指引方向,据统计,我国有15个省市政府出台了29项元宇宙专项扶持政策,市场对Web3在传统互联网升级的重要作用和技术方向的创新性的认识已经逐渐清晰,未来3年元宇宙/Web3将可能出现DAU超过1千万的区域性大规模应用,提前做好布局准备。

综举个例子,过去疫情期间,大家都会越来越多地采用云上的方式解决实际生活中的实际刚需问题,比如:线上租房看房,AR试穿鞋子衣服,家庭装修效果预览等,这些都是作为实体行业的补充增强,可以考虑朝VR/AR的赛道做些转型尝试,但是需要保持足够的热情和耐心。

主持人:2023年前端技术领域您判断会出现哪些比较重大的变化?对于前端从业者在 2023 年可能面临的最大挑战会是什么?****

我自己比较关注的几个方向:

  1. 人工智能(AI)应用加速,慢慢地从幕后走向台前,由于 AI 变得更容易获取、成本更低,人们对 AI 的应用正在加速。 无论是在分析最新数据方面,还是在如何最好地处理问题给出建议方面,AI 都能帮助人类理解这一切。前阵子,AI聊天机器人ChatGPT爆火,能够写代码,修复bug甚至写小说,推出五天直接突破了100万用户,也让其母公司openAI的估值翻了一倍,还有github copilot和开发工具的深度结合已经让开发者在持续深度使用,未来利用好这些AI基建设施,前端可以更容易地做出更多有创意的平台或产品。
  2. 前端职能泛化,前端开发者朝着全栈开发者的成长会越来越显著。 外部因素,全球疫情后的经济复苏,企业更加注重降本提效,用更少的人办更多的事。内部因素,伴随云基础设施的完善,多语言的探索尝试,开箱即用的一体化框架持续强大,开发者自身也愿意更前一步,逐步去适应产品开发的全流程,从界面到接口,从架构设计到代码落地,从自动化测试到运维等等,拥有全链路技术有益于技术的闭环,提升个人能力和性价比。
  3. 越来越多的前端明星产品会由系统级原生语言来实现。 2022年可以看作是高级语言在前端工具链大放异彩的一年,前端对于高性能系统级语言的学习热情也在持续走高,大家也不限于隔着各种运行时去和系统做交互,相信到了2023年随着基础层能力的不断补齐,在平台层、业务层,前端的创造力都会被更大的释放,会有更多精彩的作品被打造出来。
  4. Serverless 的概念会越来越被接受更多的Node BFF 应用会优先跑在Serverless平台上,各种web框架在特性更新也会持续加大针对于Serverless的优化,资源成本低,高可用,免运维,开发成本低的优势也会被持续放大。对应的开发者生态如:本地环境,调试工具,应用市场等也会得到持续发展。
  5. 低代码发展呈现齐头并进的局面,面向用户侧,在应用层越来越多基于低代码搭建的场景将被续推广落地,产品会持续变的好用易用;面向专业开发者,低代码引擎类的产品强化会越来越被重视,让上层开发者搭建平台变得更容易更快速,引擎开发者自身也会持续关注能力的不断抽象输出。同时,配套的低代码和无代码云服务也会持续发展。
  6. 前端开发者与世界的联系会越来越紧密, 目前在Vue/React,T39提案,W3C等社区中活跃着越来越多影响世界的中国前端开发者,且大有年轻化的趋势,开发者对于新技术的快速跟进和落地在过年的几年里都有了显著的提升,一线优秀的理念从诞生到验证落地会做得越来越快,未来我们不仅仅是技术的追随者,也会是参与共建者。

更多技术发展趋势:2022年JavaScript生态圈趋势报告、2022年CSS生态圈技术趋势!

参考阿里巴巴的年度词-进,以奋进之心 迎接全新一年。同时也分享一下我们团队的年度关键词,叫突围:走出舒适区,冲出浏览器,不再定位成业务的追随者,需要更主动地去做些产品形态和技术驱动上的革新,让前端开发者在更大的舞台上去体现专业价值。

第三部分:职业发展,未来前景

主持人:在大公司和小公司工作,前端技能上有什么不同吗?

我觉得技能上应该没有本质区别,只是接触到的资源和可以探索的方向不大一样,大公司里的基建一般比较完善,有着很清晰的工程师能力模型以及职业发展规划,所以大家确实在技术视野上要好一些,可以用到的资源也丰富不少。但是也存在一个问题就是人员越多分工则越细,如果自己不主动破局,时间长了就成了流水上的螺丝钉了,需要持续想想自身的独特价值和不可替代性。小公司我觉得大家要多把自身的成长与企业的发展结合好,关注当下痛点问题,在精不在多,用更少的资源办更多的事,同时也可以多主动同社区同行交流,拓展技术视野。

主持人:相对后端来讲,学习前端这门技术会更有前途吗?

任何行业能做到头部的5%,都会非常有前途,从前面聊到的趋势来讲,我们也认为未来前后端的边界会越来模糊,知识体系也会不断的交融。前几年因为行业处于扩张期,无论是新品符合还是用户增长都需要前端去创造产品的形态,在APP端,小程序,H5,企业中后台都存在大量的岗位需求,但是随着行业开始步入平稳期和深耕期,大家需要把工作重新放回工作效率,研发成本和极致性能上,举个例子:如果企业用人资源紧张的情况下,让一个后端的开发者去使用下前端的基建框架,凑合凑合他们是具备上手能力的,但是反过来让前端去临时支持下后端的业务,那上手的门槛依旧不低,最后你会选择用哪个应对方案,结果显而易见。

主持人:有同学问说,前端工作需求很多,老是改来改去,实际工作中也是产品决定业务逻辑,那么相对来说从事底层基础服务会不会更有挑战和职业未来?

这是一个围城现象,外面的人想进来,里面的想出去,很多做基础服务的同学也会经常找我吐槽,会面临如下困境:辛辛苦苦折腾出来的工具或者技术方案推不动,业务侧觉得够用就好,在收益有限的情况下引入新工具会带来额外的成本,服务写好了还得做培训当客服,做底层方案很难直接共享到爆款业务快速增长的红利,做了好一阵子的技术方案结果社区出来了个更好的直接就被降维打击了等等,其实很多从事底层的基础服务的同学也时常想着回业务中去。

解决思路:工作不分高低贵贱,重点还是要关注当下的痛点问题是什么,适合用哪种方式去解决,解决过程中技术可以带来哪些提升亮点,无论是技术还是业务只要能持续提升标准,都是非常有挑战的。

主持人:零基础小白应该怎么学习前端才能少走弯路?

1.多看多练,一万小时定律是绕不开的,看书,看视频,看文章可以交替着来,但是一定要有个完整的知识图谱。

2.多聊多问,与社区一同成长,我自己也是非科班出身,但是非常感谢一路过来指导过我的很多前辈;

3.找到自己的擅长方向,尝试做出有自己特色的代表作品,在未来的发展中会有加分项;

主持人:以老师见过的一些例子或自身经历来说,我们如何成为一名优秀的、出色的前端工程师?有什么特定的技能或特质可以让我们成为一名强大的前端开发人员吗?

  1. 不设边界,保持学习的热情,多折腾,前端工程师中工程师的特征要能被持续放大;
  2. 持续学习,尤其是关注基础知识修炼,当初因为快速入门而淡忘的知识,未来也会随着时代的发展被要求偿还;
  3. 学好英语,发现更多的机会,在更大的舞台上去展现自我;
  4. 劳逸结合,未来的道路很长,身体才是革命的本钱 -《小妖怪的夏天,妈妈唠叨》。

主持人:如何在一门技术上做到精通?比如深入理解一门框架工具入React.js?

推荐一下费曼学习法和番茄工作法,然后把一个知识点的来龙去脉都彻底弄清楚;

主持人:前端工程师还应具备哪些出色的 “软技能”  ,例如沟通和团队合作?

1.良好的沟通表达: 前端经常处于多个业务的交叉点上,天然具有连接器属性,需要增加自己的表达沟通能力;

2.保持积极乐观: 对事情的不确定性保持乐观,你会更愿意去尝试,才有更多收获成功的可能,努力走出第一步;

3.做事不设边界: 很多问题从前端界面暴露出来,但是最后的解决往往是在后端,数据或者产品侧,但是一定不要抱着不是我的问题我不管的思想,始终坚持自己也是产品的一部分,要为最终结果负责;

4.坚持写作分享: 文字沉淀和口头表达能力未来都是为职业发展过程不可或缺的能力,甚至是加分项;

5.开卷有益:  短视频时代都是碎片化的信息找人,可以静下心来,多选些好书精读一下,推荐:《软技能2:软件开发者职业生涯指南》

主持人:新年新开始,老师对正准备跨进前端的技术人或者正在前端领域工作的技术人们有哪些寄语或者建议呢?

过去的2022年是个非同寻常的一年,相信大家都感受到了近几年来比较严酷的外部环境和业务挑战,不过套用一句时髦的话来说就是“感觉辛苦,是因为你在走上坡路”,新的一年我们一起出发,未来加油!

相关链接

  • 字节跳动架构前端团队:https://juejin.cn/team/6984296204297306148/posts
  • 稀土掘金2022中国开发者生态报告:https://juejin.cn/post/7184284976702521401/
  • 架构前端部署实践:https://juejin.cn/post/7017710911443959839
  • 火山引擎云函数产品:https://www.volcengine.com/product/vefaas
  • CloudWeGo企业级云原生微服务架构:https://github.com/cloudwego
  • 2022年JavaScript 明星项目:https://risingstars.js.org/2022/en
  • 2022 年前端大事记:https://mp.weixin.qq.com/s/HfgifbdzBSOZkDb0ru0XsA
  • 2022年JavaScript生态圈趋势报告:https://2022.stateofjs.com/en-US/
  • 2022年CSS生态圈技术趋势:https://2022.stateofcss.com/en-US/
  • I’m porting tsc to Go:https://kdy1.dev/posts/2022/1/tsc-go
  • 下一代前端语言之争,JavaScript 要被新语言反超? :https://www.infoq.cn/article/4Et0wIAxWFbVez5wbMCC
  • 2023 年 WebAssembly 技术五大趋势预测:https://thenewstack.io/webassembly-5-predictions-for-2023/
  • 前端能力学习知识图谱:https://roadmap.sh/frontend/
  • 工程师软素质发展与提升:https://weread.qq.com/web/bookDetail/08e32ef071dd088208e841f
2023前端十大 Web 趋势 因此,我们可能会看到开人员转向对 SSR 更友好的解决方案,例如将实用工具优先 CSS(例如 Tailwind CSS、UnoCSS)与预定义的 UI 组件(例如 DaisyUI)配对,使用 CSS 模块等其他同样流行的替代方案,或者选择零运行时 / 编译时 CSS-in-JS 类方案(例如 vanilla-extract、linaria、astroturf、complied 等)。但随着以这些解决方案为基础的元框架的快速兴起,可以看到应用程序正在明显从客户端渲染(CSR)转向服务器端渲染(SSR)。 阅读详情

相关推荐

人物访谈|扎根社区的工程师,月影的前端人生

嘉宾介绍:娱乐圈有艺人"歌红人不红",文学界也有作者"笔名胜原名"。提起吴亮,大家可能更熟悉他的网名——月影。月影是前端领域当之无愧的技术前辈,同时他又是扎根社区、心系社区的开者。2...

字节跳动技术团队官方博客 2378

2023下半年广泛应用的前端技术

未来的 Web 应用程序将能够更好地融合 Web 和原生应用程序的优点,并能够更好地提供离线访问、推送通知和本地存储等功能。此外,Progressive Web Apps 还将更加注重安全性和可访问性,以便于更多的用户能够享受到 Web 应用程序带来的便利。此外,前端框架还将更加注重跨平台和跨设备的兼容性,以便于开人员能够更好地应对不同的设备和操作系统。未来的 Web 应用程序将能够更好地理解用户的需求和行为,并能够自动地做出相应的响应。总之,未来的前端技术将更加注重性能、交互性和智能化。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 3186

字节三年,谈谈一线团队如何搞工程化

大厂技术高级前端Node进阶点击上方程序员成长指北,关注公众号 回复1,加入高级Node交流群哈喽大家好,我是Range。短暂的春节假期结束了,又该回来搬砖生活了。前端工程化,不管是在实际工作还是面试中,都是无法回避的一个话题。今天带来字节团队一篇关于前端工程化的文章,详细的介绍了作者所在团队的工程化演进过程。感兴趣的同学可以仔细研究下,最好是能结合自己所负责的系统来分析下,能不能把一些...

程序员成长指北 243

2023前端领域流行的新技术

前端人员应该始终关注这些新技术,前端人员应该尝试学习和掌握这些新技术。并在适当的时候尝试将它们应用到项目中。新技术有助于提高工作效率,提供更好的用户体验,最重要的是新的技术能确保我的技术水平始终处于行业的前沿。我一直关注前端技术的展。近年来,前端技术生了很多变化,出现了许多新的框架、库和工具。

qq_34082921的博客 4724

2023前端流行什么技术和框架了?

2023前端还是继续围绕着React和Vue这两大框架展开。TypeScript的普及将提高代码质量和可维护性,而WebAssembly和PWA的应用或许将为前端带来更多的可能性。无论是新技术的兴起还是现有技术的进一步展,前端者们都将需要不断学习和适应,以保持与时俱进。

黑马程序员官方博客 1691

2023年关于前端展趋势

在数字化时代背景下,前端者需要紧跟技术展趋势,不断学习和创新。在掌握现有技术的基础上,关注新兴技术的动向,以适应日益变化的市场需求。同时,注重跨平台开、数据安全和隐私保护等方面的能力培养,努力为用户提供更优质的产品和服务。只有这样,前端者才能在数字化时代中挥更大的作用,为企业创造更多的价值。

夜空孤狼啸的博客 2689

2023前端必会技能

同时,具有较强的学习能力和theadth 不断学习新技术的习惯,也会成为区分一名优秀前端工程师的重要因素。- TypeScript:TypeScript 会成为前端类型的事实标准,掌握 TypeScript 的使用会成为硬性要求。- Vue / React:Vue 和 React 会成为主流的前端框架之一,需要熟练掌握其中一种或多种框架。- HTTP / Web APIs:理解 HTTP 协议和常见 Web APIs 的使用会是基础能力的一部分。- 具有较强的自我学习能力,能跟上前端技术的展步伐。

wuxiaoying888的博客 1056

2023前端展趋势,这几个点你必须知道

在bit.dev平台中(或在你自己的服务器上),可以为不同的团队远程托管和组织组件,以便每个团队都可以控制自己的组件开。当CPU执行机器指令时,会在控制存储器里寻找与该机器指令对应的微程序,取出相应的微指令来控制执行各个微操作,从而完成该程序语句的功能。因为有视觉上的表现形式,UI组件更容易理解。前端Web应用中的组件,是指一些设计为通用性的,用来构建较大型应用程序的软件,这些组件有多种表现形式。很显然,这里的“组件”是一个很泛的称呼,所以有必要指明我们想要表达的,在前端Web应用的语言环境中的意思。

xuezhangmen的博客 1423

前端已死? 2023前端十大 Web 趋势

点击“开者技术前线”,选择“星标”让一部分开者看到未来作者 | Robin Wiruch 来自|infoQ 译者 | 核子可乐 策划 | 丁晓昀 虽然就个人观点,我觉得 Web 开的前景已经好几年没什么进展(2016 年至 2021 年),但在刚刚过去的 2022 年中确实又猛窜了一波。在本文中,我想跟大家聊聊自己看到的最新 Web 开趋势。相这波浪潮会继续激 Web 开者...

开发者技术前线-DevolperFront 3077

2023前端主流技术趋势

node从7,8年前的爆火,到现在的不温不火,前端语言介入服务端这个命题似乎现在是越来越清晰了。同时对于单个CI的构建步骤,解决每台机器,每个人都要单独构建的问题,还提炼了类似store的方案,脱离了构建环境,只跟项目绑定,当然这个方案是否使用要看你自己,毕竟原理是把构建产物放到第三方储存,而第三方又不是一个类似npm的开源机构。最先说的肯定是AI,22年末,23年初的chatgpt让AI话题火的一塌糊涂,同时也被认为是一次重大的技术革新,技术革新带来的就是重塑,一切都要被重塑,你的职业,你的工作。

CamilleZJ的博客 568

2023前端十大 Web 展趋势

很长一段时间,Web 开的前景似乎没有什么进展(2016 年至 2021 年),但在刚刚过去的 2022 年中确实又猛窜了一波。

技术专家 1万+

2023前端趋势:Vue 3、React 18与WebAssembly

**并模式(Concurrent Mode)**:这是React 18中最引人注目的新特性之一,它允许React应用更有效地处理多个任务,改善了应用的响应性和性能。- **更好的TypeScript支持**:Vue 3从一开始就设计了更好的TypeScript集成,为开者提供了更强大的类型检查和编辑器支持。- **自动批处理**:在旧版本中,状态更新可能会导致多余的渲染。- **性能提升**:Vue 3进行了重写,优化了虚拟DOM的实现,并引入了更有效的组件挂载和更新机制,从而提升了性能。

2301_79507619的博客 1134

2023到2024年:前端展趋势展望

本文探讨了2023年至2024年之间前端领域的展趋势。我们将关注以下几个方面的变化:无代码/低代码开的兴起、WebAssembly的广泛应用、跨平台技术的展、人工智能在前端的应用以及用户体验的不断优化。随着技术的飞速展,前端在推动互联网与移动应用的展中起着至关重要的作用。2023年至2024年期间,前端领域将继续经历许多令人激动的变化和创新。本文将探讨当前和未来一年的前端展趋势,帮助读者了解行业的最新动态。

sdgfafg_25的博客 3278

2026年前端面试题汇总

最近面试被打击的体无完肤,于是把面试题记录下来分享一下。vue真是必问框架,八股文该背的还是得背!

sun_qqq的博客 14万+

2023前端的八大趋势,值得你关注下

随着新年的到来,许多人制定了提高自己和工作的决心。对于前端人员而言,跟上最新的潮流趋势是成功的关键。特别是在经济不好的情况下,很多科技专家在最近一个季度内被解雇,这更加强调了这一点。在2023年,有许多令人兴奋的展趋势值得关注。在这篇文章中,我们将会了解2023年前八个前端趋势,并探讨它们如何帮助您建自己的作品集,并吸引雇主的注意。1、JamstackJamstack最初是指JavaScr...

前端达人 1603

2023前端者必学的五大技术】

通过选择适合的编辑器或IDE、配置管理工具、自动化构建与部署、利用开者工具和调试技巧以及实时预览和调试等方法,可以进一步优化前端环境,提高开效率。对于常用的前端框架(如Vue.js、React等)和工具(如Webpack、Git等),深入理解其原理和使用方法是提高工作效率的关键。通过选择合适的工具和技术、采用最佳实践、持续学习和改进,我们可以进一步优化前端环境,提高工作效率和代码质量。将前端代码集成到持续集成(CI)系统中,并配置自动化的测试和构建流程,可以快速检测和修复问题,保证代码的质量。

都会一点点的博客 925

2022 年前端趋势总结与 2023 前端规划

PS:本来应该在 2022 年交付的这篇文章,受阳了的影响,延迟到了 2023 年。照旧,本文没有任何的数据支撑,只是总结自己的理解、社区上的趋势以及自己的探索。类微前端:丰富与灵活的各类模式与 5 年前相比,微前端及类微前端模式已经灵活多变,无法简单使用一篇文章来介绍。但是,总体而言,我们可以大致划分四类:微内核模式。即胖 vendor + 插件式的瘦组件标准微前端模式。各个应用、组件完全独混...

Phodal's zenthink 969

来喽!2023前端面试新重点,阿里P8大佬爆肝整理!

2023跳槽季,扑面而来的“前端已死”浇灭了很多人的热情。前端真的已死了吗?当然没有。前端已死之所以流行起来,无非是因为前端市场更卷,面试更难。不管原因如何,想“卷出重围”的关键只有一条:了解市场需求,定向提升自己。我今年也参加了几场面试,再结合身边朋友们的反馈,2023年的面试需求走向了一个重点:创新。和以往不同,面试官的考察点变得更具有创新性。最基础的八股文也变样了,它和框架搭建、设计模型...

LuckyWinty的博客 639

2022大前端总结和2023就业分析

大家好,我是若川。我持续组织了近一年的源码共读活动,感兴趣的可以点此扫码加我微lxchuan12参与,每周大家一起学习200行左右的源码,共同进步。今天给大家分享一篇好文。本文首CNode社区、SegmentFault、稀土掘金和Node全栈公众号,本文版权归作者所有,未经作者同意,禁止转载。我在年前给掘金平台分享了《2022年热点技术盘点》的前端热点,算是系统性的梳理了一下我自己对前端...

u012384510的博客 2525
上一篇: Monorepo 下 Git 工作流的最佳实践
下一篇: 火山引擎推出一站式小程序监控方案
字节跳动终端技术
博客等级 码龄7年 206粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值