System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开的实施方式涉及计算机领域,更具体地,本公开的实施方式涉及数据验证方法、介质、装置和计算设备。
技术介绍
1、本部分旨在为本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
2、为了减小软件的开发难度,提高开发速度,开发者通常会选择使用低代码平台来开发软件。低代码平台能够为开发者提供页面、逻辑、数据实体、流程等可视化编排工具,开发者只需要写很少的代码就能够完成大量的开发工作。
3、运行期验证是一种很常见的对低代码平台的数据进行验证的机制,与编译期验证相比,运行期验证存在表达能力强以及误报率低等优点。但现有的运行期验证需要用户手动触发,开发人员的使用感受较差。
技术实现思路
1、本公开提供一种数据验证方法、介质、装置和计算设备,以解决现有的运行期验证需要用户手动触发以及开发人员的使用感受较差的问题。
2、在本公开实施方式的第一方面中,提供了一种数据验证方法,应用于低代码平台,包括:
3、若待验证代码中的第一数据满足对应的目标触发条件,则获取预先设置在所述第一数据上的验证规则;其中,所述待验证代码为通过所述低代码平台编辑生成的;
4、根据所述验证规则对所述第一数据进行验证,生成第一验证结果,所述第一验证结果用于表征所述第一数据是否满足所述验证规则。
5、在本公开的一实施例中,若所述第一数据为变量、属性或形参中的任一种,则对应的目标触发条件为所述第一数据的值发生变动;
7、若所述第一数据为类型,则对应的目标触发条件为所述第一数据的实例被创建、被销毁或被修改。
8、在本公开的一实施例中,在所述若待验证代码中的第一数据满足对应的目标触发条件,则获取预先设置在所述第一数据上的验证规则之前,所述方法还包括:
9、根据所述待验证代码,构建所述待验证代码的级联关系;其中,所述级联关系存在上级数据和下级数据,所述下级数据会跟随所述上级数据的改变而改变;
10、所述第一数据对应的目标触发条件为所述第一数据对应的上级数据发生改变。
11、在本公开的一实施例中,所述根据所述待验证代码,构建所述待验证代码的级联关系,包括:
12、针对所述待验证代码的任一属性,将所述属性确定为所述级联关系中的下级数据,将所述属性所属类型确定为所述下级数据的上级数据;以及,
13、针对所述待验证代码的任一类型,若所述类型为目标类型的属性,则将所述类型确定为所述级联关系的下级数据,将所述目标类型确定为所述下级数据的上级数据,以获取所述待验证代码的级联关系。
14、在本公开的一实施例中,所述第一数据对应的目标触发条件为在逆向引用关系中对应的第二数据被修改;其中,所述逆向引用关系是基于所述低代码平台的待验证代码中的赋值函数预先建立的。
15、在本公开的一实施例中,所述逆向引用关系的创建过程包括:
16、创建空的逆向引用映射,所述逆向引用映射用于表示键和值的对应关系;
17、针对所述待验证代码中每一赋值函数,将所述赋值函数的左值作为值存入所述空的逆向引用映射,并将所述赋值函数的右值作为对应的键存入所述空的逆向引用映射,以生成所述逆向引用关系。
18、在本公开的一实施例中,所述根据所述验证规则对所述第一数据进行验证,生成第一验证结果,包括:
19、基于预先配置的报错模式,根据多个验证规则依次对所述第一数据进行验证,以获得多个子验证结果;
20、根据所述多个子验证结果确定所述第一验证结果。
21、在本公开的一实施例中,响应于当前子验证结果指示所述第一数据满足当前子验证结果对应的验证规则,则根据下一验证规则继续对所述第一数据进行验证,直至任一子验证结果指示所述第一数据不满足相应的验证规则,或者,直至所有的子验证规则均指示所述第一数据满足相应的验证规则;
22、获得相应的多个子验证结果。
23、在本公开的一实施例中,在所述报错模式为全量模式时,所述基于预先配置的报错模式,根据多个验证规则依次对所述第一数据进行验证,以获得多个子验证结果,包括:
24、遍历所述验证规则,一一对所述第一数据进行验证,以获得多个子验证结果。
25、在本公开的一实施例中,若所述第一数据为全局变量,则所述第一数据对应的验证规则的作用域为:所述待验证代码中其他具有全局作用域的变量,和所述待验证代码中其他具有全局作用域的函数。
26、在本公开的一实施例中,若所述第一数据为局部变量,则所述第一数据对应的验证规则的作用域为所述第一数据所属目标函数的形参、所述目标函数的局部变量、所述待验证代码中具有全局作用域的变量、以及所述待验证代码中具有全局作用域的函数。
27、在本公开的一实施例中,若所述第一数据为名称,且所述第一数据对应的验证规则为执行前的验证规则,则所述验证规则的作用域为所述第一数据所属目标函数的形参、所述待验证代码中具有全局作用域的变量、以及所述待验证代码中具有全局作用域的函数;其中,所述名称为函数名或者方法名;
28、若所述第一数据为名称,且所述第一数据对应的验证规则为执行后的验证规则,则所述验证规则的作用域为所述第一数据所属目标函数的形参、所述目标函数的局部变量、所述待验证代码中具有全局作用域的变量、以及所述待验证代码中具有全局作用域的函数。
29、在本公开的一实施例中,在所述若待验证代码中的所述第一数据满足对应的目标触发条件,则获取预先设置在所述第一数据上的验证规则之前,所述方法还包括:
30、针对每个验证规则,生成所述验证规则对应的帮助类;
31、针对每个变量,基于预先设置在所述变量上的验证规则,确定所述变量的子类,所述变量的子类包括预先设置在所述变量上的验证规则的帮助类;
32、针对每个变量,基于所述变量对应的子类对所述变量进行验证,生成第二验证结果,所述第二验证结果用于表示所述变量是否满足对应的验证规则。
33、在本公开实施方式的第二方面中,提供了一种数据验证装置,应用于低代码平台,包括:
34、获取模块,用于若待验证代码中的第一数据满足对应的目标触发条件,则获取预先设置在所述第一数据上的验证规则;其中,所述待验证代码为通过所述低代码平台编辑生成的;
35、验证模块,用于根据所述验证规则对所述第一数据进行验证,生成第一验证结果,所述第一验证结果用于表征所述第一数据是否满足所述验证规则。
36、在本公开的一实施例中,若所述第一数据为变量、属性或形参中的任一种,则对应的目标触发条件为所述第一数据的值发生变动;
37、若所述第一数据为函数,则对应的目标触发条件为进入所述函数或退出所述函数;
38、若所述第一数据为类型,则对本文档来自技高网...
【技术保护点】
1.一种数据验证方法,应用于低代码平台,包括:
2.根据权利要求1所述的方法,若所述第一数据为变量、属性或形参中的任一种,则对应的目标触发条件为所述第一数据的值发生变动;
3.根据权利要求1所述的方法,在所述若待验证代码中的第一数据满足对应的目标触发条件,则获取预先设置在所述第一数据上的验证规则之前,所述方法还包括:
4.根据权利要求3所述的方法,所述根据所述待验证代码,构建所述待验证代码的级联关系,包括:
5.根据权利要求1所述的方法,所述第一数据对应的目标触发条件为在逆向引用关系中对应的第二数据被修改;其中,所述逆向引用关系是基于所述低代码平台的待验证代码中的赋值函数预先建立的。
6.根据权利要求5所述的方法,所述逆向引用关系的创建过程包括:
7.根据权利要求1所述的方法,所述根据所述验证规则对所述第一数据进行验证,生成第一验证结果,包括:
8.一种数据验证装置,应用于低代码平台,包括:
9.一种计算设备,包括:处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机执行指令,
10.一种存储介质,所述存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7任一项所述的方法。
...【技术特征摘要】
1.一种数据验证方法,应用于低代码平台,包括:
2.根据权利要求1所述的方法,若所述第一数据为变量、属性或形参中的任一种,则对应的目标触发条件为所述第一数据的值发生变动;
3.根据权利要求1所述的方法,在所述若待验证代码中的第一数据满足对应的目标触发条件,则获取预先设置在所述第一数据上的验证规则之前,所述方法还包括:
4.根据权利要求3所述的方法,所述根据所述待验证代码,构建所述待验证代码的级联关系,包括:
5.根据权利要求1所述的方法,所述第一数据对应的目标触发条件为在逆向引用关系中对应的第二数据被修改;其中,所述逆向引用关系是基于所述低代码平台的待验...
【专利技术属性】
技术研发人员:朱子润,陈谔,
申请(专利权)人:杭州网易数之帆科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。