知识卡片

微前端粒度选择:看业务流程完整性,而非机械按领域模型拆分

普通读书笔记卡

内容

[[业务单元的三种组合方式单一组合通用]]已经说明一个微前端可以对接一个或多个微服务,但书中进一步给出了具体怎么选的判断依据:不是看”这个中台有几个领域模型”就机械地拆出几个微前端,而是要先问两个问题。第一,这几个领域模型是否面向完全不同的业务场景?如果是(比如支付中心的收款和付款,一个面向收款场景一个面向付款场景,两者用户旅程完全不搭界),即使它们同属一个中台,也应该分别设计各自的微前端,组合成不同的业务单元,而不是强行捏在一起。第二,如果这几个领域模型其实是同一条业务流程里前后相继的环节,是否为了保证这条流程在前端呈现的完整性和用户体验,值得把它们合并进同一个微前端(此时该微前端对接多个微服务,构成组合业务单元)?这一步判断服从一条更高优先级的原则:”当前端架构设计和用户体验两者发生冲突时,应该毫不犹豫地选择用户体验”——也就是说,”领域模型边界清晰”本身不是目的,只是手段,如果机械按领域模型一刀切拆分微前端会牺牲用户在业务流程中的连贯体验,那么应该优先保全体验完整性,而不是死守边界纯粹性。

参考来源

- 位置:第22章《中台战略下的保险订单化设计》"22.5.2 如何进行单元化设计"(源文件:_epub-src/OEBPS/Text/chapter6-1-5-2.xhtml) - 结论依据:原文说明"当前端架构设计和用户体验两者发生冲突时,应该毫不犹豫地选择用户体验……有些业务领域需要考虑整个中台或子域的前端页面逻辑的完整性……这样可以基于中台的多个领域模型来构建微前端……有些业务中台虽然有多个领域模型,但这些领域模型之间业务差异非常大,面向的业务场景完全不同……我们也会选择为它们分别设计微前端",直接支撑本卡片结论。 - 原始内容:所以在前端设计时,我们先定下一个原则:"当前端架构设计和用户体验两者发生冲突时,应该毫不犹豫地选择用户体验。"……在支付中心有收款和付款两个领域模型,但这两个领域模型一个面向收款场景,一个面向付款场景,两者业务完全凑不到一起。所以即使它们同属于支付中心,我们也会选择为它们分别设计微前端,组合成不同的业务单元。