一种废弃代码查找方法、装置、电子设备及存储介质制造方法及图纸

技术编号:36777932 阅读:11 留言:0更新日期:2023-03-08 22:06
本申请实施例提供一种废弃代码查找方法、装置、电子设备及存储介质,涉及计算机软件技术领域。该方法包括获取项目源代码中的待分析代码并存储至待分析文件列表;对每个待分析文件构建第一抽象语法树;基于所述项目源代码获取增量待分析文件列表;对每个增量待分析文件构建第二抽象语法树;分析第一抽象语法树获得废弃代码列表;基于废弃代码列表和所述第二抽象语法树分析增量待分析文件是否存在废弃代码使用,通过对源代码进行抽象语法树解析,可快速查找到增量代码中正在使用的废弃代码,从而提高排查效率,实现自动排查,无需人工干预,准确度高,解决了现有人工排查方法检查耗费大量时间和人工成本,且容易存在漏排查和误排查的问题。的问题。的问题。

【技术实现步骤摘要】
一种废弃代码查找方法、装置、电子设备及存储介质


[0001]本申请涉及计算机软件
,具体而言,涉及一种废弃代码查找方法、装置、电子设备及存储介质。

技术介绍

[0002]在软件开发过程中,由于软件版本的更新,对应项目中一些旧的方法或类在更新时,为了不影响之前的业务流程和业务逻辑,实现平滑过渡,会在之前旧的方法或类上标注@Deprecated,标注该方法或类为废弃代码。但是,未来随着JDK升级、jar包升级后,这些方法或类可能会出现错误,是不推荐使用的。因为在使用这些相关的类或者方法时是有风险的,可能会出现错误,而不能实现相应的效果,但是为了软件平滑过渡,依旧可以使用,编译器也不会报错,只是会有相应的提示。
[0003]通常情况下为了避免开发者使用废弃代码,会向开发人员宣导编码规范并提高代码开发人员自身的代码能力和对业务场景判断,此外还会通过人工进行代码评审解决该类问题,但是人工检查耗费大量时间和人工成本,且容易存在漏排查和误排查的问题。

技术实现思路

