前端和后端中间的部分一般习惯叫做什么

2022-07-11 13:33:08 +08:00
leiuu  leiuu

如图:

前端和后端比较好理解,但一般为了还会在中间增加一层。

用于将后端的映射为页面直接可以使用的接口。

这部分叫做什么呢

11618 次点击
所在节点   程序员  程序员
114 条回复
janus77
janus77
2022-07-12 11:04:54 +08:00
你这图画错了吧
按你的画法,中间那一层是 php/node ,那右边应该是数据层啊,中间那一层才是后端,从右边取数据的
wanguorui123
wanguorui123
2022-07-12 11:08:15 +08:00
Proxy
hackersli
hackersli
2022-07-12 11:14:03 +08:00
中间件,BFF ,网关···
fifa899
fifa899
2022-07-12 11:18:35 +08:00
网关.校验层吧.一般加个 appid .统一做合法请求校验
q474818917
q474818917
2022-07-12 11:47:04 +08:00
gateway 、或者 bff
zthxxx
zthxxx
2022-07-12 12:11:12 +08:00
接口 (雾
zhuweiyou
zhuweiyou
2022-07-12 12:41:05 +08:00
装 X 叫 BFF,口语叫聚合
leiuu
leiuu
2022-07-12 12:59:47 +08:00
@eslizn
@janus77

图中的后端是一系列的接口,这些接口会具体对接数据库等。#73 的同学讲的比较清楚。
php/nodejs 这一层主要是基于「后端」接口做一些聚合,组合,返回适配前端页面等等。
哈哈,这也是迷惑点。目前看来 BFF 「用于前端的后端」较为贴切。😂
Hjxxx
Hjxxx
2022-07-12 13:58:27 +08:00
网关
Hjxxx
Hjxxx
2022-07-12 14:01:32 +08:00
@wanacry 不是这个开发人员原因,是架构模式问题,中台都普遍会带网关管控所有中心,限流、鉴权、负载、转发等,甚至做聚合、编排。
libook
libook
2022-07-12 15:14:35 +08:00
@leiuu #33 架构设计上都不是绝对的,而且随着一个项目的发展,系统架构会发生变化,一个组件的定位也可能会改变,叫法也随之改变。

叫啥取决于你们现在觉得它更贴近哪种功能,比如:

应用 BFF 的场景通常是这样的:一套后端服务同时被多个前端产品对接(如 QQ 和 TIM ),如果将多个前端产品的后端 API 都混合在一起,会增加接口的复杂度和管理难度,而且针对一个前端产品的修改会有更大的可能影响其他产品;那么就可以引入 BFF ,后端开发团队负责提供统一且灵活的 API ,由各个前端产品的开发团队负责在这些 API 的基础上针对前端产品对 API 进行组合、转换,同时添加一些仅本前端产品会用到的一些专用 API 。

应用 API 网关的场景通常是这样的:产品由多个后端服务提供功能,但每个服务都需要做相同的处理,如安全、认证与鉴权、监控,或仅仅希望使用统一的域提供这些 API 来简单解决一些浏览器的安全限制,这时候就可以引入 API 网关,主要作用是聚合多个服务的 API ,以及应用统一的中间件。

上一段提到了中间件,恩,这个地方也可能是个中间件,当然中间件这个概念的定义是有些争议或迁移引申的,这个主题里就不进行讨论了。我所遇到的情况通常是有个组件不大关心业务逻辑,提供可以用于任何服务的一些基本能力,比如你的前端是成千上万个智能硬件,每隔一段时间上报状态数据,为了削峰填谷可以在前后端之间放个消息队列中间件(可以是现成的产品也可以是自己实现的),后端匀速消费这些消息来处理业务。

还有一种情况,就是后端本身是可以分层的,比如多个业务的服务都可能调用同一个短信网关服务来给用户发短信,这个短信服务就在其他服务的底层。这种情况下都可以叫后端服务。

当然,也可能会存在一个组件同时具备多项功能的情况,或者多种组件排列的情况,又或者是由于项目本身特殊性而存在的特殊功能和特殊名称的组件。
xuelu520
2022-07-12 16:19:41 +08:00
bff 吧,可以做接口的聚合
leechg
2022-07-12 16:23:14 +08:00
还是后端
magichacker
2022-07-12 16:25:35 +08:00
太监,哈哈哈
izgnod
2022-07-12 18:35:27 +08:00
bff or gateway
psterman
2022-07-12 18:49:41 +08:00
前戏
qhkobold
2022-07-13 09:51:13 +08:00
bff (Back-end For Front-end)也可以叫做聚合层
qwqaq
2022-07-13 12:47:50 +08:00
在两层之间加入中间层,实现两层的松散耦合
xubingok
2022-07-26 08:15:05 +08:00
@woodensail 还是懒的问题..
后端一通扯,整出个聚合的工作,然后丢给前端?
我前端就要页面展示需要的数据.后端什么架构,什么业务中台只负责自己模块,于我前端何干?
woodensail
2022-07-27 10:16:49 +08:00
@xubingok 合着别人写的内容你是你是一句不看啊。前端为了实现快速打开必须减少多层接口依赖请求的情况,这时候就必须靠前台服务来请求,毕竟服务器内部互相请求速度可比客户端发起请求快多了。
至于你说的偷懒的问题更是不存在,至少在我呆过的公司,这个前台服务是和前端开发归属于同一个部门的,甚至有些项目就是由前端人员自己用 nodejs 来实现。最终活儿还在自己手上。

所以无非是个为了解决现实需求而做的技术选型,到你这儿就成了办公室斗争了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/865407

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX