问题
- “一云多端”成为趋势 , 终端类型越来越多 。比如 , 现在PC Web网站的产品已经有了 , 现在想扩展App , 小程序... ...怎么办?一个直接能想到的方法就是在原来的基础上 , 为APP等增加API接口 , 如下图所示:
文章插图
文章插图
这样做是可以的 , 然而一旦遇到修改 , 那么要同时修改几个端的代码 , 很麻烦 , 不是很完美 。
- “前后端分离”成为趋势 。一开始的PC Web网站 , 大多是采用服务端渲染的前后端一体化的模式 。随着技术的发展 , 前后端分离 , 前端渲染逐渐成为趋势 。相应地 , 前端开发人员也从后端团队中独立出来 。
文章插图
- 服务端设计的API接口 , 面向通用服务 , 还是面向UI?各个端对数据的显示要求不同 , 给一个公共的API还是分别给不同的API?
再比如 , 相同功能的一个接口 , PC Web端需要20个字段 , 已经做好了 。现在APP端因为屏幕小 , 只要10个字段就够了 , 是复用老的API , 让APP忍受垃圾信息 , 还是为APP额外新增一个接口?
前端和服务端人员可能会有不同意见 , 这就带来了冲突 。大家都有一定的道理 , 怎么协调?
- 产品经理提出PRD-》UED设计交互稿-》UI设计界面-》后台设计API接口-》后台实现服务-》前后端联调... ..
对于这个中间层的称呼 , 一种是“网关层或者接入层” , 这个可能会和后台现有的网关和接入层造成混淆 。另一种叫法叫做BFF(Backend for Frontends , 为前端而存在的后端) , 这种称呼相对比较准确 , 不会带来混淆 。
- 网关层或者接入层
文章插图
- BFF(Backend for Frontends , 为前端而存在的后端)
文章插图
解决方法
- 针对“一云多端” , 可以在BFF层做适配 。可以考虑MVVM的模式 , 从服务器来的数据当做Model , 在BFF中针对各种端 , 提供不同的ViewModel 。如果数据变了 , 只要修改Model就可以了 。如果要增加一种端 , 只要增加一个ViewModel就可以了 。在这里集中修改 , 就可以解放各个终端的格式转化工作 。
- “前后端分离”之后 , 各种端可以融合为一个“大前端” , 跟后端对话的窗口就是BFF 。对于后端来说 , 只要满足BFF的数据需求就可以了 , 剩下的事情 , 就让“大前端”内部自己解决 。
文章插图
- 服务端设计的API接口 , 面向通用服务 , 不需要面向UI 。各种端的UI差异 , 由BFF层负责适配 。这样的话 , 可以让后端更加专注于业务逻辑和数据服务 , 不需要操心各种端的差异 。
推荐阅读
- 被世界公认的三大天才 历史上的天才都有哪些
- 聊聊虚拟内存
- 电脑内存容量真的是越大越好吗?
- Redis命令大全,满足你的日常工作,看这一篇就够了
- 崂山红茶的功效与作用,青岛崂山大田茶开采
- 黑客大神教你:Weblogic相关漏洞复现
- 大话西游插曲都有哪些
- 原著潘金莲为什么会嫁给武大郎? 潘金莲毒死武大郎是哪一天?
- 鲜芡实的吃法大全
- 凉拌尖椒的做法大全