开发框架前后端分离的好处是什么

关于将前端和后端保持在一起或分开,存在广泛的意见分歧。唯一重要的是,这两个组件对于开发成熟的应用程序都是必需的。

考虑:紧密耦合的前端和后端

许多人认为后端和前端的分离是一个坏主意,这两个角色之间没有太大区别。

以下几点支持为什么前端和后端应该保持在一起:

  • 类似的概念和语法:功能抽象通过消除不必要的特征,将重点放在基本的项目功能上,成为主要帮助。为了解决这些问题,在客户端和服务器环境中使用了类似的概念和语法。例如,ReactiveX是一种具有可观察模式的API异步编程,可以用各种语言实现,这有助于在前面和后面的相同响应式抽象上轻松构建项目。
     
  • 沟通不畅是最低限度的:通信需要完好无损,以实现无缝的应用程序开发过程。前端和后端的划分将造成沟通鸿沟,使两个团队不了解或不清楚有关各自端变化的信息。将前端和后端保持在一起将减少此类错误沟通的机会,从而促进应用程序的顺利开发。
     
  • 高效利用资源:聘请全栈开发人员进行前端和后端耦合。当考虑大型项目时,需要在客户端和服务器端解决一些任务。在这种情况下,全栈开发人员从应用程序的一部分跳到另一部分,没有任何额外的开销。在开发团队中拥有全栈开发人员既经济高效又省时。
     
  • 高效的团队合作,完全拥有所有权:如果对业务需求有清晰的了解,前端和后端的集成是富有成效的。这样,参与的多学科团队将迅速适应开发环境,并完全拥有项目。开发团队一起工作更长的时间,以有效地交付产品。
     
  • 适用于简单和小型项目:对于简单的 CRUD(创建、读取、更新和删除)操作或较小的代码库,耦合的前端后端方法绰绰有余,因为在这种情况下,大多数任务已经解决,不需要额外的输入。
     
  • 开箱即用的安全性:将前端和后端连接在一起具有许多安全优势。例如,在这种情况下,无法公开 API,从而保护 API 免受任何类型的攻击。

所以我们谈到了前端和后端加入到现在的优势。但是,现代应用程序开发模型由于其缺点,正在看到紧密耦合的前端和后端被其他方法取代。

以下是将前端和后端连接在一起的缺点:

  • 在简单网站的情况下,前端和后端加入是成功的。在网站上添加网页会使系统效率低下,无法提供多种类型的内容、图像或其他媒体元素。
     
  • 所有处理任务都由服务器在最终将内容交付给用户之前完成。这最终使服务器无法有效地处理多个用户请求。
     
  • 自定义的范围较小,因为在后端执行的任何更改都会直接影响网站的前端。此外,任何开发更改或维护都需要比平时更长的时间。

为了处理大型项目,例如拥有数十亿行代码,前端后端紧密耦合将不起作用。由于大型项目太大,任何人都无法完全掌握。全栈开发人员将无法完全控制项目。

来源:呆伯特

在开发环境中分离前端后端

功能强大且高性能的Web浏览器具有增强的处理功能,有助于在Web应用程序开发模型中将前端和后端分离后实现无缝运行。

前端和后端分离的主要好处如下所述:

  • 广泛的技术专家覆盖:在多层开发环境架构中,复杂的技术负责任务。因此,为了创建一个复杂的系统,需要特定的技术专家。划分前端和后端有助于获得各自技术专家的程序员。此外,消除双方可能对另一方施加的技术选择的限制。从而使该过程在这样的开发环境中顺利进行。
     
  • 模块性:由于此类开发模型中的组件或模块是独立的,因此更换模块或对模块进行任何更改都是顺利的。Web 应用程序的后端模块中的更改不会影响前端部分,反之亦然。因此,不会覆盖或弄乱对方的工作。
     
  • 快速开发和部署:由于各个团队在项目上并行工作并且完全连贯,这有助于快速同时开发 Web 应用程序,从而实现快速应用程序部署。
     
  • API 整合:随着大量设备的可用性,需要对各种版本的代码(网站,iOS应用程序,Android应用程序)进行管理。其中大多数需要相同的代码库。基于 API 的网站简化了开发人员的一切,因为现在 API 处理代码管理。因此,开发人员需要处理的代码更少。

