如图:

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

如图:

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