非全自研可视化表达引擎RuleLinK可视化之路
导读
上一篇《非全自研可视化表达引擎-RuleLinK》介绍了RuleLink的V1.0版本,虽说一定程度上消除了一些配置相关的样板式代码,也肉眼可见的消除了一些研发资源的浪费;RuleLink的初衷是让业务配置变得简单,是面向运营同学。要真正面向运营,我们开始了真正的可视化之路,“真正”二字体验在操作可视化,数据可视化。于是有了这篇文章。也为它设计一个Logo。
两个概念
表达式
这个表达式的意思是:如果 某业务线、某订单类型,某门店类型,订单金额5万以的内 则 [返回最低折扣]。
data.bu == 0
&& data.storeType == 0
&& data.price > 0
&& data.price < 50000
&& data.orderType == 60
返回结果
返回结果是指输入的事实满足条件时,返回的内容。目前只支持返回基本类型。
如下:
1,满足条件时返回折扣95(这是简单文本)
2,满足条件时返回具体的业务数据
所以可视化解决两个问题:
1,规则表达的可视化(包括选项)
2,返回结果数据的可视化
RuleLink领域模型
基于前面的分析,为了让表达式中的因了选项可视化以及返回结果数据项的可视化,我们本来计划再设计一个选项数据源的对象(存储选项,如支付方式 分支付宝,微信,招行等),这是个麻烦的工作,为了这个小工具实在不想动用太多研发资源,霎时感觉山重水尽疑无路。
早上6点多和娃子到学校晨跑时,放空思绪,方才记起上一个需求为了解决商品自定义字段问题,抽出了独立属性管理,支持手动配置选项与动态选项。于是在上一篇文章ER模型的基础上引入了属性管理。有了属性动态的支持,才能贴近业务,RuleLink才能从一个单纯的通用工具升级到一个规则平台,这才有了灵魂。及简的ER模型如下图。
功能演示
属性
属性支持配置选项或者动态选项(获取业务系统数据)
规则对象
对象因子
因子关联属性,复用其选项内容
规则
规则部分与返回结果都是选择业务数据,这样的操作方是运营同学方便使用的。
未来规划
目前的基本已经勉强可以面向运营同学使用了,但是真的要跑向生产环境,还是有诸多问题等待解决。接下来主要面向易用性&安全性方面做些工作。
- 业务功能嵌入规则模块
- 操作符号扩展
- 规则版本号-解决修改的问题。
- 权限管理-数据权限的粒度是一个问题
- 规则静态解析工具-支持客户端自助判断
- ...
路漫漫其修远兮
写在最后
今年初开始有这个想法,到今天完成一个基础的可用版本,交付运营使用。已经是6-7个月过去了。第一个版本所有数据都是手动添加,github刨资源,再到后来刷脸调用前端资源。心中一直想着一件事儿,其实也挺充实的。
接下来就是快乐的发版聚餐了,未来希望每增加100个场景聚餐一次;
成为一名优秀的程序员!
非全自研可视化表达引擎RuleLinK可视化之路的更多相关文章
- OSG 初始化为非全屏窗口
OSG默认的窗口时全屏的,调试的时候不方便. 在网上看到一段代码,可以非全屏显示 int _tmain(int argc, _TCHAR* argv[]){ osgViewer::Viewer vie ...
- GIS案例学习笔记-三维生成和可视化表达
GIS案例学习笔记-三维生成和可视化表达 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:针对栅格或者矢量数值型数据,进行三维可视化表达 操作时间:15分钟 案 ...
- 表格中的checkbox复选框 全选非全选 公共方法 及提交选中结果
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 微信非全屏播放设置(仅Iphone)
由于微信X5内核强制视频全屏,用X5自带内核播放,一般内嵌视频打开播放就会被全屏. ihpone里面可以通过设置 x-webkit-airplay="true" webkit-pl ...
- 让DuiLib CheckBox支持全选、全不选、非全选三种状态
原文 https://blog.csdn.net/EveyX/article/details/38433783 DuiLib官方库中的Checkbox只有Checked和Uncheck两种状态,但我们 ...
- Java工作流引擎结合可视化表单开发,10分钟完成一个业务流程发布
回忆以前工作流引擎的应用,感觉历历在目啊!当初公司接了一个项目关于政府单位公文流转的管理系统,一开始客户跟我画了十多张业务流程图.话说这十多张业务流程图,涉及的业务范围还蛮多,像用审批授权,开通流程, ...
- IOS(苹果手机)使用video播放HLS流,实现在内部播放及全屏播放(即非全屏和全屏播放)。
需求: 实现PC及移动端播放HLS流,并且可以自动播放,在页面内部播放及全屏播放功能. 初步:PC及安卓机使用hls.js实现hls流自动播放及全屏非全屏播放 首先使用了hls.js插件,可以实现在P ...
- 三维GIS引擎地图可视化渲染方案设计
1.GIS地图可视化流程 GIS地图可视化就是将空间数据转化为地图数据再进行交互处理的方法,下图一展示了地图可视化的可编程渲染的典型管道,原始空间数据必须处理为图形API支持基础图元用以地图渲染.下图 ...
- Cesium数据可视化-仓储调度系统可视化部分(附github源码)
Cesium数据可视化-仓储调度系统可视化部分 目的 仓储调度系统需要一个可视化展示物资运输实况的界面,需要配合GPS设备发送的位置信息,实时绘制物资运输情况和仓储仓库.因此,使用Cesium可视化该 ...
- Python全栈 MySQL 数据库 (引擎、事物、pymysql模块、orm)
ParisGabriel 每天坚持手写 一天一篇 决定坚持几年 为了梦想为了信仰 开局一张图 存储引擎(处理表的处理器) 基本操作: ...
随机推荐
- XHbuilder 需要的 ipa 签名,超详细的教程,你不看吃亏的是自己!
今天使用 hbuilder 运行到 ios 真机的时候,突然发现还需要 ipa 签名,这是什么东东呢? 1.IPA 签名是什么? 因苹果公司禁止企业证书用于非企业内部开发者.所以开发者无法再使用DCl ...
- 检测到 #include 错误。请更新 includePath。已为此翻译单元 禁用波形曲线
也有可能是VSCode抽风了 重启就好
- Redis数据类型之Stream系列一
一:Stream简介 Redis Stream是5.0版本之后新增的一种数据结构,其结构类似于'仅追加日志'.但也实现了多种操作来克服'仅追加日志'的一些限制,如读取策略(xread,xrange ...
- Java计算日期之间相差时间和解决浮点类型精度过长
计算日期之间相差 此处相差计算以分钟为单位,自行可根据业务场景更改 /** * 测试时间相差分钟 */ @Test public void getTime() { SimpleDateFormat s ...
- Llama2开源大模型的新篇章以及在阿里云的实践
Llama一直被誉为AI社区中最强大的开源大模型.然而,由于开源协议的限制,它一直不能被免费用于商业用途.然而,这一切在7月19日发生了改变,当Meta终于发布了大家期待已久的免费商用版本Llama2 ...
- 统一观测丨使用 Prometheus 监控 Cassandra 数据库最佳实践
作者:元格 本篇内容主要包括四部分:Cassandra 概览介绍.常见关键指标解读.常见告警规则解读.如何通过 Prometheus 建立相应监控体系. Cassandra 简介 Cassandra ...
- DevOps|研发效能治理:进化史、规模化与治理复杂性
麻广广@码猿外 研发效能这个词近几年火遍全网,各大企业都加入了研发效能治理的行列,开始梳理企业内部各个团队的研发流程,以期望找到企业降本增效的方向. 抛开政治因素,研发效能治理我们到底是在谈什么呢?从 ...
- 王道oj/problem18
网址:略 思路:见注释:有bug:插入时1和2的结果正好相反,稍后编辑. 代码: #define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#incl ...
- 关于Tensorflow!目标检测预训练模型的迁移学习
前言 关于TF的目标检测迁移学习,我一开始是想通过Tensorflow提供的API,用JS来实现的.但是官方不但没有案例,网上也没有踩坑的博客,加之我又着急要弄水印检测. 于是就在网上看了很多人用 ...
- vscode+gdb 配置
到这个网址下载 mingw c语言环境 https://sourceforge.net/projects/mingw-w64/files/mingw-w64/ 我是windows64 位,直接下载这个 ...