从2022看2023年发展趋势

news2024/12/26 23:50:00

前端 | 从2022看2023前端发展趋势.png

前言

时光荏苒,回望即将过去的2022年,前端领域在这一年中整体还是保持平稳向前,但对整个IT产业链路及互联网行业来说,变化还是很大的,下面我将简单分享一下个人对整个行业领域的一些观点与思考。鄙人才疏学浅,难免管窥蠡测,如有相左,仅代表个人观点,还望各位大佬包涵。

专注

相信大家也都看到了过去一年的情势,整个形势也同样对IT行业有着很大的冲击。面对如此巨大的影响与环境,作为前端工程师,我们能做的其实很有限,但私以为我们可以审慎时势,对整个前端领域发展趋势的走向做到一个前瞻性的视野。

如果说非要给过去一年顶一个基调的话,个人以为用“专注”这个词比较合适。所谓“专注”,个人理解是“收据力量,以待来者”之义,降本增效、专注核心相信也会是明年的一个主基调。那么,基于这样一个前提下,我们应该反问一下:前端的核心专注点应该是什么呢?

以鄙人愚见,前端应该专注于前端的特点与擅长。如果以用户为中心点来对整个IT领域工种进行划分的话,前端无疑是最贴近用户的。那么,个人认为前端的关注点应该落脚到“以用户为中心,坚持前端核心技术为基石,关注服务与形态的结合”这样一个基本原则下。下面,我将简单阐述下个人的一些理解与看法。所谓“形态”,正如上图所示的那样,是指提供给用户的展现形式,包括多端、视觉、交互等的不同;而所谓“服务”,则是对应于不同的形态所能提供的产品解决方案,包括:渲染方式、构建方式、组合方式等。将用户作为整个前端关注的核心,寻找不同的维度,配合形态,提供不同的服务,例如:可以以与用户的远近作为基准,对于不同交互体验,可以配合提供“云服务”、“边服务”、“端服务”等。这些提供形态服务的前提应该是以前端技术为基础的,对于前端不擅长的领域,比如:计算,个人建议还是以辅助为主,毕竟每个领域都有自己的特定的局限性,将有限的精力投入到更适合、更擅长的领域,不失为一种上善之策。

突破

在探讨了前端应该专注的方向与方式后,那么对于整个前端领域,我们又应该去做哪些突破呢?

相信大家在做了这么多年的前端开发后,对前端领域的核心技术难点也有一个大致的认知。这里,我把整个前端领域的一些涉猎按照层次化的方案进行梳理,大致可以分出:交付层、基建层、容器层、系统层四个层次。其中,交付层主要涉及应用代码、业务逻辑、用户体验、领域模型等相关的开发,这也是前端工程师入门的基础的基础,作为前端开发的基本要求,当然这也相对属于前端领域的浅水区;再往下一层次,则通常为基建层,这主要包括框架/库、工程效能、安全兜底、性能稳定等相关的建设,这里也是绝大多数有一定开发经验的前端开发最喜欢探索和涉猎的层级,其仍然以前端常见的开发为主,但又比业务交付层更加抽象一些,通常来说,大部分前端工程师都会这一层次去游走,既不脱离业务,又未涉及底层;再往深处,则通常会来到关于容器运行的层次,这通常包括:浏览器内核、运行时环境、标准、协议等相关的深入研究,这也是最不为大多数前端所能触及的部分,但这确实是前端领域需要攻克的难关,虽然下了功夫见效也不大,但是对于前端天花板的突破,个人认为其实是一个比较重要的层次;最后,对于系统层次,这里目前并不属于前端的范畴了,一般来说不会用类js语言去书写操作系统。因而对于前端工程师来说,突破领域主要在于前三个层次,即:交付层、基建层、容器层,保证交付能力,拓展基建能力,涉猎容器能力,这样在纵深层次上也会能得到一定的突破。

在复盘了整个22年的关键词后,下面将按照不同的方向,主义看看过去一年的前端领域具体发展,以及对23年能够得到哪些启示与发展。

工程化方向

