【2024】前端,该卷什么呢?

哈喽大家好,我是Range。我们搞技术的,容易陷入到技术细节里面去,这不算是坏事,但是偶尔我们也可以关注下周边的大环境,知道大的趋势。今天带来这篇文章,介绍了我们前端er在2024年,可以关注或者投入精力的一些方向,希望同学们看完能有一些收获。

下面是正文部分。



2024已来,过去的 2023 可以说是具有里程碑意义的一年,ChatGPT 的炸裂式发展,很多大佬都亲自入场整活儿,你不得不说,人工智能时代的未来已来,大势所趋,不可阻挡。随着生成式AI的迅猛发展,程序员的生存也受到了前所未有的挑战,你可能已经嗅到了满世界都在裁员的味道了。但并不是说这件事儿马上就会发生,机器它当前还只是个“有点聪明”的机器,尚不具备完全替代人的能力,但几年后,谁知道呢?所以,还是未雨绸缪比较好~ 卷起来!

结尾有推荐很多篇优质的前端文章~

主要包括下面几部分:

  1. 人工智能会革掉我们的命吗?

  2. 继续学习JavaScript,使用TypeScript

  3. React or Vue or Angular ?

  4. 你必须要会微前端了

  5. 全栈框架的兴起

  6. 你得会 SSR

  7. 跨端:建议别入坑 Flutter 了

  8. 低代码要入吗

  9. 要搞全栈吗?

  10. 鸿蒙生态要入吗?

  11. 推荐一些 2023 看过的好文章

人工智能会革掉我们的命吗?

可能会,但不是现在,这个趋势应该是不需要太多争议的,毕竟随着 ChatGPT 的爆发,在生成式人工智能引发的革命性变革已经来临,未来机器能做的事情只会越来越多,迟早是要“解放一批人的”。

如果在当下还没有使用人工智能作为日常开发辅助工具的,显然你可能已经走在时代列车的尾灯后面了,之前也写过几篇这方的文章,供大家参考:

  • GPT-4 炸裂成那样,前端真的还有机会吗?我是这么看的~

  • 【ChatGPT】一文教你怎么编写清晰有效的(Prompt)提示词~

  • 【前端】一些让你事半功倍的 ChatGPT Prompts 建议~

随着人们争先恐后地寻找某种方式(任何方式)将人工智能产品化作为前端工作流程的一部分,这个领域出现了很多问题。其中一个不断出现的问题是“机器会抢走我们的工作吗?”

今年,可以说,“人工智能的不可阻挡的前进”在你失去前端工作的原因列表中可以往后放一放了。但该行业的市场潜力已经非常明显。你必须要重视在日常工作中如何使用人工智能辅助工具来提升你的开发效率。

ChatGPT 和 GitHub Copilot 现在已成为橡皮鸭编程和代码生成的日常配套工具,微软今年有信心向其背后的公司 OpenAI进一步投资100 亿美元。虽然只有巨头才有希望与这些工具竞争(谷歌有Bard和Gemini;Meta 有LLaMA,尽管是与微软合作构建的;亚马逊有Q;苹果肯定正在开发一些东西,拥有一长串像机器学习这样的工具 - ferret和ml-explore开始出现在他们的 GitHub 上),在它们之上进行构建的行业仍然相当大。

可能你已经看到 tldraw将草图转化为代码,Vercel 的 v0:将描述转化为 UI 组件,Figma也可以为设计做同样的事情。

Sora:21世纪的工业革命(又)要来了吗?

为什么是“又“?因为这两年每一个新技术/应用的出现,都会被新闻媒体渲染成一次新的工业革命到来 ~

春节刚过完,节后综合症的大家还没恢复过来,OpenAI 又给科技圈投下一枚重磅炸弹 - Sora。2024年15日,OpenAi发布了Sora,简单理解就是可以通过文字或语言直接生成视频。但是,OpenAi并没有把它称为视频模型,而是称为世界模拟器。

