当前位置: 首页 > news >正文

我们当年是如何真实落地BFF的?

一听到BFF,你是不是会有一连串的疑问? 比如:

  • 是前端团队实现BFF呢? 还是后端团队实现BFF呢?
  • 那前端团队实现BFF是使用node.js吗? 那后端团队实现BFF是用serverless,云函数之类的,还是直接堆服务器? 另外要用到传说中的GraphQL‌?
  • 那到底要几个BFF呀?

下面我就说一下,我们当年具体是如何落地BFF的。

在开始之前,我想说一句,任何技术架构,一定要根据自己的团队的实际情况和公司业务情况来,切记。不要说,看到网络上某些文章,头脑一热,就开始要兴致勃勃的去实践了。还美其名曰,按照标准来。

当时我们具体是这么干的:

  • BFF统一都是用后端开发团队来实现的;
  • 有3个BFF;
  • BFF没有采用serverless,也没有采用GraphQL;

为什么当时BFF由后端来搞

原因是,我们认为BFF是聚合编排层,具有强业务属性,另外还有自己的缓存和存储,这块不可能交个前端团队的。

至于为啥是通过堆机器来搞,而不是采用serverless,那是因为我们当时的技术团队,没有人熟悉serverless,也没有人有这块实实在在的实战经验,就更不用谈什么对应的基础实施的健全性了。

那为啥有3个BFF呢?

这个当然是我定的,因为我当时管的电商技术部门,组织架构我是这么分的:

  • 选购线:用户下单前的选购线路,比如购物车,商品,菜单等等;
  • 中后台线:下单,支付,履约等;
  • 用户营销线:用户,会员,营销;

且我也认为电商线,大的,就是如我上面那样划分的。然后每条线都有自己的前后端开发,测试,和产品经理。

每次大需求一来,横跨三条线的。那么各条线的人都内部跟自己线内的同事对接就可以了。

这是为了效率,因此搞了:

  • 选购线BFF服务;
  • 中后台线BFF服务;
  • 用户营销线BFF服务;

那这么干的话,前端是不是还得自己聚合一下,对的,超复杂页面,的确如此。但是我们认为这是可以接受的。其实也就那么几个复杂页面会出现这种情况。

剩下的基本上,都是对接自己的BFF层就可以了。

再者,超复杂页面,你去调用一个超级大的BFF的一个接口,我们认为也是不可行的,太危险了。因为粒度实在太粗了,适当的时候,让前端多调用几次,反而是更好的。

好。那么这么整后,整个的架构是如何的呢? 如下图:

那么这里可能有人会问,我们公司体量小,是不是只搞一个BFF就可以了。当然没问题。我上面那样做,是根据我们的实际情况来的。

其实很多小公司,一个BFF就可以了。

当然还会有人问,可不可以独立出一个中间层团队来,这波人专门去做这个BFF层的开发呢? 当然可以。

像我当时待过的一家大厂,就是这么干的。光是中间层研发团队,就超过70号人了。

当有这样的独立的中间层研发团队后,其他的职能技术团队,可就幸福了。因为他们只需要很专注很纯粹的写RPC接口就行了。剩下的不用管了。中间层团队会过来对接的。

不得不说,效率实在太高了。当然,公司也得有钱哈,能养得起这么大的中间层技术团队。

小结

BFF怎么落地,没有标准答案,只有适配答案。后端做还是前端做,取决于BFF里业务逻辑的比重;堆机器还是上serverless,取决于团队对技术的掌控程度;拆几个BFF,取决于业务线的规模和团队的组织方式。这三件事的判断依据都不是技术上的优劣,而是人和组织的现实约束。

很多团队讨论BFF,容易陷入技术选型的争论:GraphQL还是REST,serverless还是传统部署,Node.js还是Java。但这些争的是手段,不是问题本身。BFF要解决的问题是确定的——微服务拆细之后,谁来组装数据。手段根据团队实际情况来选就行,选什么不重要,选完能跑稳才重要。


最近在知乎出了

  • 「应付6000万会员的秒杀系统专栏」
  • 「几亿用户,百万并发的C端商品系统实战」
  • 「技术团队DDD领域驱动设计三年落地实战」
  • 「应付亿级用户规模的支付系统代码实战」
  • 「应付亿级用户的会员体系代码实战」

专栏,感兴趣的可以订阅一下。至于知识星球的,可以搜:

  • 老码头的技术浮生录