工程化方向是去年整体更新最多的一个领域,除了前端本身发展过程的历史背景外,个人认为工程化作为IT领域的一个重要方向,同时也作为与整个技术管理等相互关联的重要领域,各位巨佬绝对不会放过这么一个热门方向的。下面,我将选几个个人认为比较重要的更新简要回顾及探讨下工程化的过去与23年的展望。

  1. 构建:作为工程化领域最为重要的一个节点,肯定是群雄逐鹿的主战场。对前端构建而言,目前市场占有量仍然以Webpack为主,但是随着对“bundle”和“bundless”方案的探讨;以Vite等为主的构建方案,对构建方式也提出了自己的一套理论方案,但bundless的方案需要有一定的前提支撑。目前,Vite等构建方案也在构建方案中占据了一席之地,同时诸多跨语言构建方案也一直冲击着工程化的市场。因而,个人认为23年工程化构建领域的混战仍会持续,但真要替代Webpack作为生产环境的主流方案,目前来看明年还不太容易达到,毕竟整体的生态而言,Webpack还是有很强的体系支撑的。
  2. 模块化:自从诞生了ESM,前端模块化方案逐步从IIFE、UMD、AMD、CommonJS、ESM等诸多模块化方案,逐步收敛到了ESM和CJS之争,并且这个争斗也延伸到了打包器的站队问题中。模块化,作为前端界的阿基里斯之踵,一直以来困扰着诸多前端开发者,但官方原生支持了之后,前端工程链路也都同步进行了转向。个人认为,短期内还是会存在多模块化共存的现象,但长期看好ESM一统江湖的可能,这也给以天生支持ESM的打包器,诸如:Rollup、Vite等一些底气和支撑。
  3. Monorepo:作为工程管理方案的一种技术理念,monorepo并不是一种技术方案,而其实是一种技术理念。在前端工程化中的monorepo,则以lerna、pnpm、nx等解决方案为主,同时配合着turbopack推出的turborepo也是monorepo整个仓库管理方案的大闭环解决思路。相较于multirepo及monolith的方案,虽然monorepo有着共享组合的方便,但是对于权限体系管理却有着一定的弊端。个人认为,前端领域的monorepo还需要去寻找一个能够平衡共享与隔离问题的解决方案,最终才能真正的解决工程链路中的体验问题。
  4. 包管理:前端的包管理,不同于后端的包体系,除了之前明显的npm地域问题外,还涉及到对应的更新变化问题。虽然前端繁荣发展离不开开源package的层出不穷,但对于整个包体系的管理确实可以借鉴下其他语言的设计思路,既能灵活使用,又能规范可依。

综上,整个工程化领域在22年发展还是很迅猛的,但还是希望能够各位巨佬针对核心问题进行突破创新。可以预见,23年仍会是工程化的一年,毕竟拉来其他领域的开发者共建共享,前端才能更有话语权[手动狗头]。

Node.js方向

Node.js方向相对来说还是主要落脚于前端自己的后端化之路,也是其最适合的地方,这里最主要的方向仍然是Serverless的前端贡献。

  1. NoSlate:NoSlate是阿里开源的一款Serverless的解决方案,从调度、存储、运行时等多个方面进行优化自研,提出了一套更加简洁轻量高效的方案。
  2. Winter:全称是Web-interoperable Runtime,其本质也是一个V8 Worker,经过标准化后,其基本可以作为FaaS函数运行时标准

综上,整个Node.js领域的发展相对来说还是在Serverless细分领域的建树,这其实也是Node.js一个比较好的应用方向,毕竟真正使用Node.js来作为传统后端开发还是有一定的局限性的,相信23年仍然会有和云原生领域更深入的结合。

跨端方向

整个跨端方向大体来说,去年几乎都不约而同的选择了基于容器的方案,借鉴云原生领域相关的理念,也是通解跨端的一种不错的思路。

  1. Lath:Lath是阿里的一款纯前端容器,提供从事件处理等多跨平台的方案,对于多场景进行容器优化。
  2. Tauri:作为Electron的竞品,其本身是基于Rust和Webview2进行相关的构建的,虽然不算是一种容器方案,但是对于内存+渲染的组合,其还是对Electron的痛点进行了一定程度的改进。

综上,整个跨端领域相对来说还是专注于“Write Once, Run EveryWhere”的理念,但确实很难真正的做到。个人认为,跨端方向可以专注于某几种场景的通用,真正的全部通用是没有意义的,因为兼容越多,意味着polyfill也就越多,有时候却是得不偿失的。

智能化方向

智能化方向最突出的进展莫过于低代码领域的相关发展,本身将低代码划入到智能化领域确实稍微有些牵强,但低代码的自动化实现确实是可以借助于AI的相关能力的,因而也将其划入到智能化方向;除了本身的D2C发展外,最近新出的ChatGPT在前端领域也有一定的发展前景。

  1. D2C:作为前端领域传统的智能化细分领域,利用机器视觉自动生成代码,关键在于对不同模型的优化。
  2. 低代码:低代码领域的规范与约定形成更为重要,阿里开源的LowCodeEngine可以作为低代码构建的一个参考,另外与智能化方向的自动生成其实可能更有研究价值。
  3. ChatGPT:作为22年年底最火的AI场景,对于回答等的薅羊毛行为,想必会很快出台禁止方案。但是在前端领域,对于代码方案等进行相关指导还是有一定的借鉴意义的。