[0004]本申请实施例的目的在于提供一种废弃代码查找方法、装置、电子设备及存储介质,通过对源代码进行抽象语法树解析,可快速查找到增量代码中正在使用的废弃代码,从而提高排查效率,实现自动排查,无需人工干预,准确度高,解决了现有人工排查方法检查耗费大量时间和人工成本,且容易存在漏排查和误排查的问题。
[0005]本申请实施例提供了一种废弃代码查找方法,所述方法包括:
[0006]获取项目源代码中的待分析代码并存储至待分析文件列表;
[0007]对每个待分析文件构建第一抽象语法树;
[0008]基于所述项目源代码获取增量待分析文件列表;
[0009]对每个增量待分析文件构建第二抽象语法树;
[0010]分析所述第一抽象语法树获得废弃代码列表;
[0011]基于所述废弃代码列表和所述第二抽象语法树分析所述增量待分析文件是否存在废弃代码使用。
[0012]在上述实现过程中,通过对源代码进行抽象语法树解析,获取废弃代码列表,对增量代码进行抽象语法树解析,可基于废弃代码列表快速查找到增量代码中正在使用的废弃代码,从而提高排查效率,实现自动排查,无需人工干预,准确度高,解决了现有人工排查方法检查耗费大量时间和人工成本,且容易存在漏排查和误排查的问题。
[0013]进一步地,所述分析所述第一抽象语法树是否存在废弃代码,包括:
[0014]遍历每个待分析文件的第一抽象语法树,通过Xpath判断是否存在废弃的类或接口;
[0015]若存在废弃的类或接口,则将废弃的类或接口对应的废弃代码添加到废弃代码列
表。
[0016]在上述实现过程中,对待分析文件的第一抽象语法树进行遍历分析,可将所有废弃类或接口对应的废弃代码添加到废弃代码列表,为后续增量代码的废弃代码判断提供依据。
[0017]进一步地,所述遍历每个待分析文件的第一抽象语法树,通过Xpath判断是否存在废弃的类或接口,包括:
[0018]若不存在废弃类,则查找所述类对应的方法是否存在废弃方法;
[0019]若存在,则将所述废弃方法的参数信息添加到废弃代码列表。
[0020]在上述实现过程中,类下面的方法也可能存在废弃方法,也需要检测,从而提高检测结果的全面性和准确性。
[0021]进一步地,所述分析所述第二抽象语法树是否存在废弃代码,包括:
[0022]遍历每个增量待分析文件的第二抽象语法树,通过Xpath提取被引用类;
[0023]判断所述被引用类是否存在于所述废弃代码列表;
[0024]若存在,则所述被引用类对应的增量待分析中存在废弃代码引用。
[0025]在上述实现过程中,提取增量代码中的被引用类,可基于废弃代码列表进行判断,即判断被引用类是否存在于废弃代码列表中,从而确定该被引用类所在的增量代码中存在引用废弃代码的情况。
[0026]进一步地,所述判断所述被引用类是否存在于废弃代码列表,包括:
[0027]若不存在,则判断所述被引用类对应的被调用方法是否存在于所述废弃代码列表;
[0028]若存在,则所述被调用方法对应的增量待分析文件中存在废弃代码引用。
[0029]在上述实现过程中,还需要判断被调用方法是否存在于废弃代码列表,若是,则该增量待分析文件中存在调用废弃代码的情况。
[0030]本申请实施例还提供一种在使用的废弃代码查找装置,所述装置包括:
[0031]第一数据获取模块,用于获取项目源代码中的待分析代码并存储至待分析文件列表;
[0032]第一抽象语法树构建模块,用于对每个待分析文件构建第一抽象语法树;
[0033]第二数据获取模块,用于基于所述项目源代码获取增量待分析文件列表;
[0034]第二抽象语法树构建模块,用于对每个增量待分析文件构建第二抽象语法树;
[0035]废弃代码列表获取模块,用于分析所述第一抽象语法树获得废弃代码列表;
[0036]分析处理模块,用于基于所述废弃代码列表和所述第二抽象语法树分析所述增量待分析文件是否存在废弃代码使用。
[0037]在上述实现过程中,通过对源代码进行抽象语法树解析,获取废弃代码列表,对增量代码进行抽象语法树解析,可基于废弃代码列表快速查找到正在使用的废弃代码,从而提高排查效率,实现自动排查,无需人工干预,准确度高,解决了现有人工排查方法检查耗费大量时间和人工成本,且容易存在漏排查和误排查的问题。
[0038]进一步地,所述废弃代码列表获取模块包括:
[0039]类判断模块,用于遍历每个待分析文件的第一抽象语法树,通过Xpath判断是否存在废弃的类或接口;
[0040]存储模块,用于若存在废弃的类或接口,则将废弃的类或接口对应的废弃代码添加到废弃代码列表。
[0041]在上述实现过程中,对待分析文件的第一抽象语法树进行遍历分析,可将所有废弃类或接口对应的废弃代码添加到废弃代码列表,为后续增量代码的废弃代码判断提供依据。
[0042]进一步地,所述类判断模块,包括:
[0043]方法判断模块,用于若不存在废弃类,则查找所述类对应的方法是否存在废弃方法;
[0044]参数信息存储模块,用于若存在废弃方法,则将所述废弃方法的参数信息添加到废弃代码列表。
[0045]在上述实现过程中,类下面的方法也可能存在废弃方法,也需要检测,从而提高检测结果的全面性和准确性。
[0046]本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行计算机程序以使所述电子设备执行上述中任一项所述的废弃代码查找方法。
[0047]本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的废弃代码查找方法。
附图说本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种废弃代码查找方法,其特征在于,所述方法包括:获取项目源代码中的待分析代码并存储至待分析文件列表;对每个待分析文件构建第一抽象语法树;基于所述项目源代码获取增量待分析文件列表;对每个增量待分析文件构建第二抽象语法树;分析所述第一抽象语法树,获得废弃代码列表;基于所述废弃代码列表和所述第二抽象语法树分析所述增量待分析文件是否存在废弃代码使用。2.根据权利要求1所述的废弃代码查找方法,其特征在于,所述分析所述第一抽象语法树获得废弃代码列表,包括:遍历每个待分析文件的第一抽象语法树,通过Xpath判断是否存在废弃的类或接口;若存在废弃的类或接口,则将废弃的类或接口对应的废弃代码添加到所述废弃代码列表。3.根据权利要求2所述的废弃代码查找方法,其特征在于,所述遍历每个待分析文件的第一抽象语法树,通过Xpath判断是否存在废弃的类或接口,包括:若不存在废弃类,则查找所述类对应的方法是否存在废弃方法;若存在,则将所述废弃方法的参数信息添加到废弃代码列表。4.根据权利要求1所述的废弃代码查找方法,其特征在于,所述基于所述废弃代码列表和所述第二抽象语法树分析所述增量待分析文件是否存在废弃代码使用,包括:遍历每个增量待分析文件的第二抽象语法树,通过Xpath提取被引用类;判断所述被引用类是否存在于所述废弃代码列表;若存在,则所述被引用类对应的增量待分析中存在废弃代码引用。5.根据权利要求4所述的废弃代码查找方法,其特征在于,所述判断所述被引用类是否存在于所述废弃代码列表,包括:若不存在,则判断所述被引用类对应的被调用方法是否存在于所述废弃代码列表;若存在,则所述被调用方法对应的增量待分析文...

【专利技术属性】
技术研发人员:吴艳兵
申请(专利权)人:平安银行股份有限公司
类型:发明
国别省市:

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

1