想搞好前端其实并不容易,除了面对复杂且分散的知识面以外,还要紧跟技术发展趋势,吸收更多的衍生框架。本章仅从作为UU跑腿-同城即送行业从事多年的Web前端开发者视角,解读前端未来发展趋势。
移动端能力放大
以前端技术为核心的开发方式,在移动端越来越成为主流方式。
小程序生态的崛起
无线端一直是前端高速发展的主战场,以近几年的发展趋势可知主要在以下区域:
-
App开发,以React Native为主
-
Hibird的模式,以Cordova为代表
-
小程序,依赖于微信,支付宝等的生态
事实上,上述几个方向的开发,越来越被前端技术占据。在它们的冲击下,原生移动开发将越来越少。
这是因为:开发与推广一个原生App的成本越来越高,越来越难。
原生App总体呈现数量下降的趋势,并且可能未来会更明显。这也是很多公司前端团队规模迅速发展的原因。
从中国互联网络发展状况统计报告2020报告上可以知道,国内App数量在2018年达到顶峰,随后越发呈现下降的趋势,明显受到小程序等的生态的影响。
目前腾讯、阿里、滴滴、美团、支付宝、字节全系列等企业都已经完成了小程序架构的建设。这也就意味着未来几年,会有更多的应用会以此形式野蛮发展。而企业想要提升自己的核心竞争力,必然会注重前端技术的发展。
所以,原生开发人员面临非常严峻的形势。虽然它不可能会消亡,但后面原生越来越会往平台或H5的承载体方向发展,这是一个已经存在的趋势。
跨端能力的增强
随着前端构建技术的告诉发展,优秀的构建框架如雨后春笋涌现,Web应用在跨端方面表现的能力越来越强。一套代码多端通用带来的人效提升尤为明显。越来越多的企业开始转入低成本高人效的跨端领域,以寻求更快的业务发展。
然而小程序只是前端跨端技术的冰山一角。跨端技术比较知名的就是Taro,基于静态编译时的方案。随着鸿蒙OS的推出,未来跨端将成为企业争夺资源的新战场。而鸿蒙OS也率先支持了JavaScript-前端主要开发语言。
随着跨端技术成熟,多应用通信或许成为中大型应用的桎梏。而微前端的话题这几年也逐渐升温,一种将前端整体分解为小而简单的块的模式。这些块可以独立开发、测试和部署,同时仍然聚合为一个产品出现在客户面前。 我们将这种技术称为微前端。
简而言之,微前端都是将巨大的东西分成更小、更易于管理的小部分,然后明确它们之间的依赖关系。我们的技术选择、代码库、团队以及发布流程都应该能够彼此独立地运行和开发,不需要过多的协调。
总之,未来的跨端技术处于且将长期处于多方案并存且不断变化的状态,也注定需要更多的前端研发者投身其中。
PC桌面端入侵
以和Electron为代表的前端技术的出现,意味着前端技术现在也出现在的桌面端中了。
尽管它可能不会成为桌面开发的主流,但它意味着一个极具性价比的可选方案出现,会越来越多的出现使用这种方案的桌面应用。
早在2016年我就主导团队使用Electron研发了前端协同工具-Bomb,几乎支持所有操作系统。借助Node生态能够很好的管理每个人的组件、脚手架、插件等。极大的提高了团队的工作效率和协同协作能力。
它开发出来的东西是跨平台的,意味着开发一次,支持Window,Linux以及Mac系统,可以减少开发桌面端对开发人员的要求,与其寻找原生Win或Mac程序员相比,前端人员显然更好找。
但这不影响前端PC技术的发展,基于此技术的应用越来越多,只是大多数人没有感知而已。阿里云盘、飞书、vscode(专业级)、Slack等都是基于前端PC技术Electron开发的。
前端向全栈的输出
这几年全栈工程师被炒的非常火热,而发展最快的所属Web前端转全栈,因为前端的基础语言是JavaScript,而后端Node的基础也是JS语言,这就为前端研发人员创造了得天独厚的优势。不过Node永远不会取代后端主流语言,至少现在不会。
前端程序员是最接近全栈程序员的职业。想像下,我们抛开团队来说,哪一端的程序员最有可能独立做出一个完整的产品
他们可以使用NodeJS编写后端服务,再编写H5网页或使用小程序,React Native编写一个移动端的APP。
这会产生一个什么样的结果 ?
拥有这两个优势的全栈,就会形成其它技术形容不了的两个重要趋势:
1.前端全栈技术的产物更具有直接使用价值,而非单纯的技术支撑
事实上,这不是趋势,在今天已经成为一个事实了。
很多程序员,包括后端程序员,使用的一些有名的产品,都是基于前端全栈技术的杰作。但可能大家都没意识到:
比如:
- 最有名的博客系统hexo,是前端技术
- GitBook,允许你快速的编写一本电子书
- docusaurus,Facebook出的一个让程序员快速生成自己产品网站的开源产品。
- Gatsby是一个基于React ,用于搭建静态站点的开源框架。
- …
未来可以预料的是,在前端技术的支撑下,类似的杰出的东西只会越来越多,也就是前端会产生越来越多具有直接使用的价值品,而不是和后端一样,更多的是一些支撑框架。
2.前端全栈技术将是个人英雄辈出的最可能方向
如我上面所述,如果不依赖团队,当一个程序员有了一个idea,想独立去实现这个想法,构建一个产品。那谁最有可能独立做到这个事情?
我在面试产品经理的时候经常分享一个点,现在做一个优秀的PM很招。因为产品严重同质化的今天,简单的东西产品小白可以抄,一个多年产研经验的程序员,产品逻辑思维不比任何一个PM差。
更何况现在的UI框架遍地开花,不出UI框架好像不是一流研发团队一样。
有了产品思维,有了UI框架,有了自身全栈技术,他们就可以使用自己的技术几乎去构建每一个方向的产品,无论是后端服务,还是网页,或移动端App,他们几乎都能依靠自己的技术实现,而不是去组建一个团队。这在未来很多年后,都会有大有可为的空间。
很多人为此争议会说,一个人永远做不了三个人活?一个人维护不了?一个人做不精?
这个时候我们评论一个人的标准已经发生了变化。1个人为何要和3个人比?我们对比的是在遇到负责业务和棘手问题时,同为一个人的研发岗位,前端全栈会有更大的价值空间、更多的选择和更好的解决方案。
更多的就业方向
随着前端技术的发展,其就业方向越来越广泛,我估计未来几年前端将划出分水岭,前端岗位的划分越来越精细,垂直领域也会越来越深。
中后台/云服务体系
现在我们已经完全进入了云服务时代,与过往不同,云厂商提供了各式各样的云基础设施,再往后我们进入了Serveless的时代,也就是无服务。
无服务并不是真的没有服务,而是服务由云服务商提供,你只需要关注业务即可。而与Serveless相伴而来的则是FaaS,也就是函数即服务。
不管是Serveless或是FaaS,NodeJS以及JS等前端技术是最合适的技术,特别是NodeJS的冷启动时间在毫秒级,远优于JVM秒级的水准,而对于Serveless来说,按需启动与停止这个点对于冷启动时间有非常高的要求。
在这一点上,虽然有一些争论认为JVM也适合Serveless技术,但从启动时间上来说,无疑是NodeJS更甚一筹。
Web3D/AR/VR等前端图形技术
一线大厂前端技术的发展,一直催动着整个交互体验前进的步伐,用户对于前端交互技术越来越关注。AR、VR、WebGL等领域开始进入发热期,这也是元宇宙的基础(尽管我不看好它)。小游戏在市场上一直像过山车一样,但无疑它是最低成本高营收的行当。
其中就应用场景落地较好的就是支付宝团队,五福流畅的Web3D技术闪爆双眼。其团队也开源了他们的Web3D框架Oasis Engine ,
进一步推动了前端3D技术的发展。
正好我们今年使用Oasis Engine框架做了一个项目,首次使用模型完成整个界面的交互。
并且分享了关于《如何从美术到前端导出高质量的glTF》的文章,有幸被其团队收录到了官网。
UU跑腿,一直比较关注前端技术的发展,过去几年UU给予了前端非常多的资源和空间。未来前端团队也会涉足更多的领域,为用户带来更好的交互体验。也欢迎更多大牛加入我们的团队male@
未来无限想象空间…
我的全栈之路
入职UU的5年中,在组建团队,搞基建的同时(UU前端发展历程),凭借早期掌握的PHP底子和对新技术的热爱,也让我从一个前端逐渐转变成了一个全栈程序员。随着自己全栈项目的研发积累,我在技术上再次发生转变,走了基于Node的全栈纵深之路。先后主导发起的内部工单系统、内网平台、面试系统、招聘系统、营销系统、协同工具等帮助UU最大限度提升人效和加速业务拓展。
直到成立了独立部门-「效能创新中心」Efficiency Innovation Center,致力于通过全栈技术,提供降低沟通成本、提高协作效率的工具和解决方案,助力组织业务发展和目标达成。
多年全栈研发让我总结出几点:
新技术永远在源源不断的革新,但本质并没有太多变化,只是使用它解决问题的形式变的越来越多样化、多元化。
不要局限于一种编码语言,不要把自己定位在一个方向或岗位,一专永远不会耽误你的多能。
学习能力,永远是衡量程序员亘古不变的指标。
**永远保持一个疑问:技术真正是什么?**在你的每个阶段去寻常答案,都不同却又相同。
本文由博客一文多发平台 OpenWrite 发布!
!