1.什么是DSL设计
DSL 是专为解决特定领域问题而设计的语言或配置规范,我们这里的 DSL 设计是通过 JSON 配置来描述菜单结构、页面类型、表格、搜索、按钮行为等,然后前端根据配置自动渲染出完整的页面。
2.为什么要进行DSL领域模型架构设计
我们在日常工作中可能会对接多家公司开发后台管理系统,这时候我们大多数选择会是复制多份代码,然后再改改配置,改改样式,改改业务逻辑啥的就完事了,这种方式当时是爽了(CV就完事了),但是后期维护系统压力会大很多,因为你改一个功能可能就得改好几份代码,所以我们要进行DSL领域模型的设计,用来减少重复性的工作。
3.设计思路
3.1 整体架构设计
3.2 DSL 配置设计
3.2.1 schema设计
schema采用一份字段配置,多组件复用的设计, 定义好label、type等公用属性后,通过tableOption、searchOption等配置再区分在具体组件里的应用
4.具体应用
假设有一份model.js项目基类配置,有一份pdd.js项目子类配置,然后根据这两份配置显示pdd对应的页面
| 条件 | 操作 | 结果 |
|---|---|---|
| pdd有的键值,model也有 | 修改(重载) | 商品管理->商品管理(拼多多)、客服管理->客户管理(拼多多) |
| pdd有的键值,model没有 | 新增 | 无->信息查询、数据分析 |
| model有的键值,pdd没有 | 保留(继承) | 订单管理->订单管理 |
页面显示: