前端开发的未来:回归简约,还是拥抱复杂?

4adc81c4512eccbfb343b08213349ccd.jpeg

今天和大家分享一篇国外大佬的文章,他提出了一个很有意思的观点——我们熟悉的前端开发正在逐渐消亡,并预测我们很快会回到最初的状态。让我们一起来探讨一下他的观点,看看你是赞同,欢迎大家在评论区探讨和交流。

回顾前端开发的历史

在单页应用程序(SPA)出现之前,Web应用程序通常是多页的。每当用户与应用程序交互时,服务器都会发送一整页新的内容,浏览器需要重新加载整个页面。这种频繁的页面刷新不仅拖慢了速度,还导致了不流畅的用户体验。当时的应用程序主要使用PHP、Ruby on Rails、ASP.NET等服务器端技术生成HTML代码,并将其发送到浏览器。

f454ff0a6b827c7acaf039948981292b.jpeg

那时候的Web开发者是全能选手,他们既负责前端也负责后端的开发。然而,随着Web技术的发展和用户需求的变化,新的解决方案应运而生,这些解决方案使得用户可以更流畅地与交互界面进行操作。于是,BackboneJs和AngularJs等早期的SPA解决方案开始出现,减轻了服务器的负担,并通过JS提供了更高的交互性。

c90d1f8834a10fb37bb2b8f70c6db8bd.jpeg

前端与后端的分离

随着技术的发展,前端和后端开发开始分离。前端开发者专注于用户界面,使用HTML、CSS和JavaScript,并与API和服务器交互。后端开发者则专注于数据处理、业务逻辑、数据库操作和创建服务器API。这种分工使得前端开发变得更加复杂,从简单的表单和列表到路由管理、状态管理、浏览器API、请求授权令牌、数据映射等。

然而,这种复杂性也带来了一系列问题:

  • 沟通与协调困难:API契约和通信方法的复杂化,增加了沟通成本。

  • 知识与理解的差异:前后端开发者之间的理解差异,可能导致性能和维护问题。

  • 重复工作:前后端在许多CRUD操作上的重复工作,增加了开发时间和成本。

  • 调试与测试的难度:需要同时考虑前后端的集成问题,增加了调试和测试的复杂度。

  • SEO问题:纯JS生成的应用程序不利于搜索引擎索引,因此需要SSR和SSG解决方案。

  • 安全问题:需要保护页面上的关键数据,处理大量的个人信息。

重新思考前端开发的必要性

17c260c1c651b6bcd52523b68e6c9281.png

随着技术的进步和市场需求的变化,前端开发的角色正在发生变化。如今,许多职位要求的技能组合是(注:海外市场的趋势):

  • Python + Django

  • PHP + Laravel

  • NextJs + React

  • Nuxt + Vue

这些组合都是基于服务器的Web应用程序开发。借助于Hydration和Resumability方法,服务器现在只需渲染界面的修改部分,而无需重新加载整个页面。这带来了许多好处:

  • 简化的通信:服务器应用程序无需复杂的HTTP或WS契约,可以使用更好的方法(如gRPC)与其他服务交换信息。

  • 更快的变更处理:由于没有中间审批流程,一个人就可以直接看到用户的变更结果。

  • 整体测试:可以全面测试应用程序,减少集成测试的需求,降低错误率。

  • 优化的数据传输:只交换HTML标记,所有的“请求-响应”逻辑对用户是透明的。

  • 减少前端复杂度:无需传递大量JSON数据来恢复SPA状态,只需传递一个准备好的模板。

  • 浏览器兼容性:由于页面上的JS代码最小化,无需担心浏览器兼容性问题,也无需使用Babel等工具。

随着No-Code解决方案的出现、AI生成模板、庞大的服务器资源和SEO需求,当前的前端开发者数量和工具需求正在减少。企业主开始质疑是否真的需要纯前端开发者和纯后端开发者来开发一个简单的应用程序。