我们看到松散耦合的前端和后端带来了许多主要的好处。

但是这种分离也带来了一系列缺点,它们是:

  • 与 API 的通信和代码管理增加了团队的文档开销负担。除此之外,没有明确的方法来解决前端的 API 更改。
     
  • 工作量随着前端和后端的划分而增加。为了提交任何更改,需要进行两次同步提交,而不是一次。
     
  • 前端和后端的集成会导致错误、进度延迟,在最坏的情况下会导致开发失败。此外,团队之间的沟通效率低下。

分还是分?选择什么

正如我们所看到的,前端和后端的鸿沟可能没有什么好处。但这些好处可以扩展到独立升级、熟练的员工集成、可重用的 API 等。最重要的是,较少的依赖项减少了开发块的机会。

我们并不是说这些扩展优势使前端和后端与前端后端连接区分开来最好。现实情况是,这一切都取决于具体情况。大量的优势清单并不能使一个优于另一个。

建议在做出有关应用程序的前端和后端的拆分或连接的任何决定之前,先考虑项目的传入和输出。

结论

前端和后端的加入和分离有一些优点和缺点。考虑到目前的发展情况,可以选择两者中最好的。

开发框架前后端分离的好处是什么 

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

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

相关文章

MySQL-SQL存储过程/触发器详解(下)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏&#xf…

计算机体系结构基础知识介绍之缓存性能的十大进阶优化之编译器优化和硬件预取(六)

优化七:编译器优化,降低miss率 处理器和主内存之间不断扩大的性能差距促使编译器编写者仔细检查内存层次结构,看看编译时优化是否可以提高性能。再次,研究分为指令缺失的改进和数据缺失的改进。接下来介绍的优化可以在许多现代编…

【图像识别】openCV基础知识

图像处理基础 一、使用OpenCV前要准备的工作1.先导入需要用到的库2.自定义,图片展示函数 二、开始学习常用函数1.生成随机整数①. 函数说明②.代码a. 二维灰度图b. 三维彩色图 ③.代码现象a. 二维灰度图b. 三维彩色图 2.通道的分离与合并①先导入一张图片② 将其RGB…

Python获取指定路径下所有文件的绝对路径

import osdef get_file_path_by_name(file_dir, format.JPG):获取指定路径下所有文件的绝对路径:param file_dir::return:L []for root, dirs, files in os.walk(file_dir): # 获取所有文件for file in files: # 遍历所有文件名if os.path.splitext(file)[1] format: L.ap…

typeScript(持续吐血版)

typeScript-02-进阶(TSVue3) 结合vue3来使用TypeScript 使用vite来创建vue3TS的项目 使用vite创建项目,并选择带ts的版本 npm create vitelatest my-vue-ts-app – --template vue-ts 参考链接:https://vuejs.org/guide/typescript/composition-api…

深度学习基础

1 机器学习、深度学习、人工智能 1.1 机器学习 机器学习是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身性能的学科。 基本步骤:获取数据、数据预处理、特征提取、特征选择…

FFmpeg5.0源码阅读—— avcodec_send_packetavcodec_receive_frame

摘要:本文主要描述了FFmpeg中用于解码的接口的具体调用流程,详细描述了该接口被调用时所作的具体工作。   关键字:ffmpeg、avcodec_send_packet、avcodec_receive_frame   读者须知:读者需要了解FFmpeg的基本使用流程&#xf…

MySQL 主从复制[异步 同步 半同步复制] 读写分离 优化 (非常重要)

MySQL 主从复制 1、什么是读写分离? 读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据…

计算机网络概述(三)