综上,整个智能化领域除了传统的D2C方案外,可以考虑NLP相关发展在前端领域的落地与创新。

互动方向

互动方向应该是目前前端最为神秘的一个方向,充满了很多未知,个人认为,最主要的在于对新交互方式的探索与场景运用。

  1. 元宇宙:前端作为一种靠近用户的工种,其本身技术也会提供诸如:XR的形态,在虚拟人物生成等方面,确实还是会有一些研究可能存在。
  2. Web3:前端作为Web领域的重要一环,在第三世代中,肯定也会有重要的运用场景。个人认为,对于区块链相关的上层应用,如DApp等,可能还是有一些发展方向的。

综上,互动方向应该是23年变化最快的一个领域,应该也是最有可能产生新突破的方向,目前还充满很多机会与挑战,有想法的同学可以提前布局。

中后台方向

随着单页的瓶颈出现,中后台方向又出现了“分久必合,合久必分”的态势,不论是微前端还是Islands架构,其都有一种新瓶装旧酒的感觉。

  1. 微前端:目前通用的微前端方案大都以“类SPA”形式进行创建,其本身在接入其他SPA时有着天然的弊端。因而,个人认为真正意义上的“微前端”还尚未出现,私以为或许考虑借鉴下微服务的容器化思维,来真正的实现“微”的效果。
  2. Islands:Islands架构的本质其实是多种渲染方式的选择,从MPA到SPA,又从SPA回归到MPA。其实,个人认为可以基于场景的不同进行不同的选择,资源的合理使用来提供最佳的用户体验。

综上,中后台方向基本还是基于模板的选择构建,技术的选择并不一味的向前突进,有时走下复古风格,也是另一种思考和体验。

可视化方向

最后,对于可视化方向,个人认为可以对于不同的特定场景进行底层构建,从而产生更适合特定领域的图形可视库。

  1. 领域图形库:对于可视化领域而言,最重要的其实是图形库的选择和开发,但是对于不同层次的可视化方案,也是构建出基于特定领域的专有图形库,解决一类问题,从而有一定的突破和创新。
  2. 3D图形库:大部分的图形库往往注重与二维图形库的创建,对于三维可视/编辑领域,也是有着十分广阔的场景的。

综上,可视化方向可以关注特定领域的底层建设,以及对应于三维图形库的突破与开发。

总结

最后,回顾下整个前端领域的发展,可以大致总结如下:

工程体系蓬勃发展,容器跨端各相竞逐;

智能领域多维演化,互动体验机会丛生;

架构方案和而不同,可视图形专精特新;

前端聚焦择善而从,深入突破玉汝于成。

好了,2023年到了,祝大家在新的一年里,都能够奋激勃发,在各自领域中都能有所建树和进步,共勉!

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

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

相关文章

Linux | 从头开始理解Linux以及工作日常常用命令

Linux的版本 分很多种,家庭用途版本有:Linux Mint、Ubuntu、OpenSUSE、Fedora、PC-BSD;商业用途版本有:Debian、RHEL、CentOS;还有其他版本:FreeBSD、OpenBSD、Solaris、OpenSolaris等。 目录 1.操作系统…

QT学习 控件(三)输入文本类与快捷键:QPlainText;QKeySequenceEdit

文章目录QPlainTextQKeySequenceEdit前情回顾: QLineEit QTextEdit文本输入类 QPlainTextEdit是一个简略版本的类,它的性能优于QTextEdit, 主要是因为在文本文档中使用QPlainTextDocumentLayout简化文本布局 QPlainText QPlainText和QTextEdit大致功能…

Dijkstra求最短路(堆优化)

给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为非负值。 请你求出 1 号点到 n 号点的最短距离,如果无法从1 号点走到 n 号点,则输出 −1。 输入格式 第一行包含整数 n 和 m。 接下来 m 行每行包含三个整…

力扣刷题记录——205.同构字符串、217. 存在重复元素、283. 移动零

本专栏主要记录力扣的刷题记录,备战蓝桥杯,供复盘和优化算法使用,也希望给大家带来帮助,博主是算法小白,希望各位大佬不要见笑,今天要分享的是——《205.同构字符串、217. 存在重复元素、283. 移动零》。 目…

(十四)大白话磁盘文件中, 40个bit位的数据头以及真实数据是如何存储的?

