代码改变世界

浅谈前后端分离

2020-10-27 12:30  zouhui  阅读(235)  评论(0编辑  收藏  举报

开发模式

  • 确定需求(产品经理/领导/客户);

  • UI 设计效果图;

  • 前后端约定接口文档;

  • 前后端并行开发;

  • 前后端集成;

  • 需求交付(提测/上线);

前后端半分离

如图,为前后端半分离。

分离与半分离的标志在于谁握着组装数据的逻辑,如果在前端,那就是前后端分离!否则就是半分离!

前后端分离

如图,为前后端分离。

优点

  • 前后端彻底分离,即便后期有服务迁移,也不需改动前端代码;

  • 更好的适配前端,业务更向前靠拢,在 BFF 层进行接口组装;

  • 对于后端,确定了更清晰的服务边界;

  • 对于前端,可自行在 BFF 层 mock 数据;

缺点

  • 增加了开发成本;

  • 中间层转发增加请求延迟;

BFF 层大多数情况下归属于前端负责,使用 nodejs 开发,完成请求转发和数据转化。

架构图参考:

反思

如果系统分层了,但是人的职责没分层,那就违反了康威定律!如果只有三五个开发,应该考虑的不是服务拆分,而是服务聚合。