相信大家应该都看过下面这个相关的视频了,逼真程度惊掉你的下巴:

“太可怕了,完全是一场工业革命。” 在看到OpenAI发布的Sora影片后,很多人发出了这样的感叹。根据OpenAI发布的示范,只需要给Sora一段2﹑30字的指令,它就可以生成一段长达一分钟的影片,可以是写实影片,可以是动画,也可以是历史片﹑黑白片﹑3D科幻片……在不久将来,所有人都可以(大概率是在付费的前提下)随时随地生成影片,即是说拍摄﹑绘画﹑剪片制片的门槛将不再存在。

“工业革命”的说法或许没有那么夸张。相比起Midjourney等“文转图”工具,Sora再度跨过了另一个重要防线:要生成影片,即是AI工具必须对我们生活的物理世界有相当认识,或至少是有相当模拟的能力。

Sora之所以让无数的人震撼,就是因为它可以模拟真实世界的物理规律 生成数字孪生世界。因为Al真的学会了像人类一样观察世界、描绘世界和表现世界的能力。

这就意味着,我们可以凭借人工智能更加轻松便捷的生成虚拟的多重守宙 ,只需要一台VR设备,你就可以去到宇宙的任何一个地方,甚至任何一个人所构建的梦幻世界中。

2007年乔布斯发布了第一台iPhone,重新定义了智能手机,将我们的带进了移动互联网的新时代。无数企业的诞生获益于此,并改变了我们的世界。几年前,无数的人都还在感叹世人是否已经被“三体人”锁死,科技很难看到新的进步,但2023年和2024年的两波人工智能的重大突破,让人们又看到了新的未来。

大部分的商业增长都是源自延长人的生命和提高人的生活品质,而Sora的出现意味着在生活品质领域,我们将迎来一个新的开始。它将带领我们从原本的虚拟二维世界更快速的进入数字孪生的三维世界。所有我们电脑、手机上的软件以及影视和短视频等内容都意味着将会被重构。

我们每个人都可以身临其境的感受任何一个专家、教授、大咖的分享,我们可以和过去的爱因斯坦、李白、杜甫等直接对话。我们可以把自己梦见的世界生成视频分享给朋友,我们也可以在漫威的世界里为自己打造一个形象和他们一起拯救宇宙。新的大航海时代即将开始,在这个时代下,每个人都会面临新的挑战,无论是教育、社交、文化、游戏、工作都会迎来一个新的开始。

我觉得可能很多人还不能理解这项技术意味着什么可能性。一旦 Sora 发展起来,文字转语音也迎头赶上,人类创造的任何视觉娱乐就会逐渐失去其价值,直至变得过时。

  • DY/TikTok/YouTube... 上的一切

  • 电影/电视内容

  • 流媒体平台上的一切

  • ...

还有:

  • 岛国的支柱产业(皮了一下,haha)

这里有一个 sora 生成的视频合集网站,且附带了 Prompts:传送门

AI 真的会在可预见的未来替代大部分工作吗?从之前的 Copilot,到现在的 Sora,还有各个垂直行业的落地(比如教育、医疗、客服...),它正在以我们可以感知到的速度在渗透各行各业,我只能说:

“一切可能只是钱和时间的问题。”

在我看来,单纯地去卷某一个技术已经变得越来越狭隘且不明智了,可能会让你走进死胡同,因为工具能做的更多、更快、更好,具有创造力的人可能会在这个时代大放异彩,但对各项技术的足够了解也必不可少,当你能把技术和创造力完美结合起来,然后基于这些工具和平台,创造出具有价值的产品或者服务,或许能在未来获得丰厚的回报。就像很多短视频博主,可能人家也没有什么亮眼的履历和技术,但从数以亿计的人中杀出来成为坐拥成千上万的粉丝,靠的就是自身创造力+平台和工具的力量。

真是应了那句话:”时代抛弃你时,连一声再见都不会跟你说 ~“