它是一个能实际帮你解决难题的星球。有问题的,找知心的Sam哥,支持无限次语音一对一解决你遇到的难题。「另外后续我新写的所有对外的付费专栏,在星球内都是免费的,且可以拿到所有源代码。」

当前星球里免费看的专栏是:

  • 「应付6000万会员的秒杀系统专栏」
  • 「几亿用户,百万并发的C端商品系统实战」
  • 「技术团队DDD领域驱动设计三年落地实战」
  • 「应付亿级用户规模的支付系统代码实战」
  • 「应付亿级用户的会员体系代码实战」

知识星球内后续将推出20+个付费专栏,覆盖电商全链路:

选购线用户会员营销线中后台
购物车服务营销系统订单系统
商品服务用户系统支付系统
菜单服务结算服务

从前台选购到中后台结算,星球成员全部免费,后续新增也不额外收费。

我的知乎账号:

  • SamDeepThinking
http://www.jsqmd.com/news/994534/

相关文章:

  • 2026唐山市家里卫生间漏水、阳台漏水、楼顶漏水、阳台漏水、地下室渗水、阳光房漏水各种房屋漏水情况不用愁!本地防水补漏公司为您排忧解难!质保可查、售后无忧。 - 企业资讯
  • MSC8252双核DSP架构解析:高速接口、低功耗与系统级设计实战
  • 上海顶级GEO公司推荐:服务评分、续约率、好评率与效果保障分析
  • NE1617A温度监控芯片实战:从ΔVBE原理到SMBus接口设计详解
  • MATLAB实战:用DCT频域隐写,在JPEG图片里藏点小秘密(附完整代码)
  • BlueRetro固件升级终极指南:让复古游戏体验焕然一新
  • 江苏导轨式升降平台厂家排行:核心参数与服务对比 - 起跑123
  • 浙江油浸式变压器厂家实力排行:合规与能效双维度 - 起跑123
  • 深度学习文档布局解析:零代码实现智能文档处理的完整指南
  • LiteLLM Agent Platform:让 AI 编程 Agent 在 Kubernetes 沙箱中安全运行
  • 【避坑指南】SOLO/SOLOv2实例分割:从零到一的服务器环境配置与COCO指标生成实战
  • 2026烟台除甲醛公司解析:模式辨析与本地选型指南 - 信息热点
  • 2026年门窗定制深度测评:如何为你的家居匹配最佳方案? - 信息热点
  • 2026黄石市家里卫生间漏水、阳台漏水、楼顶漏水、阳台漏水、地下室渗水、阳光房漏水各种房屋漏水情况不用愁!本地防水补漏公司为您排忧解难!质保可查、售后无忧。 - 企业资讯
  • Three.js 魔法阵实战:用BufferGeometry和PointsMaterial打造游戏传送门特效
  • 从ResNet到YOLOv11:深度学习如何让计算机看懂图像?
  • 上海小程序开发多少钱?不同类型小程序报价和避坑指南
  • 别只调API了!用Java+OpenCV手写图像滤镜(灰度、锐化、边缘检测),彻底搞懂卷积核
  • SAP MIRO发票校验实战:BAPI_INCOMINGINVOICE_CREATE处理退货与正常订单的完整代码解析
  • NTAG21x芯片实战指南:从内存架构到密码保护,打造安全NFC应用
  • 2026年门窗生产厂家深度测评:如何为家居匹配最佳方案? - 信息热点
  • 多屏异分辨率下鼠标指针精准对齐:告别错位漂移的实用指南
  • 苏州企业软件定制开发哪家靠谱?源码交付和本地交付很关键
  • 爱彼手表回收怕被坑?杭州五家店实测告诉你真相 - 奢侈品回收评测
  • OptiScaler终极指南:跨GPU超分辨率与帧生成技术一体化解决方案
  • 2026太原市家里卫生间漏水、阳台漏水、楼顶漏水、阳台漏水、地下室渗水、阳光房漏水各种房屋漏水情况不用愁!本地防水补漏公司为您排忧解难!质保可查、售后无忧。 - 企业资讯
  • 河南中安建培资质教研:建工培训性价比客观盘点 - 信息热点
  • 高校论文AI率检测乱象丛生:误判频发、灰产猖獗,检测规则亟待调整
  • 医学影像分割技术:从U-Net到XAI-CLIP的演进与应用
  • 终极PC游戏分屏方案:Nucleus Co-op让单机游戏变身本地多人派对