从2023看2024前端发展趋势

news2025/3/1 10:11:20

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

前言

流光溯影,纵观2023全年,整个前端业界呈现出百业凋零之状,更不乏有“前端已死”等论调甚嚣尘上。从全局视角看IT行业,除了AI领域的大语言模型爆发外,整体都鲜有特别亮眼及突出的技术展现。故而,作为IT领域中细分方向的前端行业,加之整体经济周期的影响,今年的这种形势也算因之有素。然则,行有不得则需反求诸己,私以为各位前端同学应该以“守正”之心念搏“出新”之机遇。因此,以下个人将分享一些各位前端同学应该调整的策略以及未来一年中一些可能出现的机会与趋势。

守正

“持中守正,方可行稳致远”,作为前端工程师,个人认为在当下情势下需舍弃虚妄无用的奇技淫巧,而着力提升底层内核。何谓“奇技淫巧”?私以为前端中的奇技淫巧无外乎各种绚丽效果之呈现技巧,而不探究其内在底层内核,即:仅着眼于当下一时之实现,而无论内在之原理,所谓“不求甚解”大致如此。个人认为,过度关注于技法则易陷入细节完成后之满足,而唯有透过现象看到本质内层,才可触类旁通。“点动成线,线动成面,面动成体”,抓住底层相通之处,形成自己的体系化系统,由内核带动外延才能真正保持一个高水平的眼界与格局。所谓“大巧不工,重剑无锋”,保持对底层原理的探索与思考,才能守道之法而行术之器。举个例子,对JavaScript语言本身的探究就较之实现一个页面逻辑本身来的重要,当内修固稳之后才能形成质的飞跃,内固而外化,厚积而薄发,而内功心法的修炼往往却十分枯燥难以坚持。所以,“仰之弥高,钻之弥坚”,内核强大才能催动外物的延展。

出新

“知常明变者赢,守正出新者进”,诚然,大环境的变化也催化了整个前端走向的变化,近几年以来前端业界大部分的出新大体都来自其他领域的延展融合。为了更好的适应当下的变化,前端工程师不能仅仅局限于本身工作范畴而不去拓展新的边界。个人认为,未来几年一定会朝着更加整合多元的趋势发展,一专多能、具备“特种化作战能力”的前端才是真正意义上的现代化前端。一个前端如果只会前端,那也成不了最好的前端,想要能够高效拓展自己的边界则正需要源于“守正”沉淀下来的内核系统而带来的无限放大。故,“凡战者,以正合,以奇胜”,抱朴守拙才能推陈出新。

综上,作为新时代的前端工程师,前端不会消亡而只会演化。或者更准确的说,传统意义上的前端确实已死,但是现代化的前端则会要求是有一专长且具备更加全面“特种化单兵作战能力”的T型人才。那么,对于专项能力方面,个人认为未来一年在工程化方向、Node.js方向、跨端方向、智能化方向、互动方向、中后台方向以及可视化方向将会有如下变化:

工程化方向

首先,对于工程化方向,个人认为会有以下几个趋势:

  1. 锈(Rust)化:Rust对前端工程领域的侵入已成不可逆之势,但现有JavaScript工具链不会消亡,终局来看应该形成一个融合优化的平衡形态,如:rust和js串并联组合使用等,工具参考:swcTurbopackRspackRolldown等;
  2. Low Code:谈了几年的Low Code能火的形式其实早就存在了,不是近几年才突现的,而且“低代码不是银弹”!在工程2D(to Developer)领域,低代码的亮点在于出码,并且Pro Code和Low Code的复杂度会有一个临界值,超过临界值,Low Code复杂度会成指数级上升;
  3. 供应链建设:前端工程化的走向未来会像传统供应链那样形成上下游链路,而这其中的安全及构件协议等内容会是未来降本增效的一个重要发力点;
  4. 平台工程:当下的技术爆炸导致的选择困难,平台工程其实是一个化繁为简的思路,方式未必正确,但收敛方向是对的;
  5. 大库处理:算是monorepo出现后的必然结果,对仓库管理及Git CLI扩展的变革会有新的挑战。

Node.js方向

