跳转到内容

开发助力 mermaid 绘制图表

从事软件开发时候,设计业务一旦稍微复杂些,都会被要求画流程图整理逻辑。

但当本人绘制时,往往会遗漏一些不关键信息,导致后期修改,但图形的修改比较麻烦,又需要一定时间,所以,找到一款不错的 DSL 语言用来绘制开发图是一件相对必要的事情,对于逻辑和构图都很有利。

这里我将要使用 mermaid 绘制各种图形。

大家可以直接使用 mermaid-live-editor 在网页中进行开发转换 (本来想自己写一个)。

流程图

流程图自不必说,下图是一个通用的表单填写流程 (不包含一些特殊处理):

该图的 DSL 语句异常的简单

graph TD;
create[表单编辑] --> edit[填写表单];
edit --> handleSave[点击保存];
handleSave --> saveCheck{必要性检查};
saveCheck -->|通过|done[结束];
saveCheck -->|未通过|edit;
edit --> handleCancel[点击取消];
handleCancel --> cancelCheck{检查};
cancelCheck -->|没有修改数据|done[结束];
cancelCheck -->|有修改数据|queryClose{询问是否关闭};
queryClose -->|点击确认|done;
queryClose -->|点击取消|edit;

时序图

时序图显示进程如何相互操作以及以什么顺序进行操作

下图描述了微信登陆机制:

代码如下所示:

sequenceDiagram
participant 小程序
participant 开发者服务器
participant 微信服务接口
小程序->>小程序: wx.login() 获取 code
小程序->>开发者服务器: wx.request() 发送 code
开发者服务器->>微信服务接口: 登陆凭证校验接口 appid + appsecret + code
微信服务接口->>开发者服务器: session_key + openid 等
微信服务接口->>微信服务接口: 自定义登陆态与 openid, session_key 关联
开发者服务器->>小程序: 返回自定义登陆态
小程序->>小程序: 自定义登陆台存入 storage
小程序->>开发者服务器: wx.request() 发起业务请求携带自定义登陆态
开发者服务器->>开发者服务器: 通过自定义登陆态查询 openid 和 session_key
开发者服务器->>小程序: 返回业务数据

不仅如此,我们还可以开发其他类型的图表: 类图、状态图、实体关系图、gantt 图以及其他。大家可以自行学习开发。