[发明专利]代码检测方法、装置以及设备、存储介质有效
| 申请号: | 201910906421.3 | 申请日: | 2019-09-24 |
| 公开(公告)号: | CN110765003B | 公开(公告)日: | 2023-06-02 |
| 发明(设计)人: | 林静 | 申请(专利权)人: | 贝壳技术有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/30 |
| 代理公司: | 北京思源智汇知识产权代理有限公司 11657 | 代理人: | 毛丽琴 |
| 地址: | 300457 天津市滨海新区经济技术开发*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 代码 检测 方法 装置 以及 设备 存储 介质 | ||
本公开提供了一种代码检测方法、装置以及电子设备、存储介质,涉及计算机技术领域,其中的方法包括:对待检测的源代码进行分析,获得源代码中的函数名称信息;基于函数名称信息判断源代码中是否包含有规定的事件命名空间函数名称;如果否,则确定源代码中存在第一代码缺陷,并生成与此第一代码缺陷相对应的第一缺陷报告信息;本公开的方法、装置以及电子设备、存储介质,能够实现源代码的自动化检测,可以清楚地确定当前函数的触发场景并进行检测,使得代码风格对外统一,有效地预防代码中存在的风险和问题;提高源代码的质量,提高系统运行的安全性,降低后续的维护成本;提高对于源代码的检测效率,减少对于源代码的人工审核的工作量。
技术领域
本公开涉及计算机技术领域,尤其涉及一种代码检测方法、装置以及电子设备、存储介质。
背景技术
软件源代码是指编写的最原始程序的代码,例如js代码等。在软件源代码的编写过程中,由于团队开发人员众多,并且能力和背景不同,使得源代码风格难以统一,可读性差,不易后期的维护;例如,在软件源代码的编写过程中,js代码等中的事件函数随意编写会出现代码可读性差,维护成本高等问题。因此,需要一种用于对于源代码中的事件函数等进行检测的代码检测技术方案。
发明内容
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种代码检测方法、装置以及电子设备、存储介质。
根据本公开实施例的一个方面,提供一种代码检测方法,包括:对待检测的源代码进行分析,获得所述源代码中的函数名称信息;基于所述函数名称信息判断所述源代码中是否包含有规定的事件命名空间函数名称;如果不包含有规定的所述事件命名空间函数名称,则确定所述源代码中存在第一代码缺陷,并生成与此第一代码缺陷相对应的第一缺陷报告信息。
可选地,判断所述源代码中的所述事件命名空间函数是否符合预设的事件命名空间函数使用规则,如果不符合预设的所述事件命名空间函数使用规则,则确定所述源代码中存在第二代码缺陷,并生成与此第二代码缺陷相对应的第二缺陷报告信息;其中,所述事件命名空间函数使用规则包括如下的至少一个规则:在构造函数中初始化所述事件命名空间函数,生成与所述事件命名空间函数相对应的实例对象,和将所述实例对象与所述事件命名空间函数的全局对象进行绑定。
可选地,获得所述源代码中的全部事件函数并确定与所述全部事件函数相对应的函数调用关系;基于所述函数调用关系判断是否有事件函数未在事件命名空间函数中定义和实现;如果有事件函数未在事件命名空间函数中定义和实现,则确定所述源代码中存在第三代码缺陷,并生成与此第三代码缺陷相对应的第三缺陷报告信息。
可选地,所述规定的事件命名空间函数名称包括:自定义事件命名空间函数、DOM操作事件命名空间函数和渲染事件命名空间函数中至少一个函数的名称;所述基于所述函数调用关系判断是否有事件函数未在事件命名空间函数中定义和实现包括:基于所述函数调用关系判断是否有自定义事件函数未在所述自定义事件命名空间函数中定义和实现、是否有DOM操作事件函数未在所述DOM操作事件命名空间函数中定义和实现、或者是否有渲染事件函数未在所述渲染事件命名空间函数中定义和实现。
可选地,获得所述源代码中的render方法中的全部DOM操作事件函数;判断所述全部DOM操作事件函数是否都在所述DOM操作事件命名空间函数中定义和实现;如果未都在所述DOM操作事件命名空间函数中定义和实现,则确定所述源代码中存在所述第三代码缺陷,并生成与此第三代码缺陷相对应的缺陷。
可选地,基于与预设的代码分解标准对所述源代码进行语法分解,获得多个分段代码;基于与预设的代码检测标准对所述分段代码进行代码检测,基于缺陷报告信息判断所述源代码是否存在第四代码缺陷,如果存在第四代码缺陷,则基于此第四代码缺陷生成第四缺陷报告信息;其中,所述代码检测标准包括:语法检测标准、格式检测标准、安全检测标准中的至少一个。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于贝壳技术有限公司,未经贝壳技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910906421.3/2.html,转载请声明来源钻瓜专利网。