其次,对Node.js方向而言,Node.js本身已经难有新的变化,未来会向着安全平稳的方向发展,而伴随的环境生态才是变化的重心,包括:

  1. 边缘计算:Node.js在边缘侧有着天然的优势,本身JavaScript引擎及函数第一优先级的特性就十分适合边缘场景,而对边缘运行时(Edge Runtime)的争夺会是各大云厂商争夺的焦点;
  2. tRPC:正如Go有gRPC一样,基于TypeScript的远程调用也是一种RPC的实现,在边缘场景下也更加适用;
  3. 流量计算:云边端协同场景下,对于边缘侧产物的协同更新会涉及流量计算、edge KV等,参考:蚂蚁金服Unio框架。

跨端方向

再者,对于跨端方向而言,2C领域日渐乏力,新的终端形态会是主流,包括:

  1. TS + Wasm:将TypeScript直接编译为wasm的工具链,让前端真正的能够使用Wasm、真正的能够跨平台,案例参考:WASMR、TS2WASM等;
  2. IoT:考虑不同IoT设备开发使用,包括:手表、眼镜等;
  3. 鸿蒙:基于鸿蒙操作系统的应用开发,如:ArkUI、ArkTS等;
  4. 多终端模式:一家独大不会实现,多终端模式才是未来;
  5. 内核:基于现有内核调优优化,形成多端增强能力统一。

智能化方向

智能化是今年最热的一个话题,前端也不另外,对前端领域的冲击可能会有如下变化:

  1. AIGC:前端对大语言模型等底层的研究很难介入,更多的是对其上游应用层的改革创新,可能会出现相对GUI(Graphic UI)的LUI(Langchain UI)或者AUI(Artificial UI);
  2. ChatGPT:已有GPT的最佳实践在前端侧的应用目前来看主要包括:单元测试和Code Review等场景;
  3. 编辑器:所有编辑器都是大语言模型接入的入口,包括:开发者IDE以及低代码编辑器等;
  4. WebNN:Web领域直接调用机器学习能力,当前已发布候选推荐草案,可以关注后续变化;
  5. SDK:前端基于大语言模型能力提供上层的开发者封装,包括:Vercel AI SDK等。

互动方向

互动方向看似被智能化方向占了风头,但其内在潜力也是很大的,可能会成为今年的爆发口:

  1. DAPP UI:前端在区块链领域主要还是在DApp的相关实践,可以参考:蚂蚁金服新出的Ant Design Web3组件库;
  2. 数字孪生:结合Unity、Unreal等现有游戏引擎实现各端互动渲染,如:WebF等;
  3. 空间小程序:在AR空间开发小程序,对于Vision Pro等新的头显设备进行应用实现,如:JSAR等;
  4. 隐私计算:隐私链等新兴方向的应用开发。

中后台方向

随着阿里等大厂拆中台将业务体系划分后,中后台方向也从单体、微前端等逐步发生了变化:

  1. Web Components:所有基于类Single Spa的微前端都是对现有技术的一种拟合和妥协,Web Components的全面推广才有可能实现浏览器侧的前端组件化,对应的组件库形态也将不依赖于框架,参考:Quarkc、Lit等;
  2. 微应用:和之前的island架构类似,以微组件(Widget)形态对中后台应用进行构建;
  3. 可视化配置:为实现更好的编辑定制效果,对单个页面进行配置化,参考:Builder.io;
  4. 页面模板:抽离更多页面模板而不是整个的页面应用Template,化整为零。

可视化方向

可视化方向则是出现了许多新兴的形式展现,包括:

  1. 可视化叙事:提供叙事形态的可视化呈现,将静态图标进行动态化展现,参考:VisActor等;
  2. 混合渲染:渲染方式上借鉴更多其他渲染方案,如:rust+wasm+webgl 3d渲染;
  3. Web BIM/CIM:重业务领域的web可视化呈现,包括:建筑信息模型BIM(Building Information Modeling)、城市信息模型CIM(City Information Modeling)等。

总结

综上,对整个2023年的前端发展可做如下总结:

守正持中,致远出新

知常明变,合正奇出

工程锈化,边缘运行

多端编译,智能叠加

互动分化,微件组合

动静展现,渲染多光

因势利导,转石于山

前端不死,未来可期