!!!定个 flag,2024 all in AI,准备把所有的业余时间用在学习跟AI相关的东西上,提升对新事物的敏感度和认知水平 ~

继续学习 JavaScript,使用 TypeScript

JavaScript

从 JavaScript 诞生之后,几乎每年都在变得更流行。根据2023 年 Stack Overflow 开发者调查,JavaScript 连续第十一年成为最常用的编程语言。

不出意外,它会在 2024 年保持流行状态,甚至更久,它的统治地位还会持续更长时间。而且它还在不断更新迭代,加入一些很好的新 features。

推荐几本很好的书:

  • You don’t know JS Yet 2nd Edition

  • JavaScript: The Good Parts

  • Eloquent JavaScript

  • Clean Code JavaScript

TypeScript

根据《2023 年 Octoverse 状况》,今年(2023 年),TypeScript 首次取代 Java,成为 GitHub 上 OSS 项目中第三大最受欢迎的语言,其用户群增长了 37% 。

这一趋势也从上面 2023 年 Stack Overflow 开发者调查中也能看出来。因为它是一种强类型语言,面向对象、类型检查器、编译器和语言服务集于一身。如果你想编写更可读、更干净、更可维护的代码,你肯定必须使用 TypeScript。

在我近两三年的开发中,不管是业余还是实际工作,都已经默认使用TypeScript了,虽然会写很多看起来很繁琐的类型声明代码,但是使用过后就知道有多香了,而且有很多类型工具可以帮你一键生成类型声明,并不会明显降低开发效率,反而是类型安全更为重要。

我之前写了一些关于TypeScript的文章

  1. 【React】一些实际项目中的 TypeScript 技巧(一)~

  2. 【React】一些实际项目中的 TypeScript 技巧(二)~

学习教程,我这里推荐阮一峰大神的系列教程:

  • 前端系列教程 - 阮一峰

也可以看看其他的:

  • JavaScript from ES6 to ES12 in 2022 | KenHuang

  • 用8000字总结了【ES2015~ES2022】的所有新特性

  • JavaScript 新特性最全指南:ES2024 ~ ES2016

  • 「建议收藏」送你一份精心总结的3万字ES6实用指南(全)

React or Vue or Angular ?

推荐阅读:

  • 【脚手架】从0到1搭建React18+TS4.x+Webpack5项目(一)项目初始化

  • 【脚手架】从0到1搭建React18+TS4.x+Webpack5项目(二)基础功能配置

  • 【脚手架】从0到1搭建React18+TS4.x+Webpack5项目(三)代码质量和git提交规范

  • 【脚手架】从0到1搭建React18+TS4.x+Webpack5项目(四)发布脚手架

  • 【前端】一个”哇塞“前端需要知道的 React 生态清单 ~

  • 【面试官系列】React 中,如何在页面刷新之后保持状态?看看你知道几种~

  • 【Vue3】保姆级毫无废话的进阶到实战教程 - 01

  • 【Vue3】保姆级毫无废话的进阶到实战教程 - 02

  • 【Vue3】保姆级毫无废话的进阶到实战教程 - 03

先来看看国外一个调查,DevJobsScanner 分析了从 2022 年 11 月 1 日到 2023 年 12 月 31 日(14 个月)约 50 万个前端岗位。所有这些工作都来自比较主流的网站,如 Linkedin、Glassdoor、RemoteOk、Dice 等,得出下面的数据:

经过对 14 个月的数据分析,大约有 50 万个前端工作机会,发现React是需求量最大的前端框架,总共有 22.5 万个工作机会。Angular排名第二,共有 172,000 个。位居第三的是Vue,有 48,000 个。“Others”代表所有其他前端框架,如Svelte、Solid.js、Alpine、Backbone、Lit … 尽管其中一些框架目前非常流行,但真正的岗位需求却很低。

在看看主流框架在各个国家中的市占率:

