BFF-服务前端的后端

BFF (Backends For Frontends) 服务于前端的后端。后端各种微服务、API之间的一层胶水代码。主要的业务场景请求转发、数据组织、接口适配、权鉴和SSR。

BFF 是一种逻辑分层,BFF 层服务会更多地考虑接口在前端的使用,并且在服务端直接进行业务逻辑的处理,又称为用户体验适配器。

BFF 可以用任何语言来实现:GO、Java、Php、Node,由于前端都是使用 JavaScript 作为开发语言,从脚手架 -> 组件 -> 编译 -> 包管理 -> CI/CD 都是是使用的 JavaScript,BFF 作为更多考虑前端的一种服务大多数时候是使用 Node 来编写。

BFF 层做什么事

  • 数据处理:字段名处理、数据结构处理、冗余数据处理
  • 接口聚合:让后端更注重服务基础能力的开发,更聚焦业务模型本身,见面的交互与逻辑由 BFF 层来完成
  • 服务于多个终端,Web 端、H5 活动页、小程序、IOS、Android… 底层基础服务不需要考虑不同设备的兼容逻辑,这个需求前端同学更清楚

  

BFF 为我决解了什么问题

  最近在搞公司的前端研发工作台用于简化研发流程。

  虽然基础架构部的后端、运维大师们做的架构和微服务非常强大,但没有充分考虑到开发的使用体验,和用户交互,对于普通的开发同学并不友好,新入职的同学往往需要很长时间培训才能完全掌握。试用期重要考核指标就是掌握公司的研发流程,这是不合理的。(我就是那个几个月都没搞清楚研发流程的弱鸡)

  为了简化我们的研发流程,让开发无障碍上手,我所在的前端工程扣技术组,使用了 BFF 来聚合后端研发流程相关的微服务。并且打通了公司账户体系、Gitlab服务,在 BFF 层处理掉 90% 的研发流程的逻辑。

  减少了研发同学在新建项目 -> 迭代开发 -> 提测 -> 回归 -> 预发布 -> 上线/回滚各流程需要做的操作,与思维负担。每次上线能够更快上线,更早回家睡觉。