前端技术是什么?


63f1c251710bc0bdc0e4ca238bf2d790.jpeg(本文4500字,阅读时长 7-8分钟)

在鹅厂,有一个名叫“行家”的平台。目的让在领域深耕多年的行家,给有困惑的小伙伴提供咨询服务。18年,我以一名在前端领域从业15年的身份加入到行家平台至今,已帮助 56 名存在职业发展困惑的前端开发同学,获得超过96%的好评。

起初,加入这个平台的想法很简单。1. 我想了解现实中的一线开发同学,会因何事出现成长困惑。2. 能否通过我的一些思考给大家提供一些思路和帮助。如果把咨询服务比喻成客服,toC的经验告诉我们,真正遇到问题打进客服电话的用户只有10%。那就意味着,有大量心存困惑的前端开发同学,会因各种原因并不会主动发起话题邀约。而通过 1v1 的交流方式,无法做到规模化。于是我选择通过文字,把一些思考写下来。


在平台上,我安排了两个交流话题,1. 解惑前端开发职业发展和职级成长 2. 大前端技术发展趋势和方向讨论。从话题数据中,我发现了一个很有意思的想象。两个话题咨询量 99% 都指向成长。我原本以为在18年行业鼓吹的大前端的大背景下,讨论技术趋势会吸引人,结果实际上少人问津。我不免会怀疑,大前端这个词,会不会是行业发展到某个阶段遇到问题后的一种解决方案?



易被牵引的技术体质

前端技术发展到的特定阶段的问题到底是什么?我们可以从过往的发展中一探究竟。谈谈前端是什么,往后应该怎么走?


前端技术,有挺多非常光鲜的特征,开源社区活跃,学习门槛低,研发效率高,快速试错。我们可以列举出大量技术优势。从web一路走过来,到现在的小程序,再到仿原生的开发方案。能让前端技术站稳脚跟的本质,其实是 一端开发,多端适配。从商业对生产效率的追求上,很容易理解,这个技术特点对成本和效率至关重要。然而技术发展的道路上并不是一帆风顺的。

除了量子力学的0和1,任何技术都需要运行在另外一层技术上。例如,常见的网络分层,系统架构层次。前端要达成端适配的目标,端的能力,是决定前端技术高度的重要方向标。


1. 前端技术的发展依赖端能力,而并非开发框架

在前端技术发展早期,我们的工作场景在web端,这时候大量能力掌握在浏览器的手中。幸运的是,浏览器不知为何原因提供了xhr能力后,这就成了前端技术启航的开始。在早期中国互联网,我们并未能很好地掌握端技术的可控权,前端技术的发展一直处于非常被动的状态。

许多前端同学对w3c应该不会陌生,在我做一线开发的时候,也很喜欢去翻看w3c的文档。关注w3c,可以让技术同学告诉产品什么能做,什么不能做。作为早期入行的前端开发,我们的核心价值是抹平浏览器之间的适配差异和性能优化。现代前端开发可能都忘记了以前yahoo有做过一个 yui 的框架,我在空间时也做过qzfl开发框架,出发点就是为了抹平端差异。

浏览器和标准之间,也存在着共生,博弈和垄断,导致在很长的时间里,web端能力发展非常缓慢。你能做什么事情,完全取决于浏览器给你多少能力。前端技术的发展受限于,缓慢的标准发展,缓慢的浏览器更新。当然好处是,因为发展缓慢,技术面前人人平等。直到移动端技术发展,这一平衡的天平开始出现了变化。

当一项技术极其依赖另一端载体的发展,那么技术天花板早已注定。记得在07年iphone的发布后,虽然乔布斯很支持H5的发展。但早期移动端能给前端释放的能力非常有限。为了解决端能力不足的问题,我们开始在端上尝试hybrid的技术方案, 其核心就是现在大家常用的 离线化存储 + 前端渲染方案。那么多年了,这个技术核心一直没变,但是优化的方法变多了。

可惜在移动应用发展早期,常常由于硬件性能不足,导致前端技术和移动端技术在赛跑过程中,在体验上无法媲美原生app的需求。大量的移动应用不得不放弃前端的一端开发,多端适配的优势。不得已转向人力成本更高的解决方案,招聘更多移动客户端开发。