虽然在大多数国家中,React占据主导地位,但也有一些欧洲国家稍有不同。瑞士、法国、西班牙和意大利就是这样的例子,与 React 相比, Angular 的就业机会比例更高。在瑞士,Angular 工作占前端工作的 65%,比利时是最具颠覆性的,Vue 显然比其他框架更受青睐,在比利时,59% 的前端职位需要 Vue 专业知识。

国内主要是 React 和 Vue,而且 Vue 的发展势头很猛,Angular 占比明显很小,所以建议还是 React + Vue 双修是最好的 ~

数据来源:The Most Demanded Frontend Frameworks in 2023

你必须要会微前端了

都2024了,你还不会微前端!就真的out了~ 关于微前端的详细介绍,之前有写过两篇文章,可供参考:

  • 【微前端】在造一个微前端轮子之前,你需要知道这些~

  • 【微前端】手把手教你从0到1实现基于Webpack5 模块联邦(Module Federation)的微前端~

前端已经蓬勃发展了好多年,随着业务的不断迭代,必然就催生了很多“巨大的”SPA系统,而这时候就微前端就可以大显身手了,它的使用场景主要有下列这些:

  • 大型单页应用程序:在一个单一的代码库中开发和维护一个大型单页应用程序可能会变得非常复杂,使用微前端可以将应用程序拆分为更小、更易于管理的部分,从而提高可维护性和可扩展性。

  • 复杂的应用程序:当应用程序变得越来越复杂时,使用微前端可以降低应用程序的复杂性,并提高开发效率和可用性。

  • 多个团队合作开发:当多个团队共同开发一个应用程序时,使用微前端可以将应用程序拆分为多个部分,每个团队可以独立地开发和部署自己的部分,从而提高整个团队的效率。

  • 多个技术栈的应用程序:当应用程序需要使用不同的技术栈时,使用微前端可以让团队选择最适合自己的技术栈,提高开发效率和可用性。

根据国外的统计,可以看到当前主流的几种方案的流行程度:

国内可能不一样,各家大厂都有自己独立开发的微前端方案:

  • 阿里:qiankun

  • 字节:garfish

  • 腾讯:无界

  • 京东:Micro App

属于是各有优劣:

  • 自由度更高:module-federation

    • 需要自定义实现css隔离、js沙箱、路由劫持等功能

  • 用的最多:qiankun

    • 相对比较成熟,社区活跃

    • webpack体系、接入相对比较重

  • 接入更流畅:wujie、micro-app

  • 基于react +vite技术栈,我们最终选择更新更活跃,文档更丰富的micro-app

全栈框架的兴起

推荐阅读:

  1. Next.js 完全手册

  2. Learn Next.js 中文教程

  3. Nextjs全栈详细开发教程,完整版

  4. 2023 年 Web 开发(前端 + 后端)路线图

  5. 全栈开发者路线图 🗺

create-react-app 已经弃用了。它的上一个版本是两年前发布的,官方文档已经不提它了。甚至还一度掀起 “使用 vite 替换 CRA” 的讨论:

阅读链接:Replace Create React App recommendation with Vite

作为 React 的忠实粉丝,这里必须要提到在 React 的新官方文档中已经将 Next.js 作为生产环境推荐的首选项目初始化工具了,而不再是老官网的 CRA。

2024,你必须要开始重视 Next.js 了~

你得会 SSR

SSR 并不新鲜。PHP 提供 SSR 已经有 28 年的历史了,如果它对 Neopets(勉为其难地对 Facebook 也是如此)足够好,那么它对任何事情都可以说是足够好了。

但 Vercel 一直在努力推动它。Vercel 已成为前端开发领域一些最有影响力人物的公会组织,因此很难忽视他们的说法(例如,他们关于 Server Actions 的讨论在 Twitter 上充斥了一周的备忘录),那就是你应该使用 SSR,而且应该通过他们的服务来使用 SSR。

