架构设计程序人生开发

大前端架构思考与选择

2018-06-12  本文已影响1091人  勇往直前888

问题

image.png image.png

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

架构

从现状来看,前后端分离之后,服务端直接给各种端提供服务是很自然能够想到的一种方式。这种方式的优点是简单直接,缺点是不够灵活。因此,考虑在前端和后端之间插入一个中间层,作为前后端之间的桥梁,增加灵活性。
对于这个中间层的称呼,一种是“网关层或者接入层”,这个可能会和后台现有的网关和接入层造成混淆。另一种叫法叫做BFF(Backend for Frontends,为前端而存在的后端),这种称呼相对比较准确,不会带来混淆。

image.png image.png

解决方法

image.png

组织结构

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

分类思路

image.png

人员组成

人员还是按照专业分工的角度去找,按照每个角色最少2人,防止单点风险的思路,人员需求如下:
iOS开发:2人
Android开发:2人
H5开发:4人
Node或者Java开发(BFF):2人

管理

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

职能管理

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

敏捷管理

流程

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

瀑布模型

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

敏捷模型

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

特殊之处

Mock数据

内部版本

需求拉动

平稳的节奏

重视重构

重视预研

面向BFF编程

效率和安全并重

思考

参考文章

微服务下使用GraphQL构建BFF
前后端分离演进:不能微服务,那就使用 BFF 隔离
一个可供创业公司参考的移动APP服务端架构演进方案
蚂蚁财富的BFF实践
了解BFF架构
大前端技术大会
当我们在谈大前端的时候,我们谈的是什么
如何落地和管理一个“大前端”团队?饿了么大前端团队解密
我理解中的“大前端”/“大无线”
漫极客 CTO 李焱:大前端之路 - 如何用Web技术一统三端(Web、Desktop、Mobile)开发

上一篇 下一篇

猜你喜欢

热点阅读