如图:

前端和后端比较好理解,但一般为了还会在中间增加一层。
用于将后端的映射为页面直接可以使用的接口。
这部分叫做什么呢
如图:

前端和后端比较好理解,但一般为了还会在中间增加一层。
用于将后端的映射为页面直接可以使用的接口。
这部分叫做什么呢
|
233373Jul 11, 2022
1
它夹在中间,我也不知道他叫什么
|
|
iikebugJul 11, 2022
2
中台
|
|
3
不是一般叫做中间件吗
|
|
4
api Gateway ?
|
|
TomatoYuyukoJul 11, 2022
5
controller
|
|
churchillJul 11, 2022
6
middle tier?
WTF-end 😄 |
|
aneostart173Jul 11, 2022
7
beffe?
|
|
8
bff? Backends For Frontends
|
|
9
BFF
|
|
nomagickJul 11, 2022
10
disability
|
|
panlatentJul 11, 2022 via iPhone
11
只按这个图里中间的就是后端的东西,图画的应该不太对吧
|
|
qrobotJul 11, 2022
12
Middleware
|
|
BiChengfeiJul 11, 2022
13
代理层
|
|
pengtdydJul 11, 2022
14
bff
|
|
15
这就是后端的一部分而已,不要额外解读
|
|
16
每个人不同的叫法😂
|
|
18
nodjs 、php (移除后端之后),就是前端,你的图画的不对。如果是服务器渲染,那应该是:浏览器——前端——后端。
用于将后端的核心服务,映射为页面直接可以使用的接口的东西,这个可以是后端的接口层,也可以是前端的转换层,并不需要单独弄个端。但是如果在后端接口与前端之间,又专门弄了个鉴权、负载均衡的服务,那这个是网关。 |
|
19
前端管这个叫 也是后端负责层
后端管这个叫 运维应该知道层 |
|
musiJul 11, 2022
20
前端一般管这叫 BFF
|
|
21
BFF - Backend for Frontend
|
|
ethusdtJul 11, 2022
23
可以是个 webhook 比如 amazon lambda
|
|
charlie21Jul 11, 2022
24
前端
|
|
intmax2147483647Jul 11, 2022
25
BFF
|
|
zhaolJul 11, 2022
26
BFF
|
|
daliusuJul 11, 2022
28
gateway
|
|
FrankHBJul 11, 2022
29
搞编译器的,夹在前端和后端中间的东西正经的叫法就叫中端(midend)。
CPU 流水线里的前端和后端就接了个 buffer 。大约是因为跨 ISA 翻译之类不流行以及加流水级代价太大的关系,翻译指令的也都直接算成了前端。 但你说的这块就算是 Web 传统后端的一部分,虽然有一部分抽出来当中间件了。反正跟 Web agent 不捆绑在一起的东西习惯上都不会叫做前端,市场上招前端的也不大会强制要求熟悉这个。 以前前端页面以后的这些东西都是后端工程师来做,像 PHP/JSP/AST 这样并列的 server page 就是“后端页面”。Node.js 也是做的服务器应用,恰好方便前端工程师少学点语言罢了。后来大约是鼓吹前后端分离,发现一些 server page 里不少 view 的成分,外加前端工程师比较膨胀,为了增加人力利用率,就让前端工程师去折腾这种东西了。 |
|
dudubabaJul 11, 2022
30
BFF ( Backend for Frontend )或者前端中间层,大部分是 KPI 产物,前期用的很爽,后面但凡换两个人接手就是大坑。
|
|
batiloJul 11, 2022
31
中间件
|
|
lujiaosamaJul 11, 2022
32
bff 胶水层, 但有点脱裤子放屁的意味, 业务变动还得多修改一层.
|
|
dayeye2006199Jul 11, 2022 via Android
33
强行分出层
|
|
fuchish112Jul 11, 2022
34
我认为还是属于后端的一部分,这部分是做业务的聚合,因为动态语言的开发效率相对较高,尤其针对快速变化的需求,特别合适
|
|
35
谢谢各位,结合大家的讨论,感觉这块目前并没有专门的名称。
依据实际场景,则倾向于叫做 api gateway (统一 API 网关) 或者是 BFF (前者变种,不同平台设计不同的 BFF )。 |
|
urlkJul 11, 2022
36
中端
|
|
a852695Jul 11, 2022
37
网关有点牵强了,还是看其功能定位。
1 、如果定位是数据处理,那么就是数据中间层。 2 、如果定位是权限、第三方认证等,那么就是中间件,或者网关。 |
|
dcsuibianJul 11, 2022
38
中间为啥要放个 Nodejs ?
|
|
h1104350235Jul 11, 2022
39
网关或者中间层
一般是数据处理或者权限之类的吧 37 楼的回答 |
|
40
中间放 nginx 叫 gateway
中间放 nodejs 叫 BFF ,建议前者 |
|
karlokuJul 11, 2022
41
看中间那层是谁开发的. 前端开发的就是 BFF, 其他人开发 /维护的就是 gateway
|
|
JackCh3ngJul 11, 2022
42
这难道不是路由吗?
把现成的框架都拿掉,自己处理前端请求的时候不就是 if 判断什么 path ,然后调用相应后端方法处理吗? 我怎么听不懂大家在说什么…… |
|
FelldeadbirdJul 11, 2022
43
看图来说是后端。因为中间那层貌似不参与前端渲染。
|
|
nashJul 11, 2022
44
胶水层
|
|
james2013Jul 11, 2022
45
中端
|
|
tcpdumpJul 11, 2022
46
中出端
|
|
nicholasxuuJul 11, 2022
48
聚合层
|
|
libookJul 11, 2022
49
现在一般都叫 BFF 吧。
不过前后端是个相对概念,在不同范围内可以指不同的东西。比如可以把客户端视为前端,把服务器视为后端;但如果单看客户段范围内的话,负责用户呈现和用户交互的部分可以视作为前端,负责数据处理和与服务器通信的部分可以视作为后端;单看服务器范围内的话,BFF 可以被视作前端,中台等底层服务可以被视作后端。 |
|
humpyJul 11, 2022
50
aggregator
|
|
ScepterZJul 11, 2022
51
网关
|
|
daliusuJul 11, 2022
52
@dcsuibian 其实放个啥都行,我这边是因为“后端”并不只是给前端开发的,还有一些其他,比如客户端(某种意义也算前端吧)或者是外部系统也要访问,所以没法把所有的业务逻辑都糅杂进他们自己代码里,就加了一层去分别做面向各个其他外部需求的层,这个东西一般谁写前端谁负责,web 前端这块之前也是后端在适配就要用的 go ,现在前端负责就是 node 了,算法他们用 python 做的。
|
|
xumng123Jul 11, 2022 via iPhone
53
网关
|
|
grewerJul 11, 2022
54
我司是叫 gateway
|
|
bsg1992Jul 11, 2022
55
中间层
|
|
kongkongyztJul 11, 2022
56
在腾讯一般是叫接入层
|
|
pcblJul 11, 2022 via Android
57
中间这个叫产品经理
|
|
yunyuyuanJul 11, 2022
58
想到了今天在煎蛋上看到的:
|
|
59
在我们这些老不死的棺材瓤子眼里,运行在浏览器的是就前端,运行在服务器的就是后端,很简单的界定标准,至于 BFF 什么的说法都是争权夺利和 KPI 瞎搞。
|
|
QuarterJul 12, 2022 via iPhone
60
我觉得网关比较贴切一些
|
|
LeeReamondJul 12, 2022 via Android
61
网关吧
|
|
62
大公司:BFF (Backend for Frontend)
小公司:API Gateway |
|
BruceXuJul 12, 2022
63
这...现在后端返回数据页面都不能直接使用了?还能再懒点吗?
|
|
E2gCaBAT5I87sw1MJul 12, 2022
64
中端
|
|
EvansUtopiaJul 12, 2022
65
叫烂活
|
|
66
@xubingok 不是懒的问题,自从流行业务中台后,各中台系统只负责自己的模块,到了前端可能一个页面几十个接口,而且还都互相依赖,至少三四轮请求才能拿到所有数据。这时候有一个系统做接口聚合就很重要了。我们这边一般把这个叫做前台。
前端=>前台=>中台=>数据库 |
|
lantenJul 12, 2022
67
@EvansUtopia 哈哈哈啊哈哈
|
|
berylJul 12, 2022
68
我们之前把他归到前端,统一称为大前端,或者叫路由层
|
|
wanacryJul 12, 2022 via iPhone
69
后端接口给前端不能直接使用吗,为什么还要加一层
|
|
wanacryJul 12, 2022 via iPhone
70
后段跟前段不联调的吗?直接啥接口都返回所有字段?
|
|
wanacryJul 12, 2022 via iPhone
71
@woodensail #65 直接让后段聚合啊 哦不过这有涉及到话语权的问题了
|
|
dandankeleJul 12, 2022
72
中间这部分啊。。有前端也有后端
要是前端用 node 做 SSR 渲染,调用接口,这部分叫前端,毕竟涉及页面渲染要写 html 样式等,接口若是 PHP 写的,那 PHP 的部分叫后端,只不过 java 这些的更偏后端,PHP 顶多做一些简单的业务逻辑,或者 PHP 聚合 java 写的服务 |
|
73
@wanacry 以电商为例,一个商品详情页光核心数据就涉及商品系统、库存系统、价格系统、促销系统等,还有数不完的边缘系统,你找谁对接?
当然,你可以找一个人帮你把这些复杂的系统都包一层,合并为一个接口跟你联调,这个系统就是答主问的东西。 |
|
wanacryJul 12, 2022 via iPhone
74
@woodensail #72 原如此
|
|
wanacryJul 12, 2022 via iPhone
75
主要是后段接口负责的人太多,前端不好找人
|
|
esliznJul 12, 2022
76
是楼主这个图画的不对,中间的就是后端,图中的 [后端接口] 应该归类到 paas
|
|
mio4konJul 12, 2022
77
胶水层?
|
|
southsalaJul 12, 2022
78
前后端是指 B/S 结构,严格来说叫浏览器和服务器,放在浏览器的部分就是前端,放在服务器的部分就是后端,没有什么中间部分
|
|
alen0206Jul 12, 2022
79
bff
|
|
xiaowei7777Jul 12, 2022
80
接入层
|
|
rb6221Jul 12, 2022
81
你这图画错了吧
按你的画法,中间那一层是 php/node ,那右边应该是数据层啊,中间那一层才是后端,从右边取数据的 |
|
wanguorui123Jul 12, 2022
82
Proxy
|
|
hackersliJul 12, 2022
83
中间件,BFF ,网关···
|
|
fifa899Jul 12, 2022
84
网关.校验层吧.一般加个 appid .统一做合法请求校验
|
|
q474818917Jul 12, 2022
85
gateway 、或者 bff
|
|
zthxxxJul 12, 2022
86
接口 (雾
|
|
zhuweiyouJul 12, 2022
87
装 X 叫 BFF,口语叫聚合
|
|
88
|
|
HjxxxJul 12, 2022
89
网关
|
|
libookJul 12, 2022
91
@leiuu #33 架构设计上都不是绝对的,而且随着一个项目的发展,系统架构会发生变化,一个组件的定位也可能会改变,叫法也随之改变。
叫啥取决于你们现在觉得它更贴近哪种功能,比如: 应用 BFF 的场景通常是这样的:一套后端服务同时被多个前端产品对接(如 QQ 和 TIM ),如果将多个前端产品的后端 API 都混合在一起,会增加接口的复杂度和管理难度,而且针对一个前端产品的修改会有更大的可能影响其他产品;那么就可以引入 BFF ,后端开发团队负责提供统一且灵活的 API ,由各个前端产品的开发团队负责在这些 API 的基础上针对前端产品对 API 进行组合、转换,同时添加一些仅本前端产品会用到的一些专用 API 。 应用 API 网关的场景通常是这样的:产品由多个后端服务提供功能,但每个服务都需要做相同的处理,如安全、认证与鉴权、监控,或仅仅希望使用统一的域提供这些 API 来简单解决一些浏览器的安全限制,这时候就可以引入 API 网关,主要作用是聚合多个服务的 API ,以及应用统一的中间件。 上一段提到了中间件,恩,这个地方也可能是个中间件,当然中间件这个概念的定义是有些争议或迁移引申的,这个主题里就不进行讨论了。我所遇到的情况通常是有个组件不大关心业务逻辑,提供可以用于任何服务的一些基本能力,比如你的前端是成千上万个智能硬件,每隔一段时间上报状态数据,为了削峰填谷可以在前后端之间放个消息队列中间件(可以是现成的产品也可以是自己实现的),后端匀速消费这些消息来处理业务。 还有一种情况,就是后端本身是可以分层的,比如多个业务的服务都可能调用同一个短信网关服务来给用户发短信,这个短信服务就在其他服务的底层。这种情况下都可以叫后端服务。 当然,也可能会存在一个组件同时具备多项功能的情况,或者多种组件排列的情况,又或者是由于项目本身特殊性而存在的特殊功能和特殊名称的组件。 |
|
xuelu520Jul 12, 2022
92
bff 吧,可以做接口的聚合
|
|
leechgJul 12, 2022
93
还是后端
|
|
magichackerJul 12, 2022
94
太监,哈哈哈
|
|
izgnodJul 12, 2022 via iPhone
95
bff or gateway
|
|
pstermanJul 12, 2022
96
前戏
|
|
qhkoboldJul 13, 2022
97
bff (Back-end For Front-end)也可以叫做聚合层
|
|
qwqaqJul 13, 2022 via iPhone
98
在两层之间加入中间层,实现两层的松散耦合
|
|
BruceXuJul 26, 2022
99
|
|
woodensailJul 27, 2022
100
@xubingok 合着别人写的内容你是你是一句不看啊。前端为了实现快速打开必须减少多层接口依赖请求的情况,这时候就必须靠前台服务来请求,毕竟服务器内部互相请求速度可比客户端发起请求快多了。
至于你说的偷懒的问题更是不存在,至少在我呆过的公司,这个前台服务是和前端开发归属于同一个部门的,甚至有些项目就是由前端人员自己用 nodejs 来实现。最终活儿还在自己手上。 所以无非是个为了解决现实需求而做的技术选型,到你这儿就成了办公室斗争了。 |