2024已来,愿各位前端开发者在新的一年里慎思明辨、致远笃行,共勉!

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

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

相关文章

Linux下使用Wireshark抓包教程

在实际开发中,涉及网络传输的环节是非常多的。在这些过程中,我们经常有查看被传输的数据信息的需求,因此,抓包工具应运而生。Wireshark便是一款非常有名的抓包及分析软件,具有强大的协议解析能力。本文将介绍如何在Lin…

用通俗易懂的方式讲解大模型:ChatGLM3-6B 功能原理解析

上次我们介绍了 ChatGLM3-6B 的部署,虽然我们的大语言模型(LLM)部署起来了,新功能也试用了,但问题很多的小明就要问了,这其中的实现原理是什么呢?到底是怎么实现的呢? 那今天我们就…

第3课 使用FFmpeg获取并播放音频流

本课对应源文件下载链接: https://download.csdn.net/download/XiBuQiuChong/88680079 FFmpeg作为一套庞大的音视频处理开源工具,其源码有太多值得研究的地方。但对于大多数初学者而言,如何快速利用相关的API写出自己想要的东西才是迫切需要…

HTML+CSS+JAVASCRIPT实战项目——新年快乐特效

生成动态视频 <!doctype html> <html> <head><meta charset"utf-8" name"viewport" content"widthdevice-width, initial-scale1.0, maximum-scale1.0, minimum-scale1.0, user-scalableno"/><title>2024新年快乐…

LabVIEW开发智能火灾自动报警系统

LabVIEW开发智能火灾自动报警系统 系统基于LabVIEW虚拟仪器开发&#xff0c;由火灾报警控制器、感温感烟探测器、手动报警器、声光报警器、ZigBee无线通讯节点以及上位机电脑等组成&#xff0c;展示了LabVIEW在智能化火灾预警与控制方面的应用。该系统通过结合二总线协议和Zig…

kivy中的GridLayout

说明 GridLayout 是 Kivy 框架中的一个布局管理器&#xff0c;它允许你在网格中排列子控件。你可以指定网格的行数和列数&#xff0c;然后添加子控件到网格中。GridLayout 会自动调整子控件的位置和大小&#xff0c;以适应网格的单元格。 在 Kivy 框架中&#xff0c;size_hint…

详解维吉尼亚密码(附四种攻击策略)

目录 一. 介绍 二. 破解维吉尼亚密码 2.1 频率统计 2.2 提高型频率统计法 2.3 Kasiski攻击法 2.4 重合指数攻击法&#xff08;index of coincidence method&#xff09; 三. 小结 一. 介绍 我们知道英语字母的出现频率是有规律的&#xff0c;比如像下表&#xff1a; 掌…

深入解析泛型

一、泛型的诞生 在C#1 中我们还没有泛型的时候我们收集数据通常需要使用到数组&#xff0c;或者使用封装好的数组集合Hashtable ArrayList。 举个例子&#xff1a; 我们在读取文件的时候就会需要一个数组来储存读取的数据的内容 但我们并不知数据的具体长度也就无法在声明的…

小梅哥Xilinx FPGA学习笔记17——模块化设计基础之加减法计数器

目录 一&#xff1a; 章节导读 1.1 任务要求 1.2 模块功能划分 二&#xff1a; 代码设计 2.1 灯控制逻辑&#xff08;led_ctrl&#xff09; 2.2 按键消抖模块&#xff08;key_filter&#xff09; 2.3 顶层模块&#xff08;key_led&#xff09; 2.4 引脚绑定 一&#x…

报表控件FastReport VCL 中的新 S3 传输 (Amazon)

在本文中&#xff0c;我们将探讨新的 S3 传输。从功能上来说&#xff0c;S3 与大多数人习惯使用的有很大不同&#xff0c;因此在本文的开头&#xff0c;我们将详细介绍它的主要功能。 FastReport .NET 是适用于.NET Core 3&#xff0c;ASP.NET&#xff0c;MVC和Windows窗体的全…

java maven项目添加oracle jdbc的依赖

