一种代码变更的影响分析方法、装置以及设备制造方法及图纸

技术编号:37213543 阅读:41 留言:0更新日期:2023-04-20 23:02
本说明书实施例公开了一种代码变更的影响分析方法、装置以及设备。通过生成所述源代码和变更代码的差异代码;将所述差异代码映射为差异中间码;确定所述差异中间码在所述程序所关联的系统中的传播路径;确定所述传播路径在数据访问层所关联的字段,将所述字段确定为代码变更的影响字段,从而实现在代码迭代时准确的分析出对于系统的影响字段,实现精准的影响分析。响分析。响分析。

【技术实现步骤摘要】
一种代码变更的影响分析方法、装置以及设备


[0001]本说明书涉及互联网
,尤其涉及一种代码变更的影响分析方法、装置以及设备。

技术介绍

[0002]在面向服务的系统架构中,系统中经常会对某个部分模块进行优化或者变更,这在实践中表现为对该模块进行代码上的迭代。在这个过程中,毫无疑问代码的迭代将会对系统中的部分产生一些影响,靠人工经验进行影响面分析效率低而且很难准确。
[0003]基于此,需要一种更精准的代码变更的影响分析方案。

技术实现思路

[0004]本说明书实施例提供一种代码变更的影响分析方法、装置、设备以及存储介质,用以解决如下技术问题:需要一种更精准的代码变更的影响分析方案。
[0005]为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
[0006]在第一方面,本说明书实施例提供一种代码变更的影响分析方法,应用于对应于同一程序的源代码和变更代码中,所述方法包括:生成所述源代码和变更代码的差异代码;将所述差异代码映射为差异中间码;确定所述差异中间码在所述程序所关联的系统中的传播路径;确定所述传播路径在数据访问层所关联的字段,将所述字段确定为代码变更的影响字段。
[0007]在第二方面,本说明书实施例提供一种代码变更的影响分析装置,应用于对应于同一程序的源代码和变更代码中,所述装置包括:差异代码生成模块,生成所述源代码和变更代码的差异代码;映射模块,将所述差异代码映射为差异中间码;路径确定模块,确定所述差异中间码在所述程序所关联的系统中的传播路径;字段确定模块,确定所述传播路径在数据访问层所关联的字段,将所述字段确定为代码变更的影响字段。
[0008]在第三方面,本说明书一个或多个实施例提供一种电子设备,包括:
[0009]至少一个处理器;以及,
[0010]与所述至少一个处理器通信连接的存储器;其中,
[0011]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的方法。
[0012]在第四方面,本说明书实施例提供一种非易失性计算机存储介质存储有计算机可执行指令,当计算机读取存储介质中的计算机可执行指令后,该指令使得一个或多个处理器执行如第一方面所述的方法。
[0013]本说明书一个或多个实施例采用的上述至少一个技术方案能够达到以下有益效果:通过生成所述源代码和变更代码的差异代码;将所述差异代码映射为差异中间码;确定所述差异中间码在所述程序所关联的系统中的传播路径;确定所述传播路径在数据访问层所关联的字段,将所述字段确定为代码变更的影响字段,从而实现在代码迭代时准确的分
析出对于系统的影响字段,实现精准的影响分析。
附图说明
[0014]为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0015]图1为本说明书实施例提供的一种代码变更的影响分析方法的流程示意图;
[0016]图2为本说明书实施例所提供的一种数据关系图谱的示意图;
[0017]图3为本说明书实施例所提供的的一种整体分析的流程逻辑框图;
[0018]图4为本说明书实施例提供的一种代码变更的影响分析装置的结构示意图;
[0019]图5为本说明书实施例提供的一种电子设备的结构示意图。
具体实施方式
[0020]本说明书实施例提供一种代码变更的影响分析方法、装置、设备以及存储介质。
[0021]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0022]在第一方面,如图1所示,图1为本说明书实施例提供的一种代码变更的影响分析方法的流程示意图,应用于对应于同一程序的源代码和变更代码中,所述方法可以包括以下步骤:
[0023]S101:生成所述源代码和变更代码的差异代码。
[0024]所述源代码是指所述程序在变更之前正常运行时所采用的代码,所述变更代码是指变更之后所采用的代码。
[0025]以企业级的服务系统为例,该服务系统中可以包括多个子系统,多个子系统之间能够相互协作,以完成多种业务。例如,以支付宝的服务系统为例,支付宝服务系统中可以包含有数量众多的子系统及其相应的功能模块,通过子系统之间的相互调用能够实现各项业务,例如缴费业务、外卖业务、购物业务、各类查询业务等等。所述程序可以是各类子系统或者各子系统中的功能模块或者所采用的程序。
[0026]在实际的代码迭代中,变更代码和源代码的差异可以通过相应的指令来直接获取。例如,在一些系统中,可以采用diff<源代码><变更代码>来直接比较源代码和变更代码之间的差异。并通过差异代码的形式来表示。差异代码的表现形式也可以有多种,例如,可以诸如正常格式(normal diff)、上下文格式(context diff)或者合并格式(unified diff)等等。
[0027]举例而言,假设源代码包含了5行代码(a,a,a,a,a),变更代码同样是包含了5行代码(a,a,a,b,a),其中二者的不同是将源代码中的第4行a替换成为了b,此时,通过diff<源代码><变更代码>可能得到正常格式的差异代码的形式为包含了变动位置、变动形式和变
动内容的正常格式,例如,其形式可以是“4c4,a,b”,即通过符号“c”表征了变动形式为代码替换,“4c4,a,b”表征变动位置为双方的第4行,a和b表征了变动内容为从a替换为b。此外,变动形式还可以包括诸如表征“增加”(例如,采用a来表示)或者“删除”(采用d来表示)等。
[0028]上下文格式则可以同样是包含了变动位置、变动形式和变动内容,但是在差异代码中可以分别将源代码和变更代码的变更进行同时显示。而如果源代码和变更代码的相似度很高,则还可以使用合并格式,即在差异代码中将源代码和变更代码的上下文代码合并在一起显示,将变动部分(变动位置、变动形式和变动内容)使用特定字符进行标识等等。
[0029]S103,将所述差异代码映射为差异中间码。
[0030]中间码又可以称为中间表示码(Intermediate Representation,IR),IR码是一种于高级程序语言与低级机器语言中间的一种语言形态。其形式可以是由基于图、基于线性代码或者基于图与线性代码混合的。...