2. 第一次出现前端职场危机

而当时的解决方案,可谓头疼医头,脚疼医脚:  Web前端发展遇到瓶颈,那就寻找不同的技术领域去渗透。前端开始了往各种技术栈抢活干的发展道路。后端,运营,网关… 像极了达尔文的天择理论,“物竞天择,适者生存”。并不是说用 node.js 不好。是在这一层技术中,前端不具备后端的高性能和成本要求。我们在接入层CGI点到为止,至少让当时很多前端开发挺过来了。

在端能力发展瓶颈期,前端技术开始出现一专多长,发展出来非常多开发框架,如 React, Vue,取代了当年流行的jQuery。其实工程开发效率的积累,给到现代前端发展奠定非常好的研发效率基础。让更多初入行的前端开发,不需要再接触繁琐的原生js研发模式。通过开源技术,我们很容易找到各种各样的组件,满足业务快速开发的需求。随着开发工具的成熟,我们不再担心使用面向对象,模块化的思想会给业务带来合作上的效率问题。

直到,Chrome的开源和移动硬件的升级,前端开始逐渐回顾到 一端开发,多端适配 的专长上。说到这里,大家应该容易理解,为何微信小程序的架构要抛开浏览器端的架构,重新定义端能力了。所以,要做好前端,搞清楚端技术是非常必要的一个要求。我的职场导师也不止一次告诫我,应该搞清楚浏览器原理。至今对于我们要解决问题,这一点依然关键。

前端技术也因此成为有史以来,入门门槛最低的技术领域。你不需要了解复杂的网络原理,也不需要了解操作系统的进程和线程的关系,也不需要去了解一个内存对应用的影响意味着什么。使用易用的前端框架,就可以完成一个前端应用的开发需求。


3. 学习门槛低,是开发者入行前端的理由,也是内卷的本源

在谈这个话题之前,我先引用《纳瓦尔宝典》的一段话,或许能引发大家的思考

如果社会可以培训你,那么社会也可以培训他人来取代你。大家都能学会的东西是不可能让你致富的。凡是可以批量化培训的技能都是能够被雇佣的技能

纳瓦尔宝典

在职场供需方面,前端岗位目前依然处于未饱和状态。但是,我会把市场对前端开发的需求用二八定律进行划分 - 20%的专业前端需求和80%的前端应用需求

我面试过非常多校招学生,我喜欢问一个问题,“你为什么想要做前端开发?”
仅有少数学生,带着对心中理想的产品形态,不断从技术专业角度去反复思考和实践。大多数原因则是:C++不好学习,前端所见即所得,容易出效果,很容易找到学习资料,无需编译。当然我并不是挑战这些理由有什么不好,而是我们需要思考进入职场后,我们希望通过前端技术达成什么目的。谋生手段 还是 达成目标?

市场虽存在大量前端应用的需求,但技术应用并不需要掌握多复杂的计算机基础知识,行业中有大量的工具和框架可以去使用,已经足以满足大部分业务开发需求。哪怕在大厂,也存在大量的技术应用岗位,并非专业技术要求。做了几年的咨询交流,我发现厂内和厂外的开发同学也一样,受困于业务需求不具备技术挑战性
一个人的能力是需要经历挑战来证明的,但是只有充分准备和积累才能面对挑战。我个人的专业是计算机应用,也做了很长很长时间的前端应用开发。最后发现能支撑自己走到现在的,还是对计算机基础和专业的不断深入理解和学习,充满好奇心的技术驱动力

如今,前端框架盛行、低代码不断普及、chatGPT 生成式AI技术的出现。新技术,一方面推动社会生产效率的不断提高,另一方面也在逐步改变过往的生产和分工方式。社会仅需要更少的应用开发,面向prompt 编程。

你可以想象一下,好比一个全自动化的生产车间,仅需要少数的操作员和监控人员。我们误把操作员当成了一种技术,应用技能很容易通过批量化培训掌握。

