SAAS平台构建-后端⽅案
⼀、To B 的难点
解决⽅案需要实现的⽬标:
灵活定制:前后端都提供灵活的⼆开机制,前端提供搭积⽊的⾃由组装的能⼒;后端提供灵活的功能扩展能⼒
快速交付:尽快产出原型(⽅便复⽤)、尽快交付产品(积⽊式、配置化地组合业务,基于基线能⼒快速地扩展和定制能⼒)
提⾼⽣产率:提供功能完整的应⽤开发平台
WORA:Write Once,Run Anywhere,前端⼀套代码能够在 PC、Mobile、⼩程序运⾏
Hotpatch:⼩程序化成为 hotpatch 的主流选择
运⾏时态可配置:提供线上前后端的配置平台,实时⽣效
学习成本低:可视化开发平台;完备的⽂档、Demo、视频;
存在很多差异和问题:
ISV、SI 和客户⾃⼰的实现难以保证效果;
标准产品与定制开发要筑起栅栏,实施⼆开不能泄露核⼼代码;
开发完成的前后端组件,需要结构化沉淀成为可复⽤的⼆⽅库;
前后端组件往往⽆法直接复⽤,特别是业务级别组件;
产品化的程度、产品说明⽂档的完善和易⽤;
开发⼀个产品的⽅法论、流程和平台;
解决难点要考虑的⽅⾯:
⾸先说前端,前端架构由传统的 Page+Route,改为 Component+Route,Page 变为纯粹的容器,这样带来的巨⼤好处是,UI 组件与 Page 解耦,使得 UI 组件成为类似于微服务⼀样的独⽴实体,这样,UI 组件就可以脱离 Page 实现任意的组合,这就是“积⽊式”,同时,UI 组件,可以提供 Setter 扩展⽅式来增强组件功能、展⽰、甚⾄绑定不同的后端 API,实现⼆开;
再来说后端,将基础能⼒和业务定制能⼒分层,两者提供不同的注解(@Domain 代表领域基本业务,@Business 代表领域定制业务),⾏业定制基于基础能⼒所暴露的 SPI 进⾏定制开发,在不修改基础能⼒代码的前提下,实现功能的定制,基础能⼒和业务定制能⼒都⽀持通过 SPI 来定义服务的扩展点;数据层⾯,通过定义数据视图,对不同元数据进⾏聚类、组合,以实现运算的⽬的,同时能够以不同的形式对后端数据进⾏展现。
⼆、应⽤开发平台的架构设计
总体架构:
研发过程管理平台的架构设计⽅案
定制小程序需要多少钱?
前端业务组件拼装的架构设计⽅案
后端开放性架构设计⽅案
三、应⽤开发平台设计思路
3.1 前端的开放性设计
前端的开放性设计涉及到 4 个维度:业务组件、沉淀与复⽤、业务流、组件的扩展。
组件业务化及跨平台化:业务组件,如前⾯所述,是能够触发或完成⼀个业务动作、与后端能⼒连接的业务组件,⽽⾮交互 / 基础组件。
沉淀与复⽤:迭代或新应⽤开发时,根据业务需求,可以到业务组件仓库中寻。当业务组件开发完成,通过在 CICD 平台配置脚本,同时沉淀业务组件的 NPM 包。
业务流:页⾯组是⼀种⽅式,将⼏个⾼度相关的页⾯做成⼀个页⾯组,彼此通过相对 url 串联
组件的扩展:组件⾃定义出⼝(⾏为和参数),将出⼝⾏为和出⼝⽬标分离。建⽴⼀种串联机制,可以动态地定义业务组件之间的关系。
3.2后端的开放性设计
架构和流程:
SPI:后端服务的提供者来定义,通过定义 SPI 对外暴露各类可定制点,利⽤ java 的多态性,针对不同的业务场景定制不同的Impl。
元数据:元数据提供 @Entity 注解来申明定义,参数存储上⽀持字段扩展,采⽤属性值表设计。并直接⽣成 SPI 及对应 SPI 的实现代码。
视图:后端平台侧提供视图建模功能,可以⾃由搜索元数据,选择需要的字段,组合成新的视图。开发⼈员需要给出元数据字段到视图字段的 mapping 关系,以及指定视图的 id 作为唯⼀标识,并进⾏发布。
3.3前后端的衔接设计
基本流程:数据对象 DO->SPI->API->展现视图 VO->组件 ->UI,前端业务组件直接与后端 SPI 及数据对象进⾏映射。
前端拼装: 提供编辑器,⽀持绝对布局和相对布局,可以由 VO 直接⽣成业务组件,拖动形式拼装成组件,并绑定后端 API。
后端能⼒:在 Business 和 Domain 都⽀持通过 SPI 来定义服务的扩展点,ISV 和 SI 可以在不修改原有逻辑的基础上,通过替换 SPI 来实现功能的替换、升级和扩展。
数据层⾯:通过将前端组件与后端 SPI 及数据对象进⾏映射,通过定义数据视图,能够根据业务诉求,对不同元数据进⾏聚类、组合。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。