设计
版权声明
- 文章作者: flytreeleft - flytreeleft@crazydan.org
- 文章链接: https://duzhou.crazydan.io/docs/development/framework/server/dsl-designer/design
- 版权声明: 本文章采用许可协议《署名 4.0 国际 (CC BY 4.0)》。 转载或商用请注明来自渡舟平台!
- 设计并生成 XMeta 模型
- 根据 XMeta 生成 GraphQL 后端,并验证接口的数据读写功能
- 以 H2 作为测试库
- 以单体模式设计应用各个部分,在需要时可以按模块分组,
并在部署前确定是以单体模式,还是微服务模式部署,
再根据部署模式构建单体或各个微服务
- 部署信息标注在部署模型上,其结构由 DSL 设计器维护
- 在指定位置存放 XDef、XDsl 定义,在将其解析为设计器的 DSL
结构后,再通过设计器维护其结构
- 由渡舟平台统一存放定义文件,在构建应用时识别应用所需要的定义, 再将其打包进 jar,后续有更新时,再通过配置中心下发变更
- 可视化部分,采用树形结构来展示和设计应用,在 DSL
的配置中可跳转到页面设计器、接口设计器等工具
- 在节点上通过附加属性
task:status
来标示该节点为任务节点, 该属性的值为该任务的状态,节点的唯一标识为任务的标识, 当前的 DSL 树即为父子任务树 - 在设计器中通过「加入待办」按钮将指定节点添加为待办任务节点
- 调用任务创建接口,从指定 DSL 中抽取任务结构并保存。 对任务的状态、进度等更新,则需调用任务更新接口进行处理
- 在设计器侧,以属性分组形式展示可调整的待办任务属性(状态等)
- 待办任务名称默认引用 DSL 节点上的显示名称,在任务的 DSL
中引用源 DSL 的
i18n
文件,并以与源 DSL 一样的方式标记需国际化的属性:<task i18n:name="app.service.user-auth.name" />
- 在节点上通过附加属性
- 同时提供图形化编辑和 Tree 结构编辑模式
- 设计器识别的是自身所支持的 DSL 模型,但其设计产物的 DSL 与目标 DSL 是可以相互转换的,也就是从设计器 DSL可以转换为目标 DSL, 而从目标 DSL也能够转换到设计器 DSL
可视化的目的
- 由设计器自动分析得到 DSL 模型属性的类型和可选值等填充信息,降低人脑记忆成本
- 由设计器识别 DSL 模型之间的引用关系和主次、先后关系,提高设计结果的准确性
- 由设计器统一管理 DSL 及其差量的分层,尽可能地屏蔽底层的实现细节内容
应用设计流程
- 在「应用管理」中创建应用,并填写应用名称、Maven Group ID、版本号、图标等信息
- 在「应用列表」中点击设计按钮,跳转到应用的可视化设计器中
功能要点
- 从 ORM 模型关联属性出发链接目标模型,建立二者的双向关联关系
- 跨服务模块也可以建立 ORM 模型之间关联,但引用侧只引入被关联模型的结构, 不引入对其的业务逻辑,只是方便做数据查询和服务间的数据交换