Published on

面试题BFF(Backends For Frontends)是什么

Authors

前言:今天遇到一个面试被问到BFF是什么,可以说当时非常懵逼,这是什么,当时心中怀疑是不是问错了,应该是diff吧,其实不然,就是问的BFF,然后我问了有没有全程是什么,说:就是这个。

当时的我满脸问号,一度怀疑自己了,哎,谁叫基础不深呢,有些东西是真不知道。就这样,很顺利的挂了,没有悬念。其实还有其他的问题,回答了百分六十七十那个样子吧。

1. bff是什么

1.1 deepseek解释

BFF全称Backends For Frontnds,翻译一下就是后端为前端,应用deepseek的解释就是这样

在前端开发中,BFF(Backends For Frontends)是一种架构设计模式,专门为前端定制后端服务的中间层。它的核心思想是  “为不同的前端客户端提供量身定制的后端接口” ,解决前后端协作中的效率和数据适配问题。

1.2 面试官给我的回答

那个面试官给我的答案是这样说明的:

是一个微服务,可以这样理解,作为后端人员不知道前端需要什么数据什么内容,然而这是就需要前端人员提供方法去获取后端提供的数据,这个东西可以聚合多个接口同意返回数据,减少了请求接口,降低了服务器的压力,大致描述就是这样。最简单的理解就是两头大中间小吧,传输的数据是一样的。

说了基本原理,总不能这样结束了,所以接下来我自己收集了一些资料详细了解一下,就当一个笔记记录了。

2. 它的使用场景

假如现在有个需求获取商品的详情、评论、推荐的数据:

2.1 传统的思路:一个接口返回数据

优点:需要的数据都有,前端好处理,后端也只需提供一个接口,减少了http的请求。 缺点:遇到不同的场景需求,则需要对数据过滤,处理麻烦;对于后端来说可能需要对于不同的场景提供不同的接口,这大大增大了服务器的压力。

2.2 BFF的思路:提供三个接口

BFF会聚合这三个接口,前端只需要通过它提供的方法根据不同的场景获取相应的数据,例如只需要商品详情数据,只需要调用商品详情服务即可,这样就减少了处理数据的麻烦,同时也不需要额外的提供接口了。

BFF使用的优点和缺点

优点:提升前端开发体验,减少了对后端的依赖;灵活适配不同场景的数据需求,避免了对接口的依赖性。

缺点:可能与后端逻辑重复,因为毕竟是一个微服务涉及到了后端。

结语:暂时我所理解大致是这些,欢迎补充。

看来还是需要扩展知识点呀!