所以,还请认清现状。如果你仅仅掌握了大量前端开发工具和框架,而不具备计算机基础,不具备思考如何组合技术形成创新方案,那么别埋怨你的工作像是在敲螺丝钉。因为社会兜售工具给你,资本就会让你敲螺丝钉。敲钉子的人多了,自然就变成了一种体力劳动,而非脑力,你还得与80%的程序员争夺生存空间。只有思考真正的个人价值,才能找到成长的道路。


从web端到前端

当我们谈到20%的专业前端,他们都在做什么?


迄今为止最好的时代

前端技术发展至今,看似无所不能。在经历了很长时间的进化,无所不能其实是前端跨端能力的一种体现。一端开发,多端适配,提升研发效率,降低人力成本。可以让人们有更多时间,专注在业务本身,专注在设计,专注给用户带来更好的体验上。

其次,随着客户端能力的发展,也解决了前端技术,端能力补给不足的问题

作为前端开发者,我们对新能力的渴望不再成为漫长的等待。前端开发和客户端也找到更好的合作方式,客户端专注于能力的供给,对端性能的优化。前端则聚焦在帮助业务更好地适配多平台。

随着,v8,electron,wasm等技术的发展,我们看到了许多专业工具,也开始通过前端技术来完成跨端应用开发,如,新版QQ,1password,notion AI,figma等等知名的工具。我们更有信心地完成 web 到 桌面端,到跨操作系统的移植工作。给用户带来一致性的使用体验,也保证了技术架构的一致性,提高应用框架的可维护性。

最后,硬件和软件的性能,可以支持越来越复杂的前端应用程序。这是在10年前,前端开发不敢奢望的,我们都尽了最大的努力去实施性能优化,最后还是只能交给时间。过去,我们为了实现一个页面的滚动列表的流畅度,需要花费大量的时间,和技巧,才能做到一个刚好及格的体验。

如今,除了工具本身的需求可以做出前所未有的体验外。前端技术随着webGL,webGPU 等图形技术的发展,前端可以涉足的业务领域也越来越多。游戏,数字孪生,VR/AR等应用场景,借助前端跨端的特性,做到更低成本的内容传播。

当,跨端+能力+性能,不再是前端的瓶颈时,这才是前端最好的时代,最能发挥前端价值的时代。所以,别轻信什么前端已死的言论,只是前端技术开始回归本质,我们只需成为一名真正的程序员,而程序员的核心价值是创造


效率与创造的关系

前端技术的发展,一路走来,我们看到了诸多光鲜的特点,有许多高光时刻,有许多困惑和怀疑。随着前端技术的不断壮大,我们也应该意识到,效率与创新的关系。

在这个领域里,我们看到了许多的效率工具,例如:自动化构建,脚手架工具等等。这些工具的出现,极大地提升了前端开发的效率,但同时,也让我们变得“懒惰”。与其说是懒惰,不如说是很容易陷入“舒适区”。我们在使用这些工具的时候,会变得越来越依赖它们,而不去思考更好的解决方案。这也是效率工具的局限所在。

那么,创造又来自哪里呢?创造,往往来自于对问题的深度思考和不断尝试。我们需要对现有的技术和工具进行反思和改进,从而有机会创造出更加高效和优秀的解决方案。在这个过程中,我们也需要保持谦逊和开放的心态,不断学习和吸收新的技术和思想。

因此,效率与创造是相互促进的。当我们将效率工具作为手段,而不是目的时,我们才能够在提高效率的同时,拓展我们的创新思维,为前端技术的发展注入更多的活力和创造力。


后记

写这篇文章,希望能给行业中,依然潜行的前端开发,带来一些思考。写作过程,我也希望做到不去做评价,而更多是呈现现状和过去的发展历程。本来这些内容是受邀参加一些公开课线下分享,但是考虑线下分享的局限性,我还是选择线上创作来分享,也容易沉淀。

这几年,一些预测前端技术发展的文章越来越少了,我反而认为是好事。一项技术从诞生到应用,很难被预测。没有任何人能真正预测某项技术能否是否在未来1年或者2年成熟。

当我们遇到某项新技术很兴奋打算花时间学习的时候,不如选择逆向思考。如果要应用某项新技术,目前还存在哪些局限性和不足,新技术能否对我们真正做的事情带来价值,我是否有能力来改善这些不足。保持独立思考,共勉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值