既然 SSR 这块蛋糕已经重新做大,每个人都想从中分一杯羹。Ruby on Rails 一族长期以来一直在这一领域工作,他们一直在试图用no-build工作流程吸引用户(这与 Vite 的no-bundle工作流程如出一辙,不过两者都遭到了一些强烈的反驳(counterpoints))。HTMX 也是同类产品中的一员,它再次通过成功应用 "流行语"(memes)来鼓吹,人们真正需要的唯一框架就是一个用于交付 HTML 文件的 HTTP 服务器。虽然 React 和 Svelte 现在是 Vercel 成功的既得利益者(核心团队成员都在那里工作),但 Vue 仍然是社区驱动的 Nuxt 的坚守者。

就连移动领域也染上了这个毛病。正如《React Native 值得期待的事情》一文中提到的,Szymon Rybczak 一直在为 React Native 开发 Async 组件和 React Server 组件,而 Expo 则一直在推动 Expo Router。SSR 在移动设备上是否有意义仍有待商榷([1] [2]),不过你可以随时指望 Evan Bacon 和 Nate Birdman 来为双方据理力争。

不过,对于使用 Node.js 之外的后端软件的公司来说,SSR 是否会流行起来还有待观察。

跨端:建议别入坑 Flutter 了

笔者之前也在实际业务开发中使用过 Flutter 近三年,开发体验上挺好的,但是一旦升级版本,真的是灾难(至少在2.0之前是这样),近几年,不管是从社区还是公司业务中,都已经能明显感觉它逐渐式微了。

随着 Hixie 和 Tim Sneath 都离开了 Google,而后者甚至转而宣传SwiftUI,Flutter 开发者陷入了生存危机,有人担心会被干掉。

与此同时,React Native 的发展依旧稳如老狗,亚马逊宣布它已成为他们多个旗舰App的首选技术。随着 Software Mansion 演示了他们的新IDE,并且 Meta 已从 Flipper 迁移到Chrome Devtools, DX 得到了突飞猛进的改进。Expo 还做了太多值得一提的事情,尽管特别是通过Expo Modules彻底改变了本机 API 访问,并通过Expo Router继续了代码共享和 SSR 的故事(如前所述)。Meta和Microsoft向 Web 一致性迈进,从DOM 遍历到事件循环,一直非常令人兴奋。

其他框架也在采取行动,Tauri 与Servo合作,Dioxus承诺使用 Rust 和类似 React 的 DX 来创建 GUI 应用程序。它建立在Taffy布局引擎之上,Taffy 布局引擎是 Yoga 的一个非常有前途的继承者,它可能很快会提供C 绑定,使其可在更多上下文中使用。我还听到了有关 Kotlin Multiplatform 的持续讨论,但没有什么特别突出的内容。

也可以去看看 Reddit 上面的讨论帖:What's the problem with Flutter's future? : r/FlutterDev

低代码要入吗?

低代码被热炒也不是一年两年了,但近些年确实也有很多大厂在跟进做这件事,但你要说它能成为一个巨大的市场,我是怀疑的。

因为,你通常会发现,在精简的低代码体验与平台本身的表现力之间需要权衡。如果一个平台试图做太多事情,试图包含太多的功能,它就会变得杂乱无章,难以使用。它甚至可能不稳定,难以修复错误。最好只做好一件或几件事情,并为其他所有无法控制的事情提供合理的默认设置。

让软件更容易构建的一个看似不可避免的副作用是,你往往会牺牲可定制性和对软件工作原理更深入的理解。"低代码/无代码工具倾向于寻找通用用例,这可能会限制软件的灵活性:在所有这些工具中,易用性和控制性之间似乎存在着一种权衡,我还没有看到有人能真正很好地解决这个问题(目前)。

但是在一些垂直业务和领域,低代码也是可以大展身手的,比如:

  • 数据管理和分析工具;

  • 业务系统集成工具;

  • 业务流程自动化工具;

  • 内部资源;

  • ...

如果你当前的业务是低代码友好的,还是挺值得入的,毕竟数字化是未来,当一个技能人无你有,人有你精的时候,它就是个好技能!

