代码检查方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:35545630 阅读:17 留言:0更新日期:2022-11-12 15:23
本申请涉及一种代码检查方法、装置、计算机设备和存储介质。所述方法包括:当监听到代码文件变更时,获取变更的代码文件作为待检查代码文件;根据待检查代码文件的语言类型,确定待检查代码文件对应的解析脚本和检查规则;通过对应的解析脚本对待检查代码文件进行解析,获得待检查代码文件对应的解析树;根据对应的解析树和检查规则进行匹配检查,获得待检查代码文件的检查结果。采用本方法能够实现代码实时检查,提高代码检查和修复效率。提高代码检查和修复效率。提高代码检查和修复效率。

【技术实现步骤摘要】
代码检查方法、装置、计算机设备和存储介质


[0001]本申请涉及计算机
,特别是涉及一种代码检查方法、装置、计算机设备和存储介质。

技术介绍

[0002]代码检查是软件开发过程中的重要工作之一,传统技术中,通常先对源码进行编译,再通过代码检查工具(如coverity、infer)基于编译后的代码进行分析检查,编译过程需要编译器(如GCC、Clang)参与,对于中大型项目,编译代码的时间长达分钟至小时级别,影响代码检查效率。上述传统技术方案只适用于持续集成的自动化测试阶段,如果在测试阶段暴露出代码问题,需要通过测试人员反馈到开发侧,再由开发人员对有问题的代码进行修复,进而影响代码修复效率。

技术实现思路

[0003]基于此,有必要针对上述技术问题,提供一种能够提高代码检查和修复效率的代码检查方法、装置、计算机设备和存储介质。
[0004]一种代码检查方法,所述方法包括:
[0005]当监听到代码文件变更时,获取变更的代码文件作为待检查代码文件;
[0006]根据所述待检查代码文件的语言类型,确定所述待检查代码文件对应的解析脚本和检查规则;
[0007]通过对应的所述解析脚本对所述待检查代码文件进行解析,获得所述待检查代码文件对应的解析树;
[0008]根据对应的所述解析树和所述检查规则进行匹配检查,获得所述待检查代码文件的检查结果。
[0009]一种代码检查装置,所述装置包括:
[0010]获取模块,用于当监听到代码文件变更时,获取变更的代码文件作为待检查代码文件;
[0011]确定模块,用于根据所述待检查代码文件的语言类型,确定所述待检查代码文件对应的解析脚本和检查规则;
[0012]解析模块,用于通过对应的所述解析脚本对所述待检查代码文件进行解析,获得所述待检查代码文件对应的解析树;
[0013]检查模块,用于根据对应的所述解析树和所述检查规则进行匹配检查,获得所述待检查代码文件的检查结果。
[0014]一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0015]当监听到代码文件变更时,获取变更的代码文件作为待检查代码文件;
[0016]根据所述待检查代码文件的语言类型,确定所述待检查代码文件对应的解析脚本
和检查规则;
[0017]通过对应的所述解析脚本对所述待检查代码文件进行解析,获得所述待检查代码文件对应的解析树;
[0018]根据对应的所述解析树和所述检查规则进行匹配检查,获得所述待检查代码文件的检查结果。
[0019]一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0020]当监听到代码文件变更时,获取变更的代码文件作为待检查代码文件;
[0021]根据所述待检查代码文件的语言类型,确定所述待检查代码文件对应的解析脚本和检查规则;
[0022]通过对应的所述解析脚本对所述待检查代码文件进行解析,获得所述待检查代码文件对应的解析树;
[0023]根据对应的所述解析树和所述检查规则进行匹配检查,获得所述待检查代码文件的检查结果。
[0024]上述代码检查方法、装置、计算机设备和存储介质,当监听到代码文件变更时,获取变更的代码文件作为待检查代码文件;根据待检查代码文件的语言类型,确定待检查代码文件对应的解析脚本和检查规则;通过对应的解析脚本对待检查代码文件进行解析,获得待检查代码文件对应的解析树;根据对应的解析树和检查规则进行匹配检查,获得待检查代码文件的检查结果。据此,无需编译过程,可在代码开发阶段实现代码实时检查,提高代码检查效率,帮助开发人员在编译前及时发现代码问题,缩短开发人员修复问题代码的流程,提高代码修复效率,降低修复问题代码的沟通成本。
附图说明
[0025]图1为一个实施例中代码检查方法的应用环境图;
[0026]图2为一个实施例中代码检查方法的流程示意图;
[0027]图3为一个实施例中对错误等级的错误信息进行弹窗提示的示意图;
[0028]图4为一个实施例中对警告等级的错误信息进行弹窗提示的示意图;
[0029]图5为一个实施例中对错误信息进行展示的示意图;
[0030]图6为一个实施例中代码检查方法的流程示意图;
[0031]图7为一个实施例中代码检查装置的结构框图;
[0032]图8为一个实施例中计算机设备的内部结构图;
[0033]图9为一个实施例中计算机设备的内部结构图。
具体实施方式
[0034]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0035]本申请提供的代码检查方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。用户可以通过终端102访问软件开发平台,服务器104可以
是该平台所在的服务器。代码检查方法可以应用于安装有软件开发平台的终端,也可以应用于该平台所在的服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
[0036]在一个实施例中,如图2所示,提供了一种代码检查方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤S202至步骤S208。
[0037]S202,当监听到代码文件变更时,获取变更的代码文件作为待检查代码文件。
[0038]开发人员在开发阶段编写代码时,终端可以通过应用程序编程接口(API)实时监听工程目录的文件变更,当监听到代码文件变更时,获取变更的代码文件作为待检查代码文件,开始进行代码检查,据此实现在开发人员编写代码阶段对代码的实时检查,帮助开发人员在编写了问题代码后可以及时发现并快速修复问题代码。可以理解的是,此时待检查代码文件是未经过编译的代码文件,在进行代码检查前无需对源代码进行编译,缩短代码检查和修复的流程。
[0039]S204,根据待检查代码文件的语言类型,确定待检查代码文件对应的解析脚本和检查规则。
[0040]待检查代码文件的语言类型是指开发人员编写该待检查代码文件所采用的语言类型,可以包括但不限于C++语言、Objective