文章目录 1、前情回顾2、详解40个bit位数据头1、前情回顾 之前我们已经给大家讲到了在磁盘上存储数据的时候, 每一行数据都会有变长字段长度列表,逆序存放这行数据里的变长字段的长度,然后会有NULL值列表,对于允许为NULL的字段都会有一个bit位标识那个字段是否为NULL,也是…

shell第五天作业——函数与数组

题目 一、编写函数,实现打印绿色OK和红色FAILED 二、编写函数,实现判断是否有位置参数,如无参数,提示错误 三、编写函数实现两个数字做为参数,返回最大值 四、编写函数,实现两个整数为参数,…

状态压缩DP——最短Hamilton路径

状态压缩DP——最短Hamilton路径一、题目描述二、思路分析1、状态转移方程(1)状态表示——状态压缩(2)状态转移2、循环和初始化(1)循环设计(2)初始化三、代码实现一、题目描述 二、思…

(day1)自学java基础

非原创,记录学习过程,为方便自己后期复习 目录 1.Java基础概念 2.运算符 3.判断 4.循环 5.循环高级 6.数组 7.数组的内存图 8.方法 ctrlaltL 自动格式化代码 为什么要配置环境变量? 我们想在任意目录都可以打开指定软件,就…

DDR3 数据传输(四)

目录 引言 AXI从侧接口参数 AXI从侧接口信号 参考说明 引言 前文链接&#x

巧用网络指数

哈喽,好久不见!今天我们来一起聊聊网络指数。网络指数平台是以网民在线使用行为数据为基础,借助关键词表达的重要信息检索渠道,一定程度上可以反映某一话题的关注度,也可以帮助我们抓住所谓的“热点”。这里&#xff0…

源码编译mindspore,利用云服务器与wsl

文章目录tmux的使用利用WSL2设置交换空间通过编译产生的output安装tmux的使用 参考:https://blog.csdn.net/weixin_43922901/article/details/89230499 参考:http://www.ruanyifeng.com/blog/2019/10/tmux.html tmux用于远程编译,开启一个会…

2023第一天,给你们展示一下用Python实现自动答题

前言 python实现自动答题? 别管,我这就给你们展示一下 (效果图看不了 不知道为什么说我违gui)😥 话不多说,咱就直接看代码吧 代码 准备模块 import requests import parsel from selenium import webd…

create-vite 源码解析它来喽

create-vite的源码很简单,只有一个文件,代码总行数400左右,但是实际需要阅读的代码大约只有200行左右,废话不多说,直接开始吧。 代码结构 create-vite的代码结构非常简单,直接将index.ts拉到最底下&#…

项目学习--谷粒商城

1. 微服务搭建 本地安装虚拟机,静态IP划分和docker的使用微服务功能模块介绍以及业务模块划分与抽取 2. 前端搭建 3. 后端业务代码完善 云储存OSS的整合与使用JSR303校验以及自定义分组校验 4. Elasticsearch学习 Elasticsearch的基础使用Elasticsearch字段ma…

volatile 详解

1. 前言 在并发编程的过程中,volatile属性非常重要。首先我们要了解并发编程的三大特性:可见性, 有序性, 原子性而我们今天的了解的volatile 就牵扯到可见性, 有序性。同时我也会从个人了解的角度给大家分析下,如果有什么不对的地方也希望大家…

物联网与射频识别技术,课程实验(一)

目录 (1)communication.py (2)Reader.py (3)Tag.py 实验1—— EPC C1G2标准下的标签状态转换仿真 实验说明: 利用Python或Matlab模拟C1G2标签的状态转换模型; 程序应能显示标签…

深度学习:01 神经网络与激活函数

目前,最广泛使用的定义是Kohonen于1988年的描述: 神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应。 目录 对神经网络的概述 神经网络的表示 激活函数 为什么激…

2022年总结:从初二学生到算法作者的蜕变之路

目录 一年的创作历程 我和 CSDN 在编程竞赛的合作 About CBC 技术社区的发展 夜跑奇遇 About 博客之星 新年致谢 元旦祝福 一年的创作历程 2022年,这一年对于我来说是十分重要的一年。在这一年里,我作为一名初二在校学生,在CSDN上发布…

【Linux 环境变量】环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数

1.问题:为什么自己写的程序需要加上./才能执行,但是指令可以直接使用,例:ls -al? 因为:不加"./"执行程序的时候会按环境变量PATH里面的各个路径找到就正常执行,找不到就报错&#xff…

SQL笔试题总结

文章目录前言一、列转行题目:将表Student转化为下面的形式展示先放答案逐步剖析二、row_number() over() 的使用题目:统计订单交易表(orders)每个商品交易金额最高的那一条数据先放答案逐步剖析三、逐行累加题目:还是订…