常见的计算机网络体系结构 OSI体系结构: 物理层→数据链路层→网络层→运输层→会话层→表示层→应用层 TCP/IP体系结构: 网络接口层→网际层→运输层→应用层 一般用户的设备都有TCP/IP协议用于连接因特网,TCP/IP的网络接口层并没有规定使用…

【Redis】秒杀业务设计、悲观锁与乐观锁

1 全局ID生成器 一些情境下,使用数据库的ID自增将会产生一些问题。 一方面,自增ID规律性明显,可能被猜测出来并产生一些漏洞另一方面,当数据量很大很大很大时,单表数据量可能会受到限制,需要分表&#xf…

网络编程5——TCP协议的五大效率机制:滑动窗口+流量控制+拥塞控制+延时应答+捎带应答

文章目录 前言一、TCP协议段与机制TCP协议的特点TCP报头结构TCP协议的机制与特性 二、TCP协议的 滑动窗口机制 三、TCP协议的 流量控制机制 四、TCP协议的 拥塞控制机制 五、TCP协议的 延时应答机制 六、TCP协议的 捎带应答机制 总结 前言 本人是一个普通程序猿!分享一点自己的…

RabbitMQ在SpringBoot中的高级应用(2)

过期时间 1.单独的设置队列的存活时间,队列中的所有消息的过期时间一样 Bean//创建交换机public DirectExchange ttlQueueExchange(){// 交换机名称 是否持久化 是否自动删除return new DirectExchange("ttl_queue_log",true,false);}Bean//创建队列publ…

吴恩达ChatGPT《LangChain for LLM Application Development》笔记

基于 LangChain 的 LLM 应用开发 1. 介绍 现在,使用 Prompt 可以快速开发一个应用程序,但是一个应用程序可能需要多次写Prompt,并对 LLM 的输出结果进行解析。因此,需要编写很多胶水代码。 Harrison Chase 创建的 LangChain 框…

需求分析引言:架构漫谈(五)架构师成长之路

我研发领域也从事了一些年,期间也做过一些架构设计工作,包括C#单体转型为Java微服务、Python单体转型为Java微服务等, 也尝试着从自己的经验角度,来汇总一些知识点,同时描述一下如何成长为一个合格的软件架构师&#x…

基于SpringBoot+Vue+微信小程序的电影平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 研究背景:…

Docker 中的 .NET 异常了怎么抓 Dump (转载)

一、背景 1. 讲故事 有很多朋友跟我说,在 Windows 上看过你文章知道了怎么抓 Crash, CPU爆高,内存暴涨 等各种Dump,为什么你没有写在 Docker 中如何抓的相关文章呢?瞧不上吗? 哈哈,在DUMP的分析旅程中&a…

提升工作效率:推荐几款实用的Mac项目管理工具!

在当今软件和技术高度发达的时代,项目管理依然是一项非常重要的任务。现在,有越来越多的人喜欢使用mac电脑进行项目管理,因为mac众所周知的稳定性和使用便捷性。但问题是,mac系统自带的项目管理工具并不是非常完美,因此…

Linux——进程信号详解

目录 一.进程信号的理解 1.1定义: 1.2举例: 1.3总结: 二.进程信号地使用: 2.1信号种类: 2.2而操作系统向进程发送信号地方式有四种: 2.2.1以键盘的方式向进程发送信号 接下来介绍一个系统调用函数sign…

Windows系统上安装Node.js图文步骤流程

Windows系统上安装Node.js图文步骤流程,本文以安装Node.js v4.4.3 LTS(长期支持版本)版本为例: 目录 Node.js下载 Windows 上安装 Node.js 1、Windows 安装包(.msi) 2、Windows 二进制文件 (.exe)安装 版本测试 Node.js下载 Node.js 安装包及源码…

nginx七层代理和四层转发的理解

先来理解一下osi七层模型 应用层 应用层是ISO七层模型的最高层,它直接与用户和应用程序交互,提供用户与网络的接口。它包括各种应用协议,如HTTP、FTP、SMTP等,用于实现特定应用的功能和通信表示层 表示层…