2024】前端,该卷什么呢?_2024-02-16

news2024/11/26 0:38:29

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

最后

欢迎关注"所谓前端"微信公众号,大家一起交流
点击扫码关注

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

主要包括下面几部分:

  1. 人工智能会革掉我们的命吗?
  2. 继续学习JavaScript,使用TypeScript
  3. 你必须要会微前端了
  4. 全栈框架的兴起
  5. 你得会 SSR
  6. 跨端:建议别入坑 Flutter 了
  7. 低代码要入吗
  8. 要搞全栈吗?
  9. 鸿蒙生态要入吗?
  10. 推荐一些 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也可以为设计做同样的事情。看起来你只是一个傻瓜,仅用你的人类能力来开发东西。然而,有人担心最终结果可能与真实交易相比马虎,例如在可访问性方面。更不用说供应商面临的劫持问题了。

继续学习 JavaScript,使用 TypeScript

image.png

JavaScript

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

image.png

不出意外,它会在 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% 。

image.png

这一趋势也从上面 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实用指南(全)

你必须要会微前端了

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

  • 【微前端】在造一个微前端轮子之前,你需要知道这些~
  • 【微前端】手把手教你从0到1实现基于Webpack5 模块联邦(Module Federation)的微前端~

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

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

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

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

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

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

image.png

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

  • 阿里: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。

image.png

image.png

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之前是这样),近几年,不管是从社区还是公司业务中,都已经能明显感觉它逐渐式微了。

image.png

随着 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

低代码要入吗?

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

image.png

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

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

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

  • 数据管理和分析工具;
  • 业务系统集成工具;
  • 业务流程自动化工具;
  • 内部资源;

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

要搞全栈吗?

我的回答是:尽可能搞!

为啥?

机器会的都比你多~

啊哈哈 ~

  • 全栈 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…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1451381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring AMQP(3.1.1)设置ConfirmCallback和ReturnsCallback

文章目录 一、起因二、代码1. 定义exchange和queue2. RabbitTemplate3. EnhancedCorrelationData4. 发送消息 环境如下 VersionSpringBoot3.2.1spring-amqp3.1.1RabbitMq3-management 一、起因 老版本的spring-amqp在CorrelationData上设置ConfirmCallback。但是今天却突然发…

RCS系统之:浅谈系统设计与开发

这是我在开发RCS系统中的一些个人感悟与心得,写出来与大家一起分享下。是想到什么写到什么,如果有什么不对的,欢迎大家一起探讨。 有些人喜欢把WMS系统下面的系统统称为RCS系统。 但我不是这么想的,我这里把WMS/ERP系统与AGV之间…

[office] Excel 数据库函数条件区域怎样设置 #笔记#笔记

Excel 数据库函数条件区域怎样设置 以下面的数据表格为例,对于条件区域的设置,有几方面需要注意的内容,下面就一起看看如何对Excel 数据库函数条件区域设置的吧。希望会大家有所帮助 以下面的数据表格为例,对于条件区域的设置&am…

Java:如何判断一个链表是否为回文结构?(画图+代码 详解)

一、判断思想 我们设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,我们在不创建额外空间的基础上来判断是否为回文结构。 思想: 1、使用快慢指针法,找到链表的中间节点。 2、翻转中间节点的后半部分。 3、分别从头节点和尾节点向中间遍…

网课:数独挑战——牛客(题解与疑问)

涉及知识点:打表 题目描述 数独是一种填数字游戏,英文名叫 Sudoku,起源于瑞士,上世纪 70 年代由美国一家数学逻辑游戏杂志首先发表,名为 Number Place,后在日本流行,1984 年将 Sudoku 命名为…

《合成孔径雷达成像算法与实现》Figure6.13

clc clear close all参数设置 距离向参数设置 R_eta_c 20e3; % 景中心斜距 Tr 2.5e-6; % 发射脉冲时宽 Kr 20e12; % 距离向调频率 alpha_os_r 1.2; % 距离过采样率 Nrg 320; % 距离线采样数 距离向…

springboot190基于springboot框架的工作流程管理系统的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

项目管理工具软件Maven趣闻

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl Maven这个单词来自于意第绪语(Yiddish),这是一种与德语和希伯来语有密切关系的犹太民族语言。在这个语境中,Maven意为“知识的…

