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

news2024/11/15 8:11:05

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

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

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

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

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

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

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

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

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

来源:呆伯特

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

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

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

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

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

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

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

分还是分?选择什么

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

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

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

结论

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

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

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

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

相关文章

多旋翼无人机振动分析与减振方法

多旋翼无人机振动分析与减振方法 振动分析无人机减振设计机械减振数字滤波减振 振动分析 振动机制包括: 激励(振动源)系统响应 无人机振动机制: 激励 —— 动力系统(旋翼电机)系统 —— 机架响应 —— …

《产品思维》 要点

“一切以用户价值为依归”的价值观,落地下来就是从用户中来,到用户中去。 认知用户 用户画像 用户是一切产品的源头 用户不是理性人 我们的用户到底是谁、究 竟在哪里。这个“到底是谁”“究竟在哪里”。 用户生活工作的环境,是他们日常的…

【机器学习】机器故障的二元分类模型-Kaggle竞赛

竞赛介绍 数据集描述 本次竞赛的数据集(训练和测试)是从根据机器故障预测训练的深度学习模型生成的。特征分布与原始分布接近,但不完全相同。随意使用原始数据集作为本次竞赛的一部分,既可以探索差异,也可以了解在训…

[RockertMQ] Broker启动加载消息文件以及恢复数据源码 (三)

Broker的启动过程中, 在DefaultMessageStore实例化后, 会调用load方法将磁盘中的commitLog、ConsumeQueue、IndexFile文件的数据加载到内存中, 还有数据恢复的操作。 调用isTempFileExist方法判断上次broker是否是正常退出, 如果是正常退出不会保留abort文件, 异常退出则会。 …

【MySQL】关于自增id、雪花id还是uuid作为MySQL主键

在MySQL中设计表的时候,MySQL官方推荐不要使用uuid或者不连续不重复的雪花id(long型且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment。那么为什么不使用雪花id或者uuid呢?让我们来探讨分析一下这个问题的原因。 关于…

【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)

零基础带你进军人工智能领域的全流程技术体系和实战指南(机器学习基础知识) 前言专栏介绍专栏说明学习大纲前提条件面向读者学习目标核心内容机器学习的概念定义回顾人工智能机器学习概念国外知名学者对机器学习的定义中文翻译 机器学习发展历程机器学习…

Oracle JSON_ARRAYAGG()函数的排序失效问题

引入: 在实际操作中,俺写了这样一个Funtcion: FUNCTION fun_get_xxx(v_param_one VARCHAR2) RETURN CLOB ASv_OUTPUT CLOB;BEGINWITH temp_table AS (SELECT * FROM (( SELECT one.action_id,two.log_timeFROM table_one oneLEFT JOIN table…

【深度学习】6-4 卷积神经网络 - CNN的实现

CNN的实现 网络的构成是“Convolution - ReLU - Pooling -Affine - ReLU - Affine - Softmax”,我们将它实现为名为 SimpleConvNet的类。 首先来看一下 SimpleConvNet的初始化(init),取下面这些参数。 input_dim——输入数据的维…

七彩虹CN600+Meetiger N10C测评

七彩虹CN600这款M.2固态硬盘的参数就不多说了 本期采用为512版本 迷虎品牌,英文名Meetiger,Meetiger/迷虎品牌成立于2012年,品牌迷虎产品主要有硬盘底座,保护盒,硬盘座,移动硬盘盒子,硬盘盒子,... 以下就是本期的硬盘盒 当这两样东西在一起…

C++(10):泛型算法

泛型算法:可用于不同类型的容器和不同类型的元素的通用算法。 概述 大多数算法都定义在头文件algorithm 中。标准库在头文件 numeric 中定义了一组数值泛型算法。 一般情况下,泛型算法不直接操作容器,而是遍历由两个迭代器指定的一个元素范…

【Spring Boot学习】日志文件,Spring Boot也会写日记了,这些事你知道嘛 ? ? ?

前言: 大家好,我是良辰丫,在上一篇文章中我们已经学习了Spring Boot的配置,接下来我们要学习一些日志相关的东西,什么是日志呢?我们慢慢往下看.💌💌💌 🧑个人主页:良辰针不戳 📖所属专栏:javaE…

7.4_2B树的插入删除

我们先设置根节点 我们再往里面插入关键字 比如说:80 中间位置为49:(5/2)向上取整为3 新元素一定要插入到最底层”终端结点“,用”查找”来确定插入位置。 失败节点(叶子节点不属于同一层) 讲…

Vue-全局事件总线(GlobalEventBus)

全局事件总线(GlobalEventBus) 全局事件总线是vue中特别厉害的一种组件中通信的方式,它可以实现任意组件中通信,随便拿出来两个组件就能互通数据,就像对讲机一样,它在开发中用的也是特别的多 1 编写案例 首先准备两个组件&…

Python列表 (超详细举例加讲解)

得之我幸,失之我命 文章目录 1.列表的值 2.列表的定义 3.下标 4.列表长度 5.列表的加法和乘法 6.列表切片 7.操作方法(一些基础的函数) (1)append——向列表末尾添加元素 (2)insert——…

VUE3实现页面缓存,tab切换时不刷新

如上图所示,为了实现页面缓存,防止每次页面切换时重新刷新数据,前前后后尝试了多种写法,如上图被注释的那段写法,与没注释掉的写法,在router-view上主要是第一种写法有设置key属性,第二种没有&a…

常见面试题之框架篇

1.Spring框架中的单例bean是线程安全的吗? 不是线程安全的,是这样的。 当多用户同时请求一个服务时,容器会给每一个请求分配一个线程,这是多个线程会并发执行该请求对应的业务逻辑(成员方法),…

模拟电路系列分享-负反馈电路稳定性分析

目录 概要 整体架构流程 技术名词解释 1.负反馈放大电路产生自激震荡的条件 2.从实际运放的幅频,相频特性看自激振荡的可能性 小结 概要 在卡拉0K歌厅中,我们会见到这样一种现象:当麦克风位置不合适或者音量过大时, 喇叭中会出现一种非常难听的啸叫,捂住麦克风、赶紧…

【无需显卡】AI绘画入门教程

前言 Hello,各位端午节快乐呀!不好意思拖更两个月,最近实在是太忙了,也想不到有什么好玩的,之前介绍过了几个好玩的ai网站,非常适合新手尝鲜,但很多都有额度限制,而且还开始收费了&…

【C语言】内存你知多少?详解C语言动态内存管理

目录 一, 计算机中的内存 二,动态内存申请函数 2.1 头文件 2.2 malloc函数 2.3 free函数 2.3 calloc函数 2.4 realloc函数——调整空间函数 情况1:原有空间之后有足够大的空间 情况2:原有空间之后没有足够大的空间 2…

Android大图加载优化方案,避免程序OOM

我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状、不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小。比如微博长图,海报等等。所以我们就要对图片进行局部显示。 大图加载基本需求…