一种web端代码检测系统转让专利

申请号 : CN202110010224.0

文献号 : CN112328506B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱金星张静雅郭俊强祝文东

申请人 : 北京云真信科技有限公司

摘要 :

本发明涉及一种web端代码检测系统,包括第一代码检测器,第二代码检测器、第一配置表、第二配置表、第三配置表、第四配置表、处理器和存储有计算机程序的存储器,所述第二代码检测器包括从所述M个代码检测工具解析获得的N个功能函数,M、N为大于等于2的正整数,N大于等于M,每一功能函数对应一个唯一的功能函数id,所述第一配置表的字段包括文档类型和代码检测工具id,所述第二配置表的字段包括关键词和功能id,所述第三配置表的字段包括代码检测工具id、功能id和功能函数id,所述第四配置表的字段包括功能id和默认功能函数id。本发明提高了web端代码检测的实时性和检测效率。

权利要求 :

1.一种web端代码检测系统,其特征在于,包括第一代码检测器,第二代码检测器、第一配置表、第二配置表、第三配置表、第四配置表、处理器和存储有计算机程序的存储器,所述第二代码检测器包括从M个代码检测工具解析获得的N个功能函数,M、N为大于等于2的正整数,N大于等于M,每一功能函数对应一个唯一的功能函数id,所述第一配置表的字段包括文档类型和代码检测工具id,所述第二配置表的字段包括关键词和功能id,所述第三配置表的字段包括代码检测工具id、功能id和功能函数id,所述第四配置表的字段包括功能id和默认功能函数id,当所述计算机程序被处理器执行时,实现以下步骤:

步骤S1、实时检测待测代码文档,当符合第一检测条件时,执行步骤S2,当符合第二检测条件时,执行步骤S3;

所述第一检测条件为待测代码文档代码发生变化,所述第二检测条件为超过预设时间所述待测代码文档代码未发生变化、所述待测代码文档执行保存操作、待测代码文档执行关闭操作中的一种或多种;

步骤S2、将当前代码文档输入所述第一代码检测器进行代码检测,若检测到错误代码,则进行报错;

步骤S3、基于当前代码文档以及当前代码文档链接的代码文档、第一配置表、第二配置表、第三配置表和第四配置表确定目标功能函数id,根据所述目标功能函数id调用目标功能函数对所述当前代码文档以及当前代码文档链接的代码文档进行代码检测,若检测到错误代码,则进行报错;

所述步骤S3包括:

步骤S31、解析所述当前代码文档,确定所述当前代码文档的文档类型,根据所述当前代码文档的文档类型检索所述第一配置表,将所述当前代码文档的文档类型对应的代码检测工具id确定为第一代码检测工具id;

步骤S32、解析所述当前代码文档以及当前代码文档链接的代码文档,并从中提取第一关键词,根据所述第一关键词检索所述第二配置表,将所述第一关键词对应的功能id确定为第一功能id;

步骤S33、根据所述第一代码检测工具id和第一功能id检索所述第三配置表,若能够获取到所述第一代码检测工具id和第一功能id对应的功能函数id,则将该功能函数id确定为目标功能函数id,否则执行步骤S34;

步骤S34、根据所述第一功能id检索所述第四配置表,将所述第一功能id对应的默认功能函数id确定为目标功能函数id。

2.根据权利要求1所述的系统,其特征在于,所述当前代码文档为所述待测代码文档中当前对象对应的方法中get()到set()之间的代码段。

3.根据权利要求1所述的系统,其特征在于,当所述计算机程序被处理器执行时,还实现以下步骤:步骤S10、获取M个代码检测工具,并分别进行解析,得到每一代码检测工具对应的功能函数;

步骤S11、从M个代码检测工具对应的所有功能函数中获取N个功能函数;

步骤S13、为每一代码检测工具设置对应的代码检测工具id,为每一功能函数设置对应的功能函数id,为N个功能函数所能实现的功能设置对应的功能id;

步骤S14、基于每一功能函数设置对应的功能函数id,为N个功能函数所能实现的功能设置对应的功能id以及文档类型与代码检测工具的对应关系建立所述第一配置表、第二配置表、第三配置表、第四配置表;

步骤S15、将所述M个代码检测工具对应的N个功能函数打包生成所述第二代码检测器对应的文件包,并存储到NPM中,并配置对应的下载地址。