未来的发展方向

现在是重新审视是否真的需要所有这些复杂的前端开发工具的好时机。前端开发者可能需要向全栈开发者转型,兼具前端和后端技能,以保持竞争力。HTMX的出现表明,即使是后端开发者也可以轻松创建Web应用程序,而无需深入了解JavaScript。

4a15ba2678ad60c2d59d1862046f18ca.png

原作者的观点

前端开发的未来可能会回归到一种更简约、更高效的模式。虽然复杂的或无头应用程序仍然需要前后端的分离,但大多数应用程序将回归到以服务器为基础的开发方式。当前的前端开发者需要考虑提升自己的全栈开发技能,以应对未来的发展趋势。

我的看法

这篇文章不仅仅是对前端开发现状的分析,更是对我们每个开发者的一次提醒。我们需要不断思考和适应技术的变化,提升自己的综合能力。作为前端开发者,你是否也感受到如今前端工具链的复杂性?你是否也在考虑向全栈方向发展?

欢迎在评论区分享你的看法和经验,让我们一起讨论如何在这场技术变革中找到自己的位置。关注「前端达人」,一起探索更多前沿技术与实践!你的每一次留言和互动,都是对我最大的支持和鼓励。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

picoLLM:大模型的量化魔术师 上

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调重新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模…

易语言推箱子游戏(附带源码)

易语言推箱子游戏 易语言易语言的安装易语言功能特色易语言安装步骤易语言常见问题 导入游戏源码部分源码领取源码下期更新预报 易语言 易语言(EPL)是一门以中文作为程序代码编程语言,其以“易”著称,创始人为吴涛。易语言早期版…

数字孪生在气象灾害防治中的重要贡献

数字孪生技术在气象灾害防治中正发挥着越来越重要的作用。数字孪生是指通过数字化方式在虚拟空间中构建与现实世界对应的虚拟模型,通过实时数据和模拟技术进行动态映射和交互。利用数字孪生技术,气象部门可以更高效、更精准地监测、预测和应对气象灾害&a…

德人合科技——天锐绿盾内网安全管理软件 | -文档透明加密模块

天锐绿盾文档加密功能能够为各种模式的电子文档提供高强度加密保护,丰富的权限控制以及灵活的应用管理,帮助企业构建更严密的立体保密体系。 PC地址: https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee ————…

退出登录后选择记住登录状态回显用户名和密码

项目背景 : react ant 需求 : 退出登录后 , 选择了记住登录 , 回显用户名和密码 ; 未选择记住 , 则不回显用户名和密码 如图注意 : 发现一个鸡肋的问题 , 未勾选退出后 , 还是会回显 , 后来我查看了cookie和自己的逻辑都没问题 , 原来是因为我保存了密码 , 浏览器保存后自动渲…

【Python】解决Python报错:ModuleNotFoundError: No module named ‘xxx.yyy‘

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

企业如何进行快递运费对账?

在电子面单寄件取代手写纸质面单之后,加上月结寄件模式的推行,企业快递运费对账,成了行政的一个难题...... 早期的手写纸质面单寄件,企业行政或者财务相关人员,遵循寄前审批,寄后报销的原则进行对账。随着电…

WebGoat靶场搭建

WebGoat靶场介绍 WebGoat是一个由OWASP(Open Web Application Security Project)组织开发的应用平台,专门用于进行Web应用程序安全漏洞的实验。它旨在通过模拟各种安全漏洞,帮助用户了解和学习如何识别和防御这些漏洞。WebGoat基…

Python导出Jira列表

import requests import urllib3 urllib3.disable_warnings() from jira import JIRA import pandas as pd def login_jira(username,password):jira JIRA("https://jira.cn/",basic_auth(username,password))#projectsjira.project(id13)# jqlproject"云链-…

跨境电商如何有效做好店铺账号管理?

