前言
2024年就这么过去了。
虽然前端整个求职市场还是如同一潭死水,整体大格局上仍旧以汰换为主。但是好消息是,裁员的情况似乎也少了(应该是这样吧?)。
新的一年来了,24年不管怎么来,都是过去了,未来才是重要的不是吗。那么新的一年要做些什么呢,本文仅从大方向上给出一些初步的建议,不涉及具体的事项,希望可以引发大家的一些讨论和共识。
具体每个方向具体展开的话一篇文章可能承载不下,有机会我们再做些讨论。大家有什么想法也可以在评论区发表一些意见和想法,在新年开始之际,一起定下一个,新的目标。
共同成长,前端fighting。
2024发生了些什么
回顾下2024年,比较大的几件事情有:
- react发布了第19个版本,在该版本中,react引入了一个新的hook:use,用来解决异步数据流转的问题。但是具体在业务开发中会带来哪些实际影响的还有待实践。
- 另外一件react相关的事情是,react发布了新的Compiler,尝试在编译环境解决react开发中遇到的性能问题。让开发者可以更好的把精力集中在业务开发中。这也将进一步降低react复杂应用的开发门槛。
- 相比react,vue的噱头则大了很多。今年vue引入了alien-signals,号称可以提升400%的性能,在这业务日益复杂、性能需求日益增加的今天,还是有着不小的吸引力的。
- 构建工具上,整体还是rust和vite两大正营在挑大梁。基于rust语言的rspack,在今年已经有了相对完善的生态,大部分业务场景下都可以相对平滑的从webpack迁移到rspack,构建速度基本可以提升50%以上吧。vite今年势头非常强劲,vite6.0引入了新的Environment API,帮助开发者解决多环境编译问题;vitest发布了2.0版本,可以更好的基于vite生态去做单元测试。
- 其余方面,nodejs今年发布了两个正式 版本,大版本号来到了23,比较大特性就是支持了require(esm),意味着你可以在 CommonJS 文件中加载 ESModules 文件(esm和commonjs的兼容问题算是有了一个解决方案)。然后是几乎处于半凉状态的react-native,今年在0.76版本开始,默认启用的新的架构,并带来了新的devtools,希望可以在性能和调试层面都给开发者带来全新的体验。
2024年,大家都在做什么
当然2024年,还发生很多其他事情,以上主要是挑了几件我个人认为比较重要的事情来说。
对上述发生的事情,做一个简单的总结,其实可以发现,整体来讲,业界去年发生的事情是围绕三个方向的展开的:开发体验、性能以及稳定性。
为了更清晰的看清楚这些事情,我做一个简单的归类:
- 开发体验
-
- react19引入的新特性use显然是为了降低react异步数据流转这一开发场景的业务复杂度
- require(esm),解决了Commonjs和ESModules 文件混用的问题,在当前node新老两种模块方案混用的今天,实在是不小的惊喜
- react native devtools,调试工具,号称体验对齐web工具
- vite6.0新的Environment API
- 性能
-
- react Compiler主要目的应该是为了解决react渲染带来的性能问题,当然因为是在编译期自动去做了这件事情,对整体的开发体验和开发门槛也会有影响,但是从实际结果出发,还是归类到了性能下。
- vue的alien-signals,最大的噱头就是性能提升,无需多说。
- react-native新架构,这部分升级比较大,但是从《react全新架构来了》一文中看,最大的提升也是性能
- rspack(或者是rust生态),构建性能提升。
- 稳定性
-
- vitest,单测工具
分类之后,我们看到,三个方向,开发体验和性能相关分别各占4项,稳定性占一项。
同样的我们也看到一个事实,前端似乎已经很久没有全新的、有影响力的轮子出现了。或者说,优秀的开发者们越来越少的将精力投入到了新轮子上。
2025年对于一线开发方向应该是什么
从社区的经验上看,还是开发体验、性能和稳定性三个方面为主。
先各自说下三个方向的特点以及可以发力的点。
开发体验方向上,虽然前端现在大的问题基本都已经被解决,但是在一些小范围的细分场景,还是有很多事情可以做。业界大的框架上只能去做一些相对通用的解决方案,但是具体某些业务领域有自己的业务痛点,这部分痛点还是可以被识别并形成解决方案的。
性能方面,我记得曾经有句话叫,性能的问题都可以交给硬件迭代去解决。之前我对这句话深信不疑。但是随着深入一线业务越久,我越发现这句话是不对的。硬件虽然在提升,但是我们的业务复杂度也同样在提升,并且有时候我们的业务复杂度提升甚至是大于硬件提升的。此外用户对于性能的要求预期也是在不断变高的。我用iPhone 15 打开页面2s,iPhone16 还是2s,这不合理吧?所以实际上,性能问题长期应该都会是前端重点需要被解决的问题(所以24年有四项是和性能有关)。
不过我们也要相对清醒的认识到,性能问题实际上是很难被较好的解决的。首先是,通用性的解决方案基本都已经被挖掘了,其次,虽然业务体量的增加,性能天然就会被劣化。所以这块在技术深度上,会比开发体验的要求更高。君不见,react已经开始卷Compiler来解决性能问题了。而vue的alien-signals也绝对不是简单的技术迭代就可以完成的。
最后是稳定性。虽然24年,稳定性方向上,相对没有什么大事发生,但是这并不代表稳定性不重要,只是它很难有比较好的结果产出。一方面是和稳定性方面技术产出的收益不好衡量,另外一方面也是由稳定性问题特点导致。所谓的稳定性,并不是我简单的全局onerror,然后catch上报这么简单。不同业务场景下,有着不同的稳定性问题。例如:IM场景,socket通信的稳定性问题和电商场景下资损的稳定性问题,天然就是两个不同的范畴,如何用通用性的解决方案去解决呢。而业界大佬们其实很少进入一线业务迭代,对于稳定性的问题了解的也不会那么透彻。所以稳定性上,可能很多大厂都有些自己的业务经验,但是在具体产出上,可能比较难拿到大的结果。就算我产出了一个解决方案,但是这个业务场景只有我有,那别人也用不上啊。
不应该被忘记的AI
从chatgpt发布之后,ai就注定是一个不能被忽视的方向。今年,ai整体在各个方向上都有不少的进展。前端方向,ai coding、ai testing、ai devops等等,都有不少团队在尝试。尤其是ai coding,cursor今年已经在这个方向上给出了一一个全新的解法。但是这仅仅只是开始。2025年,我相信会是各类ai工具飞速发展的一年,这点不仅仅会体现在coding方向上。就算单纯的coding方向,目前编辑器形式的结合,也仅仅只是开始,一整套工具链的逐步完善,依旧有很多东西可以做。
从现在视角看,比较容易出结果的几个方向有,ai自动化测试、ai辅助编码(可以是工具方向,也可以是场景方向,工具方向就是让思考整个开发链路中哪些地方可以用到ai工具,场景方向就是思考ai可以如何更高效的辅助你的业务场景,例如生成更准确的代码,甚至是d2c)。
其他方向,就看各位大佬的发挥。
总结一下
开发体验,对于一线业务来讲应该是最容易切入的,但是结果不好衡量,最好能和你的领导目标达成一致,他也能理解你的业务痛点,否则你做的事情很难得到肯定。这点在一些好大喜功的厂子里面,表现尤其明显。不过对于一些三年左右的工作经验的研发来讲,还是推荐可以去做。一是本身工作年限低,领导对你的期望值也会低;其次,就算什么都没得到,对你个人技能的提升也是非常大的。
性能方向上,之前说了,对技术要求比较高,需要找准切入点。但是性能方向也有一个优势就是结果比较容易衡量。你需要的各类指标基本照着web vitals建议的来就行了,各种指标采集也给你写的明明白白。找准方向,就很容易把你的受益说清楚。最大的问题是,在各种技术已经被挖掘的很干净的今天,你要怎么继续深入。
稳定性方向,其实是一个比较背锅的方向,吃力不讨好。为什么呢,大家都知道稳定性很重要,但是有时候你业务出不出问题,真的不是你个人能决定的。并且很多稳定性的建设其实是等除了问题之后才会发现。没出问题之前,没人意识到稳定性的重要,出了问题,就是稳定性没做好。妥妥背锅侠。如果你想要在稳定性方向上发力,前提是你能说清楚当前你业务的稳定性痛点,以及可能带来的损失。最好可以说清楚,如果再不搞,你的领导可能就要玩完了。推荐当前公司业务有一定体量,且稳定性已经存在隐患的同学可以去尝试。如果稳定性,实在不是一个闭门造车就可以干好的事情。
所以三个方向推荐的顺序是,性能、开发体验和稳定性。具体选择,就看你个人了。
但是不管哪个方向,都有一个关键字,最好能围绕业务场景来。
最后是ai,ai这个赛道,目前是全新的,有很多东西可以做,但是大部分前端可能对ai都缺少深入的了解。ai方向整体是一个投入和产出都会比较大的赛道。