【技术保护点】

【技术特征摘要】
1.一种代码变更的影响分析方法,应用于对应于同一程序的源代码和变更代码中,所述方法包括:生成所述源代码和变更代码的差异代码;将所述差异代码映射为差异中间码;确定所述差异中间码在所述程序所关联的系统中的传播路径;确定所述传播路径在数据访问层所关联的字段,将所述字段确定为代码变更的影响字段。2.如权利要求1所述的方法,其中,将所述差异代码映射为差异中间码,包括:确定所述差异代码中表征删除的第一代码,和,确定所述差异代码中表征增加的第二代码;将所述第一代码和第二代码进行分组;将所述分组后的第一代码和分组后的第二代码映射为差异中间码。3.如权利要求2所述的方法,其中,将所述分组后的第一代码和分组后的第二代码映射为差异中间码,包括:根据所述分组后的第一代码和分组后的第二代码的行号,将所分组后的第一代码和分组后的第二代码映射为差异中间码。4.如权利要求1所述的方法,其中,确定所述差异中间码在所述程序所关联的系统中的传播路径,包括:提取所述差异中间码中的有效资源,其中,所述有效资源包含所述差异中间码中的字段、函数或者行代码;确定所述有效资源在所述程序所关联的系统中的传播路径。5.如权利要求4所述的方法,其中,确定所述差异中间码在所述程序所关联的系统中的传播路径,包括:获取所述系统中所包含的字段数据,构建所述系统中的字段数据的关系图谱;确定所述有效资源在所述关系图谱中所对应的节点;根据所述节点在所述关系图谱中的连接...

【专利技术属性】
技术研发人员:吴云广王丹周刚刘江潮邓俊
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

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

1