4.根据权利要求3所述的系统,其特征在于,所述步骤S3中,所述根据所述目标功能函数id调用目标功能函数时,还包括:步骤S301、判断缓存中时是否存在所述目标功能函数,若存在,则直接调用所述缓存中的目标功能函数,否则,执行步骤S302;

步骤S302、根据所述下载地址下载并解析所述第二代码检测器对的文件包。

5.根据权利要求3所述的系统,其特征在于,当需要在所述第二代码检测器中新增m个代码检测工具对应的n个功能函数,m和n均为正整数,m大于n,还实现以下步骤:步骤S100、基于所述新增m个代码检测工具对应的n个功能函数,更新所述第二代码检测器对的文件包、第一配置表、第二配置表、第三配置表和第四配置表。

6.根据权利要求1‑5中任意一项所述的系统,其特征在于,所述代码检测工具包括html lint、style lint、es lint。

7.根据权利要求1‑5中任意一项所述的系统,其特征在于,所述文档类型包括html、gs和css。

说明书 :

一种web端代码检测系统

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种web端代码检测系统。

背景技术

[0002] 在web端开发阶段,通常需要调用多个代码检测工具来对web端代码进行检测,在检测到代码编写错误的时候进行报错,供开发人员参考。现有技术中通常需要下载每一所
需调用的代码检测工具,需要占据较大的存储空间,且使用检测工具进行检测时,需要运行
该代码检测工具中所有的功能函数。但是,很多情况下,检测过程中只需要某一代码检测工
具中的某一个或多个功能函数,运行代码检测工具的所有功能函数会大大降低检测效率,
实时性差。因此,如何提高web端代码检测的实时性和检测效率成为亟待解决的技术问题。

发明内容

[0003] 本发明目的在于,提供一种web端代码检测系统,提高了web端代码检测的实时性和检测效率。
[0004] 本发明提供了一种web端代码检测系统,包括第一代码检测器,第二代码检测器、第一配置表、第二配置表、第三配置表、第四配置表、处理器和存储有计算机程序的存储器,
所述第二代码检测器包括从所述M个代码检测工具解析获得的N个功能函数,M、N为大于等
于2的正整数,N大于等于M,每一功能函数对应一个唯一的功能函数id,所述第一配置表的
字段包括文档类型和代码检测工具id,所述第二配置表的字段包括关键词和功能id,所述
第三配置表的字段包括代码检测工具id、功能id和功能函数id,所述第四配置表的字段包
括功能id和默认功能函数id,当所述计算机程序被处理器执行时,实现以下步骤:
[0005] 步骤S1、实时检测待测代码文档,当符合第一检测条件时,执行步骤S2,当符合第二检测条件时,执行步骤S3;
[0006] 步骤S2、将当前代码文档输入所述第一代码检测器进行代码检测,若检测到错误代码,则进行报错;
[0007] 步骤S3、基于当前代码文档以及当前代码文档链接的代码文档、第一配置表、第二配置表、第三配置表和第四配置表确定目标功能函数id,根据所述目标功能函数id调用目
标功能函数对所述当前代码文档以及当前代码文档链接的代码文档进行代码检测,若检测
到错误代码,则进行报错。
[0008] 本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种web端代码检测系统可达到相当的技术进步性及实用性,并具有产业上的广泛
利用价值,其至少具有下列优点:
[0009] 本发明所述系统将多个代码检测工具的功能函数融合为一个第二代码检测器,只需一个指令即可下载第二代码检测器中所有的功能函数,无需逐一下载多个代码检测工
具。此外,本发明根据具体检测需求调用对应的功能函数,无需运行代码检测工具中所有的
功能函数,提高了代码检测的检测效率和实时性。
[0010] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够
更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。

附图说明

[0011] 图1为本发明实施例提供的web端代码检测系统示意图。

具体实施方式

