大前端架构思考与选择

发布时间:2020-08-10 22:17:35 作者:工匠小猪猪的技术世界
来源:ITPUB博客 阅读:210

作者:老章888

原文:https://www.jianshu.com/p/bb8ac7db7e2d

问题

大前端架构思考与选择


大前端架构思考与选择


这样做是可以的,然而一旦遇到修改,那么要同时修改几个端的代码,很麻烦,不是很完美。

最近兴起的APP,小程序等,天生就是前后端分离的。
前端,APP,小程序等各自独立成专门的团队,当然可以满足这种趋势。
相应地服务端需要为每一个前端部门提供服务,在实践中常常发现,重复的内容很多,有没有办法增加复用?或者说后端能否只对接一个“大前端”部门,剩下的“大前端”部门内部自己解决?

比如,时间显示,PC端可能要求“2018-6-11”的格式,而APP端可能要求“2018/6/11”的格式,接口怎么给?

再比如,相同功能的一个接口,PC Web端需要20个字段,已经做好了。现在APP端因为屏幕小,只要10个字段就够了,是复用老的API,让APP忍受垃圾信息,还是为APP额外新增一个接口?

前端和服务端人员可能会有不同意见,这就带来了冲突。大家都有一定的道理,怎么协调?

以上是一般的开发流程,整个过程还是比较长的。前端在开发完静态页面之后,常常需要等后台服务开发好了,才能联调,这里往往有等待时间的浪费。等后台服务好了,往往提测时间也临近了,气氛很紧张。整个开发体验,往往就是“一半是海水,一半是火焰”。有没有办法缩短这个流程,并且能够让前端不依赖后台服务的完成,独自完成开发?

架构

从现状来看,前后端分离之后,服务端直接给各种端提供服务是很自然能够想到的一种方式。这种方式的优点是简单直接,缺点是不够灵活。因此,考虑在前端和后端之间插入一个中间层,作为前后端之间的桥梁,增加灵活性。

对于这个中间层的称呼,一种是“网关层或者接入层”,这个可能会和后台现有的网关和接入层造成混淆。另一种叫法叫做BFF(Backend for Frontends,为前端而存在的后端),这种称呼相对比较准确,不会带来混淆。

大前端架构思考与选择

大前端架构思考与选择


解决方法

大前端架构思考与选择


具体做法是,对于新业务,将Mock数据生成在BFF层,对于各种端来说,相当于后端服务已经好了,可以直接进行联调,不需要等待。这样就把前端对后端的数据依赖去除了,更加灵活。

组织结构

针对上面提到的“大前端”技术架构,需要相应的“大前端”组织结构相对应。

分类思路

大前端架构思考与选择


人员组成

人员还是按照专业分工的角度去找,按照每个角色最少2人,防止单点风险的思路,

人员需求如下:

iOS开发:2人
Android开发:2人
H5开发:4人
Node或者Java开发(BFF):2人

管理

管理方式跟组织结构相适应,采用职能管理和敏捷管理相结合的方式。

职能管理

“大前端”是按照职能分的,跟后端相对应,是技术部下面的一个子部门,按照职能管理方式进行统一管理。

敏捷管理

流程

和管理模式相对应,采用瀑布模型和敏捷模型相结合的方式。

瀑布模型

职能型组织,采用瀑布模型的开发流程是合适的。产品部,技术部,测试部一般跟产品开发相关度比较大,按照瀑布模型联系起来。这里考虑前后端分离的开发模式,“大前端”可以独立完成开发闭环,虽然BFF层的数据是Mock的。
另外,大前端版本的开发要求领先后端一个版本以上,这样也方便对于后端服务的测试。简单讲,就是将通常的“后端功能推动型”改为“大前端产品拉动型”

敏捷模型

产品,测试,大前端可以考虑合作,按照敏捷模型进行开发。目的是打破部门墙,加强沟通;以业务开发为共同目标,形成合力。

特殊之处

Mock数据
内部版本
需求拉动


平稳的节奏
重视重构
重视预研
面向BFF编程
效率和安全并重

思考

推荐阅读:
  1. 运维安全思考
  2. 从函数计算架构看 Serverless 的演进与思考

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

前端 思考 架构

上一篇:不要让临时表空间影响数据库性能

下一篇:Mysql迁移到达梦数据库-Mysql到DM的应用迁移-给自增列赋值-GroupBy语法不兼容

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》