本技术涉及计算机,尤其涉及一种线上代码删除方法、装置、电子设备及存储介质。
背景技术:
1、目前,在对软件或微服务进行开发时,由于不断更新功能等原因,导致已经上线的代码中存在很多无效代码,从而使得系统很难维护。因此,为了便于维护线上代码,需要高效且安全地删除线上代码中的无效代码。
2、现有技术中,一般通过aop(aspect oriented programming,面向切面编程)打印方法调用日志进行统计,或者通过java agent技术统计。然而,无论使用上述哪种方法均需要在线上代码中添加部分代码,这就使得添加的代码与系统代码有耦合,且损害系统性能。
技术实现思路
1、本技术提供了一种线上代码删除方法、装置、电子设备及存储介质,以解决现有技术中在删除线上代码的无效代码时均需要在线上代码中添加部分代码,这就使得添加的代码与系统代码有耦合,且损害系统性能的技术问题。
2、第一方面,本技术提供了一种线上代码删除方法,所述线上代码包括多个代码段,每个所述代码段对应一种应用方法,所述方法包括:
3、在所述线上代码被调用的过程中,获取被调用的线上应用方法;
4、确定所述线上代码包括的全部应用方法;
5、根据所述线上应用方法,确定所述线上代码包括的全部应用方法中未被调用的目标应用方法;
6、基于所述目标应用方法对应的目标代码段,对所述线上代码进行删除。
7、作为一个可能的实现方式,所述获取被调用的线上应用方法,包括:
8、利用预设的采集工具采集针对所述线上代码的调用进程信息;其中,所述调用进程信息包括被调用的至少一个应用方法,以及每个所述应用方法对应的调用次数;
9、通过预设的消息队列获取所述采集工具发送的所述调用进程信息;
10、将所述调用进程信息中调用次数大于预设阈值的应用方法,确定为被调用的线上应用方法。
11、作为一个可能的实现方式,所述线上代码被部署在不同区域的服务器,且不同区域的所述服务器通过流量镜像功能将流量均镜像到目标服务器;
12、所述利用预设的采集工具采集所述线上代码的调用进程信息,包括:
13、利用所述采集工具从所述目标服务器中采集所述线上代码被不同服务器调用的调用进程信息。
14、作为一个可能的实现方式,所述获取被调用的线上应用方法,包括:
15、获取预设时间段内被调用的第一线上应用方法;
16、从预设的数据库中获取历史时间段内所述线上代码被调用的第二线上应用方法;
17、将所述第一线上应用方法和所述第二线上应用方法确定为所述线上代码被调用的线上应用方法。
18、作为一个可能的实现方式,所述确定所述线上代码包括的全部应用方法,包括:
19、确定所述线上代码对应源代码所在的开源库;
20、通过所述开源库获取所述线上代码对应源代码包括的全部应用方法。
21、作为一个可能的实现方式,所述根据所述线上应用方法,确定所述线上代码包括的全部应用方法中未被调用的目标应用方法,包括:
22、将所述全部应用方法与所述线上应用方法作差,得到方法差集;
23、将所述方法差集包括的应用方法,确定为所述线上代码包括的全部应用方法中未被调用的目标应用方法。
24、作为一个可能的实现方式,所述基于所述目标应用方法对应的目标代码段,对所述线上代码进行删除,包括:
25、通过可视化界面输出所述目标应用方法以及所述目标代码段;
26、在接收到任一目标应用方法的删除指令的情况下,将所述删除指令对应目标应用方法的目标代码段删除。
27、第二方面,本技术实施例提供一种线上代码删除装置,所述线上代码包括多个代码段,每个所述代码段对应一种应用方法,所述装置包括:
28、获取模块,用于在所述线上代码被调用的过程中,获取被调用的线上应用方法;
29、第一确定模块,用于确定所述线上代码包括的全部应用方法;
30、第二确定模块,用于根据所述线上应用方法,确定所述线上代码包括的全部应用方法中未被调用的目标应用方法;
31、删除模块,用于基于所述目标应用方法对应的目标代码段,对所述线上代码进行删除。
32、作为一个可能的实现方式,所述获取模块,包括:
33、采集子模块,用于利用预设的采集工具采集针对所述线上代码的调用进程信息;其中,所述调用进程信息包括被调用的至少一个应用方法,以及每个所述应用方法对应的调用次数;
34、获取子模块,用于通过预设的消息队列获取所述采集工具发送的所述调用进程信息;
35、确定子模块,用于将所述调用进程信息中调用次数大于预设阈值的应用方法,确定为被调用的线上应用方法。
36、作为一个可能的实现方式,所述线上代码被部署在不同区域的服务器,且不同区域的所述服务器通过流量镜像功能将流量均镜像到目标服务器;所述采集子模块,具体用于:
37、利用所述采集工具从所述目标服务器中采集所述线上代码被不同服务器调用的调用进程信息。
38、作为一个可能的实现方式,所述获取模块,具体用于:
39、获取预设时间段内被调用的第一线上应用方法;
40、从预设的数据库中获取历史时间段内所述线上代码被调用的第二线上应用方法;
41、将所述第一线上应用方法和所述第二线上应用方法确定为所述线上代码被调用的线上应用方法。
42、作为一个可能的实现方式,所述第一确定模块,具体用于:
43、确定所述线上代码对应源代码所在的开源库;
44、通过所述开源库获取所述线上代码对应源代码包括的全部应用方法。
45、作为一个可能的实现方式,所述第二确定模块,具体用于:
46、将所述全部应用方法与所述线上应用方法作差,得到方法差集;
47、将所述方法差集包括的应用方法,确定为所述线上代码包括的全部应用方法中未被调用的目标应用方法。
48、作为一个可能的实现方式,所述删除模块,具体用于:
49、通过可视化界面输出所述目标应用方法以及所述目标代码段;
50、在接收到任一目标应用方法的删除指令的情况下,将所述删除指令对应目标应用方法的目标代码段删除。
51、第三方面,本技术实施例提供一种电子设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的线上代码删除程序,以实现第一方面中任一项所述的线上代码删除方法。
52、第四方面,本技术实施例提供一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面中任一项所述的线上代码删除方法。
53、本技术实施例提供的技术方案,通过在线上代码被调用的过程中,获取被调用的线上应用方法,确定线上代码包括的全部应用方法,根据线上应用方法,确定线上代码包括的全部应用方法中未被调用的目标应用方法,基于目标应用方法对应的目标代码段,对线上代码进行删除。这一技术方案,通过获取线上代码在线上所实现的应用方法中,获取需要被调用的线上应用方法以及线上代码对应源代码所包括的全部应用方法,通过确定两者之间的差集,从而确定线上代码中未被调用的应用方法,并将该应用方法作为对应的代码段作为可删除的无效代码段,实现了简单高效地确定线上代码中的无效代码,且无需对线上代码进行修改,保证了线上代码的可维护性,提升开发运维效率。
1.一种线上代码删除方法,其特征在于,所述线上代码包括多个代码段,每个所述代码段对应一种应用方法,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述获取被调用的线上应用方法,包括:
3.根据权利要求2所述的方法,其特征在于,所述线上代码被部署在不同区域的服务器,且不同区域的所述服务器通过流量镜像功能将流量均镜像到目标服务器;
4.根据权利要求1所述的方法,其特征在于,所述获取被调用的线上应用方法,包括:
5.根据权利要求1所述的方法,其特征在于,所述确定所述线上代码包括的全部应用方法,包括:
6.根据权利要求1所述的方法,其特征在于,所述根据所述线上应用方法,确定所述线上代码包括的全部应用方法中未被调用的目标应用方法,包括:
7.根据权利要求1所述的方法,其特征在于,所述基于所述目标应用方法对应的目标代码段,对所述线上代码进行删除,包括:
8.一种线上代码删除装置,其特征在于,所述线上代码包括多个代码段,每个所述代码段对应一种应用方法,所述装置包括:
9.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的线上代码删除程序,以实现权利要求1~7中任一项所述的线上代码删除方法。
10.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1~7中任一项所述的线上代码删除方法。