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

技术编号:23983163 阅读:21 留言:0更新日期:2020-04-29 12:16
本申请涉及一种代码规范方法、装置、计算机设备和存储介质,计算机设备获取待规范代码文件,并根据预设的规范规则对该待规范代码文件进行分析,以获取待规范代码文件中缺陷代码的修改命令,然后计算机设备根据缺陷代码的修改命令,对缺陷代码进行规范化处理。该方法中,利用计算机极快的处理速度,替代手工的人力消耗,使得代码规范化更容易落实到实践项目中,不会耗费人力成本。且可以精准、快速地将待规范代码文件与该规范规则进行对比,提高了代码规范化的效率和准确率。

Code specification method, device, computer equipment and storage medium

【技术实现步骤摘要】
代码规范方法、装置、计算机设备和存储介质
本申请涉及计算机
,特别是涉及一种代码规范方法、装置、计算机设备和存储介质。
技术介绍
程序的开发离不开代码,而规范化的代码有助于提高程序的正确性、可读性和可维护性。目前,对代码进行规范化方法主要包括:先通过一些检测工具对代码的规范性进行检测,以检测出不符合规范的代码,例如,常见的检测工具可以是诸如“CheckStyle”、“Lint”等工具。之后,基于这些检测工具检测到的不符合规范的代码,开发人员进行手动修正,最终得到规范化的代码。但是,现有的对代码进行规范化方法存在效率和准确率低下的问题。
技术实现思路
基于此,有必要针对上述技术问题,提供一种代码规范方法、装置、计算机设备和存储介质。第一方面,本申请实施例提供一种代码规范方法,该方法包括:获取待规范代码文件;根据预设的规范规则对待规范代码文件进行分析,获取待规范代码文件中缺陷代码的修改命令;规范规则用于表征所有代码的规范性规则;根据缺陷代码的修改命令,对缺陷代码进行规范化处理。在其中一个实施例中,上述根据预设的规范规则对待规范代码文件进行分析,获取待规范代码文件中缺陷代码的修改命令,包括:对待规范代码文件进行语法解析,生成抽象语法树;根据规范规则,分析抽象语法树的各个节点,得到节点规范性分析结果;根据节点规范性分析结果,确定缺陷代码的修改命令。在其中一个实施例中,上述根据规范规则,分析抽象语法树的各个节点,得到节点规范性分析结果,包括:根据规范规则,以预设顺序遍历分析抽象语法树的各个节点,得到抽象语法树中每个节点的节点规范性分析结果;预设顺序至少包括从抽象语法树的根节点到叶节点。在其中一个实施例中,上述根据规范规则,以预设顺序遍历分析抽象语法树的节点,得到抽象语法树每个节点的节点规范性分析结果,包括:从规范规则中,确定抽象语法树的当前节点的类型对应的目标规范规则;分析当前节点的属性信息与目标规范规则的对比结果;根据对比结果,确定当前节点的节点规范性分析结果。在其中一个实施例中,上述规范规则包括抽象语法树的各节点出现的次数、各节点代表的代码文本的长度、各节点的上一个节点的期望条件和下一个节点的期望条件中的至少一个。在其中一个实施例中,上述缺陷代码的修改命令中包括缺陷代码的位置信息和修正信息;则上述根据缺陷代码的修改命令,对缺陷代码进行规范化处理,包括:根据修正信息对位置信息处的缺陷代码进行修正。在其中一个实施例中,在上述获取待规范代码文件中缺陷代码的修改命令之后,该方法包括:将缺陷代码的修改命令存储至待修改队列中;则上述根据缺陷代码的修改命令,对缺陷代码进行规范化处理,包括:若待规范代码文件中所有的缺陷代码的修改命令全部存储至待修改队列中,运行待修改队列中的修改命令,对所有的缺陷代码进行规范化处理。第二方面,本申请实施例提供一种代码规范装置,该装置包括:获取模块,用于获取待规范代码文件;分析模块,用于根据预设的规范规则对待规范代码文件进行分析,获取待规范代码文件中缺陷代码的修改命令;规范规则用于表征所有代码的规范性规则;处理模块,用于根据缺陷代码的修改命令,对缺陷代码进行规范化处理。第三方面,本申请实施例提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述第一方面实施例提供的任一项方法的步骤。第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面实施例提供的任一项方法的步骤。本申请实施例提供的一种代码规范方法、装置、计算机设备和存储介质,计算机设备获取待规范代码文件,并根据预设的规范规则对该待规范代码文件进行分析,以获取待规范代码文件中缺陷代码的修改命令,然后计算机设备根据缺陷代码的修改命令,对缺陷代码进行规范化处理。该方法中,利用计算机极快的处理速度,替代手工的人力消耗,从对待规范代码文件中缺陷代码的查找到对缺陷代码的修正,均为计算机设备自动处理,使得代码规范化更容易落实到实践项目中,不会耗费人力成本。且,计算机设备是根据预设的规范规则分析待规范代码文件,该规范规则中包括了所有代码的规范性规则这样,可以精准、快速地将待规范代码文件与该规范规则进行对比,提高了代码规范化的效率和准确率。附图说明图1为一个实施例提供的一种代码规范方法的应用环境图;图2为一个实施例提供的一种代码规范方法的流程示意图;图3为一个实施例提供的一种代码规范检测工具启动示意图;图4为一个实施例提供的一种代码规范方法的流程示意图;图5为一个实施例提供的一种设定规范规则的类图;图6为一个实施例提供的一种遍历抽象语法书节点示意图;图7为一个实施例提供的一种代码规范方法的流程示意图;图7a为一个实施例提供的一种规范化处理结果示意图;图7b为一个实施例提供的一种规范化处理结果示意图;图7c为一个实施例提供的一种规范化处理结果示意图;图7d为一个实施例提供的一种规范化处理结果示意图;图8为一个实施例提供的一种代码规范装置的结构框图;图9为一个实施例提供的一种代码规范装置的结构框图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。在应用程序开发过程中,随着开发团队规模的增大,代码规范就尤为显得重要。为了保证代码的规范性,实际应用中,会通过一些检测工具对代码的规范性进行检测,例如,业内的“CheckStyle”、“Lint”等工具,可以帮助开发团队检阅、复查代码的规范性。但是,以上现有的检测工具都只是发现问题,并没有解决问题。也就是说通过这些检测工具定位出不符合规范的代码后,还是需要开发人员自行进行修正,使代码规范化。当面对代码量已经达到百万行级别的开发项目,这些检测工具一次全量的代码检测可以发现数千个问题。这种情况下,如果仍然依靠开发人员来完成这些问题的修复,就需要耗费大量的人力和时间,且随着项目不断开发壮大,就不断有新的问题会出现,每个版本迭代后都需要耗费资源来处理代码规范的问题,严重浪费了人力资源。另外,对于每次检测工具发现的数千个问题,开发人员手动进行修复时,修复结果的准确性更加难以保证。基于此,本申请实施例提供一种代码规范方法、装置、计算机设备和存储介质,能够解决以上技术问题。本申请实施例提供一种代码规范方法提供一种自动规范化代码的工具,可以自动检测代码规范问题,且自动修复发现的问题。图1为本申请提供一种代码规范方法的应用环境,如图1所示,该应用环境中,计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非本文档来自技高网...

