为什么互联网公司开始用node.js做web服务的中间件
微服务架构下的企业开发困境
近几年来,在企业开发中越来越推崇微服务架构,而它在不经意间却导致前端同学和后端同学之间关于 API 接口颗粒度的争吵,越来越多见:
- 「你自己请求 2 个接口再组装不就行了?」 - 后端同学追求服务下沉和解耦。
- 「少一次 HTTP 啊,加一个接口有那么难么?」 - 前端同学离用户最近,需要考虑用户体验灵活性。
归结为一个问题:『服务端设计的接口究竟是面向 UI 还是只是通用服务?』
BFF提出
在 BFF 理念中,最重要的一点是:服务自治,谁使用谁开发,即它应该由前端同学去维护。
- 服务自治减少了沟通成本,带来了灵活和高效。
- 自己吃自己的狗粮。
- BFF 并不限制具体技术,团队根据自己的技术栈来选型: Java/Node/PHP/Python/Ruby...
- 基于 GraphQL 技术的通用中间层网关,也是刚刚出现一种很不错的方案。
- 在大部分前端团队中,都会倾向于选择生态更优,语法更熟悉的 Node.js 。