前言
前文:
mp.weixin.qq.com/s/u5FmDX2kV...
mp.weixin.qq.com/s/7De2jvMtE...
mp.weixin.qq.com/s/jNRuRObem...
项目地址:github.com/wnhyang/coo...
引用关系
在coolguard中,只是目前引用关系大概只有这些,但是未来必定还会有其他,如:自定义表头、流程编排、模型字段、ETL等等引用。
箭头起点表示引用,终点表示被引用,任意节点没有引用(也就是没有被箭头所指)那么删除/下线就是安全的,如果还是存在箭头所指那么就要考虑是否可删除/下线。当然这其实有点图入度出度(离散数学、图)的相关知识。
拿最熟悉的"用户-角色-菜单"来讲,通常会有用户-角色,角色-菜单的引用关系,这是一样的,删除角色总要考虑角色是否还有被用户引用吧?
规则/流程编排中,改动了任意节点的还能保证整个规则/流程正常运行吗?
如下,现在的如dify、coze等工作流通常会在预览和保存时检查其节点是否配置正确。

引用关系图中红色表示是有版本管理的,像策略集一样是有一份副本的,为了展示的清晰就省去其他的了。
有了版本管理,引用关系就复杂了一些,举个例子:无论是编辑区还是运行区的规则可以引用任意定义的字段,但是指标只能引用已发布的指标,编辑中未发布的指标是不可引用的。


当然策略集只能编排已发布的策略也是一样的。
运行区与编辑区
记得最开始也是运行区+编辑区的方案,但是后面为了简化把这个改为了一体的方案。
mp.weixin.qq.com/s/tNoM8uVHU...
改为最初方案,如下
有版本的(策略集/策略/规则/指标)都通过切换tab来切换运行区和编辑区

这样调整的一个很重要的原因是:方便跳转。
字段引用
字段新增引用关系查看和跳转

点击引用按钮后,跳抓到字段引用页面,其可以展示被接入、指标、规则等引用,通过树形展示

支持搜索,输入后回车或点击,搜索到关键字后展开其父节点

支持详细信息查看和跳转,目前是通过抽屉展示的json数据,未来有可能考虑双列布局(左边是树组件,右边是详细内容),并通过不可编辑的表单展示。

跳转,注意有版本的控制会以运行/编辑区分开,如上是编辑区的指标,跳转的话会在路由上携带query参数,这样就可以切换tab到运行或编辑,并将其他查询参数带上。

明白了吧,这就是为什么要改为第一版,区分出运行区和编辑区。
当然跳转的地方不只是这里,如策略集的名称也是可跳转的,并且运行跳运行,编辑跳编辑。

点击上图的"投票策略"就跳转到规则页,并且带上相关query参数。

当然还有如事件历史,字段|指标|策略等也都会加入查看详情和快捷跳转的,未来还有会有监控等等。

其他
其他的引用,如指标、策略、策略集、标签、消息模版等等,就不一一梳理介绍了。
小结
暂时到这吧,预告下一篇大概是关于前面讲了很多次的指标计算(分片、合并、预计算),我一直看这个不爽,总是觉得不够完善。
要做的还有很多,如LiteFlow可视化编排、事件数据展示完善、监控、三方接入、豁免、导出导入(用于不同环境的配置同步,如测试环境到生产环境等等)。而且这些都还只是功能方面,更重要的是系统易用、可靠、扩展等等方面。