C语言和java语言。
[0041]在一个实施例中,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码检查方法,其特征在于,所述方法包括:当监听到代码文件变更时,获取变更的代码文件作为待检查代码文件;根据所述待检查代码文件的语言类型,确定所述待检查代码文件对应的解析脚本和检查规则;通过对应的所述解析脚本对所述待检查代码文件进行解析,获得所述待检查代码文件对应的解析树;根据对应的所述解析树和所述检查规则进行匹配检查,获得所述待检查代码文件的检查结果。2.根据权利要求1所述的方法,其特征在于,还包括:获取所述待检查代码文件的后缀名,根据所述待检查代码文件的后缀名确定所述待检查代码文件的语言类型。3.根据权利要求1所述的方法,其特征在于,还包括:预先配置各种语言类型对应的解析脚本和检查规则,并建立语言类型与解析脚本之间的第一映射关系、以及语言类型与检查规则之间的第二映射关系。4.根据权利要求3所述的方法,其特征在于,根据所述待检查代码文件的语言类型,确定所述待检查代码文件对应的解析脚本和检查规则,包括:根据所述待检查代码文件的语言类型、以及所述第一映射关系,确定所述待检查代码文件对应的解析脚本;根据所述待检查代码文件的语言类型、以及所述第二映射关系,确定所述待检查代码文件对应的检查规则。5.根据权利要求1所述的方法,其特征在于,通过对应的所述解析脚本对所述待检查代码文件进行解析,获得所述待检查代码文件对应的解析树,包括:通过对应的所述解析脚本提取所述待检查代码文件的语法信息;基于所述待检查代码文件的语法信息,获得所述...

【专利技术属性】
技术研发人员:黄长富
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1