要搞全栈吗?

我的回答是:尽可能搞!

为啥?

机器会的都比你多~

啊哈哈 ~

  • 全栈 Roadmap

鸿蒙生态要入吗?

最后一个,鸿蒙生态开发要入吗?这个比较敏感,我目前持保留态度,就不说了,容易被喷,大家可以讨论下~

推荐一些 2023 看过的好文章

  • ChatGPT:前端开发的新好朋友

  • 如何在 React 中记忆组件

  • 你的 React 组件做的太多了

  • React Hooks 3:React 18 中的新 Hooks

  • useTransition() 和 useDefferedValue()

  • React 18 中的 useTransition() 与 useDeferredValue()

  • React v18:初看 useTransition 钩子——等等,但为什么呢?

  • React v18 Suspense 和 Render-as-You-Fetch 方法简介

  • 服务器端渲染 React 18 应用程序的实践指南

  • 作为前端工程师,你应该知道的 4 个 React 陷阱

  • 2022 年使用 React 时要避免的 11 个错误

  • 5 个能让你成为更好的 React 开发者的概念
    面向高级 React 开发人员的 React Hooks 挑战

  • React 中的事件发射器:深入探讨

  • 你应该知道的 5 个 React 设计模式

  • 在 2022 年使用 React hooks 优化你的 React 应用程序(React.Memo、useMemo、useCallback)

  • 更简洁的代码——React 子组件

  • 我们如何处理 React 上下文

  • 零依赖的简单 React 滚动动画

  • 5 个用于优化 ReactJS 性能的推荐工具

  • React 中最丑陋的模式

  • React Hooks 2:useMemo、useCallback、useLayoutEffect、useImperativeHandle、useDebugValue 和自定义 Hooks

  • 在 React 应用程序中获取数据的 7 种方法

  • 你如何重构一个 2,700 行的 React 组件?

  • 每个初级 React 开发人员都会犯的 8 个错误

  • 如何使用 React Error Boundary 处理 React 中的错误

  • 10 个提示和技巧,让你成为更好的 ReactJS 开发者

  • ReactJS 中的视差效果

  • React 不是快速,而是高效!

  • 如何使用 React 和 Node.js 创建 Stripe 订阅

  • 每个人都应该学习成为 Pro 的 5 种常见 Reactjs 反模式

  • 停止在 React 中使用过多的 useState()

  • 🔥 3 大 React 技巧专家 😎 喜欢用来减小组件的大小

  • 用 Vite 创建一个完美的 React 项目

  • 像专业人士一样为您的 React 项目配置 Eslint 和 Prettier

  • 使用 react-redux 和 styled-components 实现深色主题切换 💅

  • 如何在 React 项目中对导入进行排序

  • React 中的 useRafInterval 钩子

  • Redux 与 Context API + useReducer

  • React 查询:迁移到 v4

  • 在 ReactJS 中不该做什么

  • 使用自定义挂钩响应可重用 API 调用

  • React 减少代码的最佳实践和模式——第 3 部分

  • 关于 React 中 Contenteditable 元素的状态管理

  • TypeScript:键入 React useRef 钩子

  • 如何在 React 中清理数据

  • 如何在 React 中将一个 div 变成一个可访问的按钮

  • 在 React 中创建无限滑块

  • 如何在 react.js 中使用 debounce 创建实时搜索

  • React Router V6 和 Framer Motion 中的页面转换

  • 如何使用 React Hooks 去抖/节流回调

  • 7 React 代码片段的最佳实践

  • 如何通过 useState 使用 React 上下文

参考

  • buttondown.email/whatever_ja…


原文链接:https://juejin.cn/post/7329126541320536074

最后

还没有使用过我们刷题网站(https://fe.ecool.fun/)或者前端面试题宝典的同学,如果近期准备或者正在找工作,千万不要错过,我们的题库主打无广告和更新快哦~。

老规矩,也给我们团队的辅导服务打个广告。