[0012] 为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种web端代码检测系统的具体实施方式及其功
效,详细说明如后。
[0013] 本发明实施例提供了一种web端代码检测系统,包括第一代码检测器,第二代码检测器、第一配置表、第二配置表、第三配置表、第四配置表、处理器和存储有计算机程序的存
储器。所述第二代码检测器包括从所述M个代码检测工具解析获得的N个功能函数,M、N为大
于等于2的正整数,N大于等于M,每一功能函数对应一个唯一的功能函数id。所述第一配置
表的字段包括文档类型和代码检测工具id,用于存储文档类型和代码检测工具id的映射关
系,需要说明的是,第一配置表中的代码检测id指的是文档类型优选的代码检测工具对应
的id,其中,所述文档类型包括html、gs和css等。所述第二配置表的字段包括关键词和功能
id,用于存储关键词和功能id的映射关系,需要说明的是,第二配置表中的功能id指的是具
备关键词的代码文档所需检测的功能对应的id。所述第三配置表的字段包括代码检测工具
id、功能id和功能函数id,用于存储代码检测工具id、功能id组合与代码检测工具id、功能
id的映射关系,需要说明的是,第三配置表中的功能函数id指的是采用代码检测工具id实
现功能id对应功能时,优选的功能函数id。所述第四配置表的字段包括功能id和默认功能
函数id,用于存储功能id和默认功能函数id的映射关系,当代码检测工具id和功能id组合
没有对应的优选功能函数时,则需要通过第四配置表获取默认的功能函数id来确定目标函
数。
[0014] 当所述计算机程序被处理器执行时,实现以下步骤:
[0015] 步骤S1、实时检测待测代码文档,当符合第一检测条件时,执行步骤S2,当符合第二检测条件时,执行步骤S3;
[0016] 步骤S2、将当前代码文档输入所述第一代码检测器进行代码检测,若检测到错误代码,则进行报错;
[0017] 其中,所述当前代码文档为所述待测代码文档中当前对象对应的方法中get()到set()之间的代码段
[0018] 步骤S3、基于当前代码文档以及当前代码文档链接的代码文档、第一配置表、第二配置表、第三配置表和第四配置表确定目标功能函数id,根据所述目标功能函数id调用目
标功能函数对所述当前代码文档以及当前代码文档链接的代码文档进行代码检测,若检测
到错误代码,则进行报错。
[0019] 本发明实施例所述系统将多个代码检测工具的功能函数融合为一个第二代码检测器,只需一个指令即可下载第二代码检测器中所有的功能函数,无需逐一下载多个代码
检测工具。此外,本发明根据具体检测需求调用对应的功能函数,无需运行代码检测工具中
所有的功能函数,提高了代码检测的检测效率和实时性。
[0020] 需要说明的是,根据本发明,系统可以物理实现为一个服务器,也可以实现为包括多个服务器的服务器群组。本领域技术人员知晓,服务器的型号、规格等参数并不影响本发
明的保护范围。本发明一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流
程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实
施。此外,各步骤的顺序仅是为了引用方便的目的予以编排,并不意味着步骤执行的必然顺
序,即可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中
的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
[0021] 作为一种示例,所述第一检测条件为待测代码文档代码发生变化,即对待测代码文档有任何新的输入、修改和删除时,均可实时触发第一代码检测器进行代码检测。其中,
第一代码检测器时用于对代码输入进行基础的检测,用于检测代码实时输入的明显错误,
仅检测当前代码文档即可,无需监测链接的文档。第一代码检测器采用现有的代码基础检
测技术即可,在此不再展开描述。第二代码检测工具用于检测第一代码工具不易识别的代
码错误,不仅可以对当前代码文档检测,还要全面检测当前代码文档所链接的文档,需要调
用对应的功能函数来检测,如果过于频繁地调用功能函数会浪费计算资源,且降低代码检
测的速度,因此,可以将所述第二检测条件为超过预设时间所述待测代码文档代码未发生
变化、所述待测代码文档执行保存操作、待测代码文档执行关闭操作中的一种或多种,这样
可以实现在完成一段代码编辑时进行代码检测。通过设置第一代码检测器可以快速发现基
础的代码问题,为第二代码检测器过滤掉一部分检测任务,通过第一代码检测器和第二代
码检测器的配合设置,能够减少计算资源,提高代码检测的效率。
[0022] 作为一种实施例,所述步骤S3中,所述基于当前代码文档以及当前代码文档链接的代码文档、第一配置表、第二配置表、第三配置表和第四配置表确定目标功能函数id,包
括:
[0023] 步骤S31、解析所述当前代码文档,确定所述当前代码文档的文档类型,根据所述当前代码文档的文档类型检索所述第一配置表,将所述当前代码文档的文档类型对应的代
码检测工具id确定为第一代码检测工具id;
[0024] 其中,通过步骤S31可以确定当前代码文档理论上优选的代码检测工具的id。
[0025] 步骤S32、解析所述当前代码文档以及当前代码文档链接的代码文档,并从中提取第一关键词,根据所述第一关键词检索所述第二配置表,将所述第一关键词对应的功能id
确定为第一功能id;
[0026] 其中,通过步骤S32可以确定当前代码文档所需要检测的功能所对应的id;
[0027] 步骤S33、根据所述第一代码检测工具id和第一功能id检索所述第三配置表,若能够获取到所述第一代码检测工具id和第一功能id对应的功能函数id,则将该功能函数id确
定为目标功能函数id,否则执行步骤S34;
[0028] 其中,通过步骤S33可以确定是否存在最优的目标功能函数,若有,直接获取目标功能函数id,并调取对应的目标功能函数进行代码检测即可,若没有,采用执行步骤S34获
取第一功能id对应的默认功能函数id,调取对应的功能函数进行代码检测。
[0029] 步骤S34、根据所述第一功能id检索所述第四配置表,将所述第一功能id对应的默认功能函数id确定为目标功能函数id。
[0030] 作为一种实施例,当所述计算机程序被处理器执行时,还实现以下步骤:
[0031] 步骤S10、获取M个代码检测工具,并分别进行解析,得到每一代码检测工具对应的功能函数;
[0032] 例如,M可取值为3,对应的三个代码检测工具为html lint、style lint、es lint,默认代码检测工具可以设置为es lint。可以理解是的,以上三个代码检测工具只是举例,
还可为其他的代码检测工具。
[0033] 步骤S11、从M个代码检测工具对应的所有功能函数中获取N个功能函数;
[0034] 可以理解的是,可以将每一代码检测工具对应的所有的功能函数融合在一起,也可以根据具有的检测需求从M个代码检测工具对应的所有功能函数中获取多个功能函数进
行融合。
[0035] 步骤S13、为每一代码检测工具设置对应的代码检测工具id,为每一功能函数设置对应的功能函数id,为N个功能函数所能实现的功能设置对应的功能id;
[0036] 步骤S14、基于每一功能函数设置对应的功能函数id,为N个功能函数所能实现的功能设置对应的功能id以及文档类型与代码检测工具的对应关系建立所述第一配置表、第
二配置表、第三配置表、第四配置表;
[0037] 步骤S15、将所述M个代码检测工具对应的N个功能函数打包生成所述第二代码检测器对应的文件包,并存储到包管理器(Node Package Manager,简称NPM)中,并配置对应
的下载地址。
[0038] 作为一种实施例,所述步骤S3中,所述根据所述目标功能函数id调用目标功能函数时,还可包括:
[0039] 步骤S301、判断缓存中时是否存在所述目标功能函数,若存在,则直接调用所述缓存中的目标功能函数,否则,执行步骤S302;
[0040] 步骤S302、根据所述下载地址下载并解析所述第二代码检测器对的文件包。
[0041] 通过步骤S301‑步骤S302的缓存机制,优先在缓存中获取目标功能函数,进一步提高了代码检测的效率。此外,通过步骤S302可知,本发明实施例所述系统基于一条指令即可
下载所需要的所有代码工具对应的功能函数,无需逐一下载所以需要的代码检测工具。
[0042] 此外,还可在所述系统中加入新的代码检测工具,例如,当需要在所述第二代码检测器中新增m个代码检测工具对应的n个功能函数,m和n均为正整数,m大于n,还实现以下步
骤:
[0043] 步骤S100、基于所述新增m个代码检测工具对应的n个功能函数,更新所述第二代码检测器对的文件包、第一配置表、第二配置表、第三配置表和第四配置表。可以理解的是,
在新增代码检测工具时,需要对待新增的代码检测工具对应的参数,执行步骤S11‑步骤S15
类似的操作,然后对应更新第二代码检测器对的文件包、第一配置表、第二配置表、第三配
置表和第四配置表即可,在此不再重复描述。
[0044] 以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人
员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰
为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质
对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。