一般添加依赖是直接在pom.xml中添加配置即可&#xff0c;Maven会自动获取对应的jar包&#xff0c;但是oracle驱动依赖添加后会显示红色&#xff0c;代表找不到依赖项&#xff0c;是因为Oracle授权问题&#xff0c;Maven3不提供Oracle JDBC driver&#xff0c;为了在Maven项目中…

LinkSLA管家式运维:为企业打造定制化 IT 支持体系

引言 在数字化转型的浪潮中&#xff0c;企业信息系统繁多&#xff0c;涉及人员复杂&#xff0c;且企业经营管理活动对IT系统的依赖程度越来越高。传统的运维模式已经不能满足企业对运维工作全面性、灵活性、稳定性和安全性的需求。管家式运维作为一种新型服务模式&#xff0c;…

CUDA安装与Tensorflow1-gpu环境搭建(windows版)

一、前提说明 1.1 Tensorflow-gpu环境搭建基本步骤 (1)明确环境搭建资源需求与下载 (2)安装CUDA与cuDNN (3)用Anaconda搭建tensorflow-gpu环境 (4)tensorflow-gpu环境测试 1.2 个人说明 由于科研需要复现机器学习、深度学习某些经典实验&#xff0c;这…

商品销售数据爬取分析可视化系统 爬虫+机器学习 淘宝销售数据 预测算法模型 大屏 大数据毕业设计(附源码)✅

毕业设计&#xff1a;2023-2024年计算机专业毕业设计选题汇总&#xff08;建议收藏&#xff09; 毕业设计&#xff1a;2023-2024年最新最全计算机专业毕设选题推荐汇总 &#x1f345;感兴趣的可以先收藏起来&#xff0c;点赞、关注不迷路&#xff0c;大家在毕设选题&#xff…

网络层解读

基本介绍 概述 当两台主机之间的距离较远(如相隔几十或几百公里&#xff0c;甚至几千公里)时&#xff0c;就需要另一种结构的网络&#xff0c;即广域网。广域网尚无严格的定义。通常是指覆盖范围很广(远超过一个城市的范围)的长距离的单个网络。它由一些结点交换机以及连接这些…

numpy数组04-数组的轴和读取数据

一、数组的轴 在numpy中数组的轴可以理解为方向&#xff0c;使用0&#xff0c;1&#xff0c;2...数字表示。 对于一个一维数组&#xff0c;只有一个0轴&#xff0c;对于2维数组&#xff08;如shape&#xff08;2&#xff0c;2&#xff09;&#xff09;&#xff0c;有0轴和1轴…

Windows搭建RTSP视频流服务(EasyDarWin服务器版)

文章目录 引言1、安装FFmpeg2、安装EasyDarWin3、实现本地\虚拟摄像头推流服务4、使用VLC或PotPlayer可视化播放器播放视频5、RTSP / RTMP系列文章 引言 RTSP和RTMP视频流的区别 RTSP &#xff08;Real-Time Streaming Protocol&#xff09;实时流媒体协议。 RTSP定义流格式&am…

idea利用JRebel插件,无需重启,实现Spring Boot项目热重载,节省开发时间和精力!

插件介绍 官方介绍 翻译过来的意思是&#xff1a; JRebel 是一款提高开发效率的工具&#xff0c;允许开发者立即重新加载代码更改。它跳过了在Java开发中常见的重新构建、重启和重新部署循环。JRebel 能够让开发者在相同的时间内完成更多工作&#xff0c;并且在编码时能够保持…

付费进群系统源码带定位完整独立版(12月30日)再次修复首发

搭建教程 nginx1.2 php5.6–7.2均可 最好是7.2 第一步上传文件程序到网站根目录解压 第二步导入数据库&#xff08;shujuku.sql&#xff09; 第三步修改/config/database.php里面的数据库地址 第四步修改/config/extra/ip.php里面的域名 第四步设置伪静态thinkphp 总后台账号&…

unity控制摄像机几种视角实现方式

目录 1、按下鼠标右键可以实现摄像机上下左右旋转 2、自由视角 3、摄像头跟随视角 4、跟随自由视角 5、第一人称跟随视角 python学习汇总连接&#xff1a; 1、按下鼠标右键可以实现摄像机上下左右旋转 这段代码定义了一个名为CameraRotate的脚本&#xff0c;用于控制摄像…