本发明实施例涉及软件,具体涉及一种代码处理方法、装置、电子设备及可读存储介质。
背景技术:
1、在软件开发等相关领域中,随着软件开发项目规模的扩大和迭代频率的增加,研发效能的评估和提升成为了一项关键的任务。
2、现有的软件研发效能度量方法往往依赖于基于文本匹配的方式进行函数重命名的识别,然后确定出研发效能的评估结果。
3、然而,上述的评估方式容易受到代码的注释、变量等信息影响,其复杂程度较高、准确度较低。
技术实现思路
1、鉴于上述问题,本发明实施例提供了一种代码处理方法、装置、电子设备及可读存储介质,用于解决现有技术中存在的研发效能的评估方式准确度较低等问题。
2、根据本发明实施例的一个方面,提供了一种代码处理方法,所述方法包括:
3、获取源文件的第一语法树和目标文件的第二语法树,所述目标文件为根据所述源文件进行代码变更之后的文件;
4、根据所述第一语法树和所述第二语法树,确定代码变更前的第一函数信息和代码变更后的第二函数信息;
5、根据所述第一函数信息和所述第二函数信息,确定所述目标文件对应的效能评估结果。
6、根据本发明实施例的另一方面,提供了一种代码处理装置,包括:
7、获取模块,用于获取源文件的第一语法树和目标文件的第二语法树,所述目标文件为根据所述源文件进行代码变更之后的文件;
8、第一确定模块,用于根据所述第一语法树和所述第二语法树,确定代码变更前的第一函数信息和代码变更后的第二函数信息;
9、第二确定模块,用于根据所述第一函数信息和所述第二函数信息,确定所述目标文件对应的效能评估结果。
10、根据本发明实施例的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
11、所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述的代码处理方法的操作。
12、根据本发明实施例的还一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令在电子设备/代码处理装置上运行时,使得电子设备/代码处理装置执行上述的代码处理方法的操作。
13、根据本发明实施例的再一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的代码处理方法的操作。
14、本发明实施例通过代码处理方法、装置、电子设备及可读存储介质,基于源文件和代码变更之后文件各自的语法树,可以更加准确的识别两个代码文件上代码的结构和变化,以实现对代码在结构上变更的精准把控。之后基于语法树,可以提取出代码文件中函数的关键信息,以避免传统方法中对注释、变量等因素的依赖,提高了识别的准确性和鲁棒性,因此最后得到的效能评估结果更准确,从而能够客观地反映开发人员的实际贡献度。
15、上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
1.一种代码处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一函数信息和所述第二函数信息,确定所述目标文件对应的效能评估结果,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一函数信息和所述第二函数信息,确定新增函数信息、删除函数信息、重命名函数信息、以及更新函数信息中的至少一个,包括:
4.根据权利要求3所述的方法,其特征在于,所述预设对比算法包括如下至少一项:文本相似度算法、代码特征提取和机器学习算法、函数签名分析算法、控制流图算法、以及数据流图算法。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述根据所述新增函数信息、所述删除函数信息、所述重命名函数信息、以及所述更新函数信息中的至少一个,确定所述目标文件对应的效能评估结果,包括:
6.根据权利要求1-4任一项所述的方法,其特征在于,所述获取源文件的第一语法树和目标文件的第二语法树,包括:
7.根据权利要求6所述的方法,其特征在于,所述获取所述源文件和所述目标文件,包括:
8.一种代码处理装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令在电子设备/代码处理装置上运行时,使得电子设备/代码处理装置执行如权利要求1-7任意一项所述的代码处理方法的操作。