分布式文件系统 SpringBoot+FastDFS+Vue.js【四】

分布式文件系统 SpringBootFastDFSVue.js【四】 八、文件的下载和删除功能8.1.FastDFSClient.java8.2.FileServerController.java8.3.Vue的fast.js8.4.fastdfsimg.vue8.5.效果 九、总结endl 八、文件的下载和删除功能 8.1.FastDFSClient.java Slf4j public class FastDFSClie…

Midjourney绘图欣赏系列(三)

Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子,它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同,Midjourney 是自筹资金且闭源的,因此确切了解其幕后内容尚不…

【机器学习笔记】8 决策树

决策树原理 决策树是从训练数据中学习得出一个树状结构的模型。 决策树属于判别模型。 决策树是一种树状结构,通过做出一系列决策(选择)来对数据进行划分,这类似于针对一系列问题进行选择。决策树的决策过程就是从根节点开始&…

指针的经典笔试题

经典的指针试题,让你彻底理解指针 前言 之前对于指针做了一个详解,现在来看一些关于指针的经典面试题。 再次说一下数组名 数组名通常表示的都是首元素的地址,但是有两个意外,1.sizeof(数组名)这里数组名…

Chat with RTX 安装

1、Chat With RTX 介绍 Chat With RTX 是一个 Demo,用来将您自己的资料(文档、笔记、视频或其他数据)与大语言模型建立连接,从而令 LLM 更具个性化。利用检索增强生成 (RAG)、TensorRT-LLM 和 RTX 加速,您可以与自定义…

GiantPandaCV | 视觉类表面缺陷检测项目相关技术总结

本文来源公众号“GiantPandaCV”,仅用于学术分享,侵权删,干货满满。 原文链接:视觉类表面缺陷检测项目相关技术总结 本文由海滨撰写,首发于GaintPandaCV。 零、前言 做这个方向的项目也有一段时间了,作为…

第9章 网络编程

9.1 网络通信协议 通过计算机网络可以实现多台计算机连接,但是不同计算机的操作系统和硬件体系结构不同,为了提供通信支持,位于同一个网络中的计算机在进行连接和通信时必须要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵…

代码随想录算法训练营第二十四天|回溯算法理论 77.组合

回溯算法理论 回溯和递归式相辅相成的,只要有递归就会有回溯一般 递归函数的下面就是 回溯的逻辑 回溯相当于穷举搜索的巧妙实现 回溯算法常解决的问题: 组合切割子集排列棋盘回溯代码的框架 void backtracking(参数) {if (终止条件) {存放结果;retu…

线性注意力机制全新升级!性能显著提高,速度、精度更优

线性注意力机制通过对传统注意力机制中的Softmax操作进行线性化处理,可以提高Transformer模型的并行性能、降低复杂度,在计算效率、模型表达能力等方面都具有优势。 作为一种常用有效的优化方法,线性注意力机制可以在保证模型性能的同时提高…

cefsharp121(cef121.3.7Chromium121.0.6167.160)升级测试及其他H264版本

一、版本说明 1.1 本此版本 此版本CEF 121.3.7+g82c7c57+chromium-121.0.6167.160 / Chromium 121.0.6167.160 1.2 其他支持H264版本 支持H264推荐版本:V100,V109,V111,V119版本,其他V114,V115,V108,V107 支持win7/win8/win8.1最后版本v109.x 支持NET4.5.2最后版本v114.x …

Linux rp_filter、arp_filter、arp_ignore、arp_announce参数说明

Linux rp_filter、arp_filter、arp_ignore、arp_announce参数说明。我查看了参考资料,又去查阅了官方文档,凭着我的理解整理了以下文档。各位大神的文档写的很好,但都不喜欢断句啊,读的我这叫一个累。 参考 1.网络编程之网络丢包…

PPT导出PDF时保持图像高清的方法

问题: 我们经常会发现,在PPT中插入的图片非常高清,但是通过PPT转换为PDF之后,图片就会出现不同程度的失真。 问题产生的原因: 这是因为Acrobat的PDF Maker在将PPT转换为PDF的时候,对PPT中的图片进行了压缩 Solution: 在PPT的…