一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

机器学习的代码审核方法、装置、设备及存储介质与流程

2022-06-01 08:46:18 来源:中国专利 TAG:


1.本技术涉及到人工智能技术领域,特别是涉及到一种机器学习的代码审核方法、装置、设备及存储介质。


背景技术:

2.在采用eclipse(开放源代码的、基于java的可扩展开发平台)、idea(java编程语言开发的集成环境)等开发工具中进行java代码开发时,需要一些代码审核插件来帮助开发人员进行自动代码审核,避免一些常见开发错误。目标最为常见的代码审核插件有阿里审核插件,以及idea自带的一些简单代码审核插件,这些插件目前只能采用一些通用审核规则,对java代码进行一些简单校验,比如代码块数过长、变量命名是否符合驼峰命名法等。然后,对于业务逻辑复杂的代码,因每个系统或者说每个应用都有着各自独特的一些需要审核或者校验的点,通用审核规则的审核结果的价值有限,对开发人员的帮助有限。


技术实现要素:

3.本技术的主要目的为提供一种机器学习的代码审核方法、装置、设备及存储介质,旨在解决现有技术的采用阿里审核插件或开发工具自带的代码审核插件进行代码审核,存在仅仅采用通用审核规则进行简单校验,不适用于业务逻辑复杂的代码审核的技术问题。
4.为了实现上述发明目的,本技术提出一种机器学习的代码审核方法,所述方法包括:
5.获取目标开发工具发送的代码开发请求;
6.根据所述代码开发请求携带的目标开发工具标识及目标开发环境配置数据,从预设的代码审核决策树库中获取代码审核决策树,作为推荐代码审核决策树,其中,所述代码审核决策树是基于机器学习得到的决策树,用于决策代码中的审查对象适用的通用审核规则及私有审核规则;
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.根据各个所述单审核对象审核结果生成所述代码审核结果。
39.进一步的,所述采用预设的代码审核规则库和所述目标代码审核决策树,对所述待审核的代码包进行审核,得到代码审核结果之后,还包括:
40.根据所述代码审核结果,对所述待审核的代码包进行标注及提示。
41.本技术还提出了一种机器学习的代码审核装置,所述装置包括:
42.请求获取模块,用于获取目标开发工具发送的代码开发请求;
43.推荐代码审核决策树确定模块,用于根据所述代码开发请求携带的目标开发工具标识及目标开发环境配置数据,从预设的代码审核决策树库中获取代码审核决策树,作为推荐代码审核决策树,其中,所述代码审核决策树是基于机器学习得到的决策树,用于决策代码中的审查对象适用的通用审核规则及私有审核规则;
44.决策树配置数据获取模块,用于根据所述推荐代码审核决策树获取用户输入的决策树配置数据;
45.目标代码审核决策树生成模块,用于根据所述决策树配置数据生成目标代码审核决策树;
46.待审核的代码包获取模块,用于获取所述目标开发工具发送的待审核的代码包;
47.代码审核结果确定模块,用于采用预设的代码审核规则库和所述目标代码审核决策树,对所述待审核的代码包进行审核,得到代码审核结果。
48.本技术还提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
49.本技术还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
50.本技术的机器学习的代码审核方法、装置、设备及存储介质,其中方法通过基于机器学习得到的用于决策代码中的审查对象适用的通用审核规则及私有审核规则的决策树进行代码审核,符合了通用的及私有的审核要求,提高了审核的全面性,适用于业务逻辑复杂的代码审核;基于目标开发工具及目标开发环境配置数据进行代码审核决策树推荐,有利于提高确定的代码审核决策树的准确性,提高代码审核的准确性。
附图说明
51.图1为本技术一实施例的机器学习的代码审核方法的流程示意图;
52.图2为本技术一实施例的机器学习的代码审核装置的结构示意框图;
53.图3为本技术一实施例的计算机设备的结构示意框图。
54.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
55.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
56.参照图1,本技术实施例中提供一种机器学习的代码审核方法,所述方法包括:
57.s1:获取目标开发工具发送的代码开发请求;
58.s2:根据所述代码开发请求携带的目标开发工具标识及目标开发环境配置数据,从预设的代码审核决策树库中获取代码审核决策树,作为推荐代码审核决策树,其中,所述代码审核决策树是基于机器学习得到的决策树,用于决策代码中的审查对象适用的通用审核规则及私有审核规则;
59.s3:根据所述推荐代码审核决策树获取用户输入的决策树配置数据;
60.s4:根据所述决策树配置数据生成目标代码审核决策树;
61.s5:获取所述目标开发工具发送的待审核的代码包;
62.s6:采用预设的代码审核规则库和所述目标代码审核决策树,对所述待审核的代码包进行审核,得到代码审核结果。
63.本实施例通过基于机器学习得到的用于决策代码中的审查对象适用的通用审核规则及私有审核规则的决策树进行代码审核,符合了通用的及私有的审核要求,提高了审核的全面性,适用于业务逻辑复杂的代码审核;基于目标开发工具及目标开发环境配置数据进行代码审核决策树推荐,有利于提高确定的代码审核决策树的准确性,提高代码审核的准确性。
64.对于s1,可以是用户在目标开发工具的代码开发界面点击开发开始按钮;开发开始按钮被点击时目标开发工具将生成代码开发请求;通过与目标开发工具的通信连接,获取目标开发工具发送的代码开发请求。
65.其中,所述代码开发请求携带有目标开发工具标识及目标开发环境配置数据。
66.目标开发工具标识,也就是目标开发工具的开发工具标识。开发工具标识可以是开发工具名称、开发工具id等唯一标识一个开发工具的数据。
67.开发工具包括但不限于:eclipse工具和idea工具。
68.目标开发环境配置数据,也就是目标开发工具的开发环境配置数据。开发环境配置数据包括但不限于:中间件配置数据、开发框架配置数据、数据库配置数据、web(全球广域网)服务配置数据。web服务一般指web service。web service,是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的xml(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的交互操作的应用程序。
69.代码开发请求,是进行代码开发的请求。
70.对于s2,将目标开发工具标识及目标开发环境配置数据,从代码审核决策树库的各个检索关键字中进行查找,将查找到的检索关键字在代码审核决策树库中对应的代码审核决策树作为推荐代码审核决策树。
71.代码审核决策树库包括:检索关键字和代码审核决策树。
72.通用审核规则,是代码开发常用的审核规则。通用审核规则包括但不限于:命名规
范,长度规范和行数规范。
73.私有审核规则包括不限于:是否存在常用变量,该变量的使用之前是否需要进行一些逻辑判断。
74.逻辑判断包括但不限于:空指针判断、长度判断和属性必填判断。
75.代码审核决策树,是采用机器学习的方法,根据多个训练样本生成决策树。每个所述训练样本包括:代码包样本数据和审核结果标注数据。代码包样本数据是代码的数据包。审核结果标注数据,是对代码包样本数据中的审核对象的审核对象名称的标注及审核对象对应的审核规则标识的标注。审核对象是类、变量和方法中的任一种。审核对象名称也就是类名、变量名和方法名。
76.也就是说,审查对象是一个类对应的代码块、一个类变量对应的代码块和一个类方法对应的代码块中的任一种。
77.对于s3,对所述推荐代码审核决策树进行决策树界面展示;在所述决策树界面中获取所述用户输入的所述决策树配置数据。
78.可选的,所述决策树配置数据,是对所述推荐代码审核决策树的配置结果。配置结果包括:选择推荐或修改推荐。选择推荐,是直接选用所述推荐代码审核决策树作为用户自己想要用的代码审核决策树。修改推荐,是对所述推荐代码审核决策树进行修改后作为用户自己想要用的代码审核决策树。
79.对于s4,当所述决策树配置数据的配置结果是选择推荐时,将所述推荐代码审核决策树作为所述目标代码审核决策树;当所述决策树配置数据的配置结果是修改推荐时,根据所述推荐代码审核决策树和所述决策树配置数据中的修改结果生成所述目标代码审核决策树。通过决策树配置数据,实现了用户的个性化配置,满足了个性化的审核需求。
80.对于s5,用户在所述目标开发工具中的代码开发界面中点击代码包审核按钮;代码包审核按钮被点击时,所述目标开发工具将代码开发界面中的所有代码作为待审核的代码包;通过与所述目标开发工具的通信连接,获取所述目标开发工具发送的待审核的代码包。
81.对于s6,采用所述目标代码审核决策树,对所述待审核的代码包进行审核对象的识别及每个审核对象的审核规则标识的识别,根据识别的每个审核规则标识,从代码审核规则库中获取代码审核规则,以用于对所述待审核的代码包中的审核对象进行审核,将针对每个审核对象得到的审核结果组合成代码审核结果。
82.代码审核规则库包括:审核规则标识和代码审核规则。
83.代码审核结果包括:审核对象位置和审核对象不通过原因。
84.可选的,代码审核结果还包括:代码审核规则。
85.可以理解的是,可以将步骤s1至步骤s6实现为插件包,比如,jar包,然后将在开发工具上安装该插件包,即可使用步骤s1至步骤s6进行代码审核。
86.jar包,是与平台无关的文件格式,可将多个文件合成一个文件。
87.在一个实施例中,上述获取目标开发工具发送的代码开发请求之前,还包括:
88.s11:获取所述目标开发工具发送的开发环境对象推荐请求,其中,所述开发环境对象推荐请求携带有已配置开发环境数据;
89.s12:获取与所述已配置开发环境数据对应的目标开发类型;
90.s13:从预设的开发环境对象推荐模型库中,获取与所述目标开发工具及所述目标开发类型对应的开发环境对象推荐模型,作为目标开发环境对象推荐模型;
91.s14:从所述已配置开发环境数据中确定已配置开发环境对象链路;
92.s15:将所述已配置开发环境对象链路输入所述目标开发环境对象推荐模型进行下一个开发环境对象概率预测,得到开发环境对象概率预测结果;
93.s16:根据所述开发环境对象概率预测结果进行开发环境对象推荐,得到开发环境对象推荐结果;
94.s17:将所述开发环境对象推荐结果发送给所述目标开发工具。
95.本实施例将已配置开发环境对象链路输入开发环境对象推荐模型进行下一个开发环境对象概率预测,从而提高了开发环境配置数据配置的准确性和效率;而且采用的是与所述目标开发工具及所述目标开发类型对应的开发环境对象推荐模型进行下一个开发环境对象概率预测,有利于提高开发环境对象推荐结果的准确性,提高代码审核的准确性。
96.对于s11,用户在所述目标开发工具中点击环境配置按钮;环境配置按钮被点击时将触发开发环境对象推荐请求;通过与目标开发工具的通信连接,获取所述目标开发工具发送的开发环境对象推荐请求。
97.开发环境对象推荐请求,是进行开发环境对象的推荐的请求。
98.已配置开发环境数据,是用户已经完成的开发环境的配置数据。
99.对于s12,可以从开发环境配置开始请求携带的开发类型中获取开发类型作为与所述已配置开发环境数据对应的所述目标开发类型。开发环境配置开始请求携带的开发类型,也就是用户在目标开发工具中选择的想要使用的开发类型。
100.可选的,将所述已配置开发环境数据输入预设的开发类型分类模型进行开发类型分类概率预测,得到开发类型分类概率预测向量;从所述开发类型分类概率预测向量中找出值为最大的分类概率作为目标分类概率;将所述目标分类概率对应的开发类型作为与所述已配置开发环境数据对应的所述目标开发类型。
101.开发类型包括但不限于:普通级、入门级、高级和精英级。
102.对于s13,将所述目标开发工具及所述目标开发类型,在开发环境对象推荐模型库中进行第一关联数据查找,将查找到的第一关联数据在开发环境对象推荐模型库中对应的开发环境对象推荐模型,作为目标开发环境对象推荐模型。
103.开发环境对象推荐模型库包括:第一关联数据和开发环境对象推荐模型。第一关联数据包括:开发工具标识和开发类型。
104.开发环境对象推荐模型,是多分类模型。
105.对于s14,采用预设的开发环境对象链路确定方法,从所述已配置开发环境数据中确定已配置开发环境对象链路。
106.对于s15,将所述已配置开发环境对象链路输入所述目标开发环境对象推荐模型进行下一个开发环境对象概率预测,将预测得到的结果作为开发环境对象概率预测结果。
107.对于s16,从所述开发环境对象概率预测结果中找出大于预设的第一概率阈值的开发环境对象概率,将找出的各个开发环境对象概率中进行倒序排序,得到开发环境对象概率集,从开发环境对象概率集的开头开始,获取预设的第一数量的开发环境对象概率作为目标开发环境对象概率集;将目标开发环境对象概率集对应的各个开发环境对象作为开
发环境对象推荐结果。
108.对于s17,通过与所述目标开发工具的通信连接,将所述开发环境对象推荐结果发送给所述目标开发工具。
109.在一个实施例中,上述将所述开发环境对象推荐结果发送给所述目标开发工具,包括:
110.s171:从预设的衍生工具推荐模型库中,获取与所述目标开发工具及所述目标开发类型对应的衍生工具推荐模型,作为目标衍生工具推荐模型;
111.s172:将所述已配置开发环境对象链路输入所述目标衍生工具推荐模型进行衍生工具概率预测,得到衍生工具概率预测结果;
112.s173:根据所述衍生工具概率预测结果进行衍生工具推荐,得到衍生工具推荐结果;
113.s174:将所述开发环境对象推荐结果和所述衍生工具推荐结果发送给所述目标开发工具。
114.本实施例将已配置开发环境对象链路输入目标衍生工具推荐模型进行衍生工具概率预测,从而提高了开发环境配置数据配置的准确性和效率;而且采用的是与所述目标开发工具及所述目标开发类型对应的衍生工具推荐模型进行衍生工具概率预测,有利于提高衍生工具推荐结果的准确性,提高代码审核的准确性。
115.对于s171,将所述目标开发工具及所述目标开发类型,在衍生工具推荐模型库中进行第二关联数据查找,将查找到的第二关联数据在衍生工具推荐模型库中对应的衍生工具推荐模型,作为目标衍生工具推荐模型。
116.衍生工具推荐模型库包括:第二关联数据和衍生工具推荐模型。第二关联数据包括:开发工具标识和开发类型。
117.衍生工具推荐模型是多分类模型。
118.对于s172,将所述已配置开发环境对象链路输入所述目标衍生工具推荐模型进行衍生工具概率预测,将预测得到的数据作为衍生工具概率预测结果。
119.对于s173,从所述衍生工具概率预测结果中找出大于预设的第二概率阈值的衍生工具概率,将找出的各个衍生工具概率中进行倒序排序,得到衍生工具概率集,从衍生工具概率集的开头开始,获取预设的第二数量的衍生工具概率作为目标衍生工具概率集;将目标衍生工具概率集对应的各个衍生工具作为衍生工具推荐结果。
120.对于s174,通过与所述目标开发工具的通信连接,将所述开发环境对象推荐结果和所述衍生工具推荐结果发送给所述目标开发工具。
121.在一个实施例中,上述根据所述代码开发请求携带的目标开发工具标识及目标开发环境配置数据,从预设的代码审核决策树库中获取代码审核决策树,作为推荐代码审核决策树之前,还包括:
122.s21:获取与待训练开发工具标识及待训练开发环境配置数据对应的多个训练样本;
123.s22:采用机器学习的方法,根据各个所述训练样本生成代码审核决策树,作为待存储的代码审核决策树;
124.s23:根据所述待训练开发工具标识、所述待训练开发环境配置数据和所述待存储
的代码审核决策树更新所述代码审核决策树库。
125.本实施例通过机器学习的方法,根据各个所述训练样本生成代码审核决策树,为基于机器学习得到的用于决策代码中的审查对象适用的通用审核规则及私有审核规则的决策树进行代码审核提供了基础。
126.对于s21,可以从数据库中获取与待训练开发工具标识及待训练开发环境配置数据对应的多个训练样本,也可以从第三方应用中获取与待训练开发工具标识及待训练开发环境配置数据对应的多个训练样本,还可以是用户输入的获取与待训练开发工具标识及待训练开发环境配置数据对应的多个训练样本。
127.待训练开发工具标识,是待训练代码审核决策树的开发工具标识。
128.待训练开发环境配置数据,是与待训练开发工具标识对应的开发环境配置数据。
129.对于s22,采用机器学习的方法,根据各个所述训练样本生成用于决策代码中的审查对象适用的通用审核规则及私有审核规则的决策树,将生成的决策树作为与所述待训练开发工具标识及所述待训练开发环境配置数据对应的代码审核决策树,将该代码审核决策树作为待存储的代码审核决策树。
130.采用机器学习的方法,根据各个所述训练样本生成包括通用审核规则及私有审核规则的决策树的方法在此不做赘述。
131.待存储的代码审核决策树,是需要存储到代码审核决策树库中的代码审核决策树。
132.对于s23,将所述待训练开发工具标识、所述待训练开发环境配置数据和所述待存储的代码审核决策树,对所述代码审核决策树库进行替换更新。
133.在一个实施例中,上述根据所述决策树配置数据生成目标代码审核决策树,包括:
134.s41:当所述决策树配置数据的配置结果是选择推荐时,将所述推荐代码审核决策树作为所述目标代码审核决策树;
135.s42:当所述决策树配置数据的配置结果是修改推荐时,根据所述推荐代码审核决策树和所述决策树配置数据中的修改结果生成所述目标代码审核决策树;
136.s43:当所述决策树配置数据的配置结果是直接重选时,将所述决策树配置数据中的决策树标识,从所述代码审核决策树库中获取所述代码审核决策树,作为所述目标代码审核决策树;
137.s44:当所述决策树配置数据的配置结果是重选后修改时,将所述决策树配置数据中的决策树标识,从所述代码审核决策树库中获取所述代码审核决策树,得到待修改的代码审核决策树,根据所述待修改的代码审核决策树和所述决策树配置数据中的修改结果生成所述目标代码审核决策树。
138.本实施例根据决策树配置数据的不同配置结果,生成个性化的目标代码审核决策树,满足了开发人员的个性化代码审核需求。
139.对于s41,当所述决策树配置数据的配置结果是选择推荐时,意味着开发人员直接选择了推荐的代码审核决策树,因此,直接将所述推荐代码审核决策树作为所述目标代码审核决策树。
140.对于s42,当所述决策树配置数据的配置结果是修改推荐时,意味着开发人员选择了推荐的代码审核决策树并且有部分修改,因此根据所述决策树配置数据中的修改结果,
对所述推荐代码审核决策树进行修改,将修改后的所述推荐代码审核决策树作为所述目标代码审核决策树。
141.对于s43,当所述决策树配置数据的配置结果是直接重选时,意味着开发人员没有选择推荐的代码审核决策树,并且想要从代码审核决策树库中重新选择代码审核决策树直接作为目标代码审核决策树,因此,将所述决策树配置数据中的决策树标识,从所述代码审核决策树库中获取所述代码审核决策树,将获取的代码审核决策树作为所述目标代码审核决策树。
142.对于s44,当所述决策树配置数据的配置结果是重选后修改时,意味着开发人员没有选择推荐的代码审核决策树,并且想要从代码审核决策树库中重新选择代码审核决策树修改后作为目标代码审核决策树,因此,将所述决策树配置数据中的决策树标识,从所述代码审核决策树库中获取所述代码审核决策树,将获取的代码审核决策树作为待修改的代码审核决策树,根据所述决策树配置数据中的修改结果,对所述待修改的代码审核决策树进行修改,将修改后的所述待修改的代码审核决策树作为所述目标代码审核决策树。
143.在一个实施例中,上述采用预设的代码审核规则库和所述目标代码审核决策树,对所述待审核的代码包进行审核,得到代码审核结果,包括:
144.s61:采用所述目标代码审核决策树,对所述待审核的代码包分别进行待处理的审核对象识别;
145.s62:采用所述目标代码审核决策树,对每个所述待处理的审核对象进行目标审核规则标识确定;
146.s63:从所述代码审核规则库中找出与指定审核规则标识对应的代码审核规则,得到目标代码审核规则,其中,所述指定审核规则标识是任一个所述目标审核规则标识;
147.s64:采用所述目标代码审核规则,对与所述指定审核规则标识对应的所述待处理的审核对象进行审核,得到单审核对象审核结果;
148.s65:根据各个所述单审核对象审核结果生成所述代码审核结果。
149.本实施例实现了采用所述目标代码审核决策树,对所述待审核的代码包分别进行待处理的审核对象识别和审核规则标识确定,然后采用确定的审核规则标识从代码审核规则库中找出代码审核规则对所述待审核的代码包中的审核对象进行审核,符合了通用的及私有的审核要求,提高了审核的全面性,适用于业务逻辑复杂的代码审核。
150.对于s61,采用所述目标代码审核决策树,对所述待审核的代码包进行审核对象识别,将识别的得到每个审核对象作为一个待处理的审核对象。
151.对于s62,采用所述目标代码审核决策树,对每个所述待处理的审核对象进行审核规则标识确定,将确定的每个审核规则标识作为一个目标审核规则标识。
152.对于s63,从所述代码审核规则库中找出与指定审核规则标识对应的代码审核规则,将找出的代码审核规则作为目标代码审核规则。
153.对于s64,采用所述目标代码审核规则,对与所述指定审核规则标识对应的所述待处理的审核对象进行审核,将审核得到的结果作为与所述指定审核规则标识对应的单审核对象审核结果。
154.对于s65,采用预设的结果组合方法,对各个所述单审核对象审核结果进行组合,将组合得到的数据作为所述代码审核结果。
155.在一个实施例中,上述采用预设的代码审核规则库和所述目标代码审核决策树,对所述待审核的代码包进行审核,得到代码审核结果之后,还包括:
156.s71:根据所述代码审核结果,对所述待审核的代码包进行标注及提示。
157.本实施例实现了根据所述代码审核结果对所述待审核的代码包进行标注及提示,从而有利于开发人员快速的定位问题。
158.对于s71,在目标开发工具展示所述待审核的代码包的界面中,采用预设的标注规范和提示规范,根据所述代码包审核结果,对所述目标开发工具展示的所述待审核的代码包进行标注及提示。
159.其中,根据所述代码审核结果的审核对象位置,将每个审核对象按标注规范进行凸显标注,然后根据所述代码审核结果的审核对象不通过原因及代码审核规则,对每个审核对象按提示规范进行浮层提示。
160.标注规范包括:采用预设背景色高亮显示、红色下划线和改变字体颜色中的一种或多种。
161.提示规范包括:字体颜色。
162.参照图2,本技术还提出了一种机器学习的代码审核装置,所述装置包括:
163.请求获取模块100,用于获取目标开发工具发送的代码开发请求;
164.推荐代码审核决策树确定模块200,用于根据所述代码开发请求携带的目标开发工具标识及目标开发环境配置数据,从预设的代码审核决策树库中获取代码审核决策树,作为推荐代码审核决策树,其中,所述代码审核决策树是基于机器学习得到的决策树,用于决策代码中的审查对象适用的通用审核规则及私有审核规则;
165.决策树配置数据获取模块300,用于根据所述推荐代码审核决策树获取用户输入的决策树配置数据;
166.目标代码审核决策树生成模块400,用于根据所述决策树配置数据生成目标代码审核决策树;
167.待审核的代码包获取模块500,用于获取所述目标开发工具发送的待审核的代码包;
168.代码审核结果确定模块600,用于采用预设的代码审核规则库和所述目标代码审核决策树,对所述待审核的代码包进行审核,得到代码审核结果。
169.本实施例通过基于机器学习得到的用于决策代码中的审查对象适用的通用审核规则及私有审核规则的决策树进行代码审核,符合了通用的及私有的审核要求,提高了审核的全面性,适用于业务逻辑复杂的代码审核;基于目标开发工具及目标开发环境配置数据进行代码审核决策树推荐,有利于提高确定的代码审核决策树的准确性,提高代码审核的准确性。
170.参照图3,本技术实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于储存机器学习的代码审核方法等数据。该计算机设备的网络接口
用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种机器学习的代码审核方法。所述机器学习的代码审核方法,包括:获取目标开发工具发送的代码开发请求;根据所述代码开发请求携带的目标开发工具标识及目标开发环境配置数据,从预设的代码审核决策树库中获取代码审核决策树,作为推荐代码审核决策树,其中,所述代码审核决策树是基于机器学习得到的决策树,用于决策代码中的审查对象适用的通用审核规则及私有审核规则;根据所述推荐代码审核决策树获取用户输入的决策树配置数据;根据所述决策树配置数据生成目标代码审核决策树;获取所述目标开发工具发送的待审核的代码包;采用预设的代码审核规则库和所述目标代码审核决策树,对所述待审核的代码包进行审核,得到代码审核结果。
171.本实施例通过基于机器学习得到的用于决策代码中的审查对象适用的通用审核规则及私有审核规则的决策树进行代码审核,符合了通用的及私有的审核要求,提高了审核的全面性,适用于业务逻辑复杂的代码审核;基于目标开发工具及目标开发环境配置数据进行代码审核决策树推荐,有利于提高确定的代码审核决策树的准确性,提高代码审核的准确性。
172.本技术一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种机器学习的代码审核方法,包括步骤:获取目标开发工具发送的代码开发请求;根据所述代码开发请求携带的目标开发工具标识及目标开发环境配置数据,从预设的代码审核决策树库中获取代码审核决策树,作为推荐代码审核决策树,其中,所述代码审核决策树是基于机器学习得到的决策树,用于决策代码中的审查对象适用的通用审核规则及私有审核规则;根据所述推荐代码审核决策树获取用户输入的决策树配置数据;根据所述决策树配置数据生成目标代码审核决策树;获取所述目标开发工具发送的待审核的代码包;采用预设的代码审核规则库和所述目标代码审核决策树,对所述待审核的代码包进行审核,得到代码审核结果。
173.上述执行的机器学习的代码审核方法,通过基于机器学习得到的用于决策代码中的审查对象适用的通用审核规则及私有审核规则的决策树进行代码审核,符合了通用的及私有的审核要求,提高了审核的全面性,适用于业务逻辑复杂的代码审核;基于目标开发工具及目标开发环境配置数据进行代码审核决策树推荐,有利于提高确定的代码审核决策树的准确性,提高代码审核的准确性。
174.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
175.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排
他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
176.以上所述仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献