【技术保护点】
1.一种代码规范方法,其特征在于,所述方法包括:/n获取待规范代码文件;/n根据预设的规范规则对所述待规范代码文件进行分析,获取所述待规范代码文件中缺陷代码的修改命令;所述规范规则用于表征所有代码的规范性规则;/n根据所述缺陷代码的修改命令,对所述缺陷代码进行规范化处理。/n

【技术特征摘要】
1.一种代码规范方法,其特征在于,所述方法包括:
获取待规范代码文件;
根据预设的规范规则对所述待规范代码文件进行分析,获取所述待规范代码文件中缺陷代码的修改命令;所述规范规则用于表征所有代码的规范性规则;
根据所述缺陷代码的修改命令,对所述缺陷代码进行规范化处理。


2.根据权利要求1所述的方法,其特征在于,所述根据预设的规范规则对所述待规范代码文件进行分析,获取所述待规范代码文件中缺陷代码的修改命令,包括:
对所述待规范代码文件进行语法解析,生成抽象语法树;
根据所述规范规则,分析所述抽象语法树的各个节点,得到节点规范性分析结果;
根据所述节点规范性分析结果,确定所述缺陷代码的修改命令。


3.根据权利要求2所述的方法,其特征在于,所述根据所述规范规则,分析所述抽象语法树的各个节点,得到节点规范性分析结果,包括:
根据所述规范规则,以预设顺序遍历分析所述抽象语法树的各个节点,得到所述抽象语法树中每个节点的节点规范性分析结果;所述预设顺序至少包括从所述抽象语法树的根节点到叶节点。


4.根据权利要求3所述的方法,其特征在于,所述根据所述规范规则,以预设顺序遍历分析所述抽象语法树的节点,得到所述抽象语法树每个节点的节点规范性分析结果,包括:
从所述规范规则中,确定所述抽象语法树的当前节点的类型对应的目标规范规则;
分析所述当前节点的属性信息与所述目标规范规则的对比结果;
根据所述对比结果,确定所述当前节点的节点规范性分析结果。


5.根据权利要求2-4任一项所述的方法,其特征在于,所述规范规则包括所述抽象语法树的各节点出...

【专利技术属性】
技术研发人员:张宇
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:广东;44

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

1