高级前端前端工程化【Q597】引入 BFF 层的优势在哪里

引入 BFF 层的优势在哪里

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 613

Author 回答者: shfshanyue

BFF 全称 Backend For Frontend,一般指在前端与服务器端搭建一层由前端维护的 Node Server服务,具有以下好处

  1. 数据处理。对数据进行校验、清洗及格式化。使得数据更与前端契合
  2. 数据聚合。后端无需处理大量的表连接工作,第三方接口聚合工作,业务逻辑简化为各个资源的增删改查,由 BFF 层聚合各个资源的数据,后端可集中处理性能问题、监控问题、消息队列等
  3. 权限前移。在 BFF 层统一认证鉴权,后端无需做权限校验,后端可直接部署在集群内网,无需向外网暴露服务,减少了后端复杂度。

但其中也有一些坏处,如以下

  1. 引入复杂度,新的 BFF 服务需要一套基础设施的支持,如日志、异常、部署、监控等