跨境电商有效做好店铺账号管理至关重要,类似亚马逊、Temu、TikTok、ebay跨境电商账号涉及多个方面,包括多个账户的安全性、合规性、操作效率等。以下是一些我自己实操的策略和实践,希望能够帮助大家更好地管理跨境电商店铺账号。 一、哪些行为…

CISCN 2022 初赛 ez_usb

还是从第一个 URB向后看 发现 同时 存在 2.8.1 2.10.1 2.4.1 但是显然 2.4.1 是7个字节 不满足 usb流量要求 只考虑 2.8.1 和 2.10.1 tshark -r ez_usb.pcapng -T json -Y "usb.src \"2.8.1\"" -e usbhid.data > 281.json 正常取数据即可 import js…

Ubuntu基础使用

快捷键: 命令行打开快捷方式:Ctrl Alt T Ctrl l 清屏 截屏: LinuxOS命令: 显示当前工作目录所有内容:ls (-a -l、-lh) -a 输入全部内容(包括隐藏文件) -l 竖向展示…

opencv-python(一)

1. 图片加载与显示 import cv2 import numpy as npif __name__"__main__":rose cv2.imread(./rose.jpeg)print(rose.shape)print(type(rose))cv2.imshow(rose,rose) # 弹出窗口cv2.waitKey() # 等待键盘输入,任意输入,触发这行代码&#xff…

java mybatis处理大数据量,开启二级缓存和配置,及注意事项,已解决

注意事项: 尽量避免使用下面方式写sql否则会降低服务器性能: mybatis二级缓存开启后,避免使用事务注解(加上事务注解后二级缓存数据会导致两次访问不一致问题): 3. 返回的对象实体类,要实现Se…

超融合架构下,虚拟机高可用机制如何构建?

作者:SmartX 产品部 钟锦锌 虚拟机高可用(High Availability,简称 HA)是虚拟化/超融合平台最常用、关键的功能之一,可在服务器发生故障时通过重建业务虚拟机以降低故障对业务带来的影响。因此,为了充分保障…

Ollama+OpenWebUI+Phi3本地大模型入门

文章目录 Ollama+OpenWebUI+Phi3本地大模型入门一、基础环境二、Ollama三、OpenWebUI + Phi3Ollama+OpenWebUI+Phi3本地大模型入门 完全不懂大模型的请绕道,相信我李一舟的课程比较适合 Ollama提供大模型运行环境,OpenWebUI提供UI,Phi3就是那个大模型。 当然,Ollama支持超级…

单片机串口接收负数的处理方法

dp80中有很多外设处理相关的都是有符号数据。 如dpm计算的结果,插入dpm后有时候会得到0xFFFFFFFE-2(从调试界面也可以看到)。

JS-09-es6常用知识1

目录 1 模板字符串 1.1 模板字符串基本用法 1.2 模板字符串解决了一些痛点 2 解构赋值 2.1 对象的解构赋值 2.2 函数参数的解构赋值 2.3 补写:属性的简写 3 rest参数 3.1 arguments 3.2 rest参数 3.3 补充:判断数据类型 4 箭头函数 4.1 …

AI大模型的生命周期:从开发到退役的全面解析

前言 人工智能大模型(AI大模型)是当前AI领域的一大热点,它们具有强大的计算能力和广泛的应用前景。本文将全面介绍AI大模型的基础知识、训练过程、使用方法和应用场景。 一、初步了解AI大模型 AI大模型,通常指的是参数量达到亿…

Superset二次开发之Github项目推送到GitLab仓库

以下是从GitHub克隆Superset项目并将其推送到GitLab的详细操作步骤 lab 地址: xxx lab 配置: 生成SSH密钥 ssh-keygen -t rsa -b 4096 -C "邮箱地址" 默认情况下密钥会生成在~/.ssh (/c/Users/Administrator/.ssh/id_rsa)目录下。 公钥添加到GitLab: 打开公钥文件…