CN114610372A - 评审文件的处理方法及装置、存储介质、处理器、终端 - Google Patents

评审文件的处理方法及装置、存储介质、处理器、终端 Download PDF

Info

Publication number
CN114610372A
CN114610372A CN202210122953.XA CN202210122953A CN114610372A CN 114610372 A CN114610372 A CN 114610372A CN 202210122953 A CN202210122953 A CN 202210122953A CN 114610372 A CN114610372 A CN 114610372A
Authority
CN
China
Prior art keywords
review
file
code
evaluated
files
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210122953.XA
Other languages
English (en)
Inventor
张玉坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Cloud Computing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Cloud Computing Ltd filed Critical Alibaba Cloud Computing Ltd
Priority to CN202210122953.XA priority Critical patent/CN114610372A/zh
Publication of CN114610372A publication Critical patent/CN114610372A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Abstract

本发明公开了一种评审文件的处理方法及装置、存储介质、处理器、终端。其中,该处理方法包括:获取与每个待评审代码文件存在依赖关系的关联文件,基于待评审代码文件、关联文件以及文件之间的依赖关系,构建评审关系图,将评审关系图切割为多个评审子图,并提取与每个评审子图对应的评审文件集合,得到多个评审文件集合。本发明解决了相关技术中在代码评审过程中,由于需要评审的文件数量多或者改动行较多,容易造成代码评审充分度下降,影响代码质量的技术问题。

Description

评审文件的处理方法及装置、存储介质、处理器、终端
技术领域
本发明涉及文件处理技术领域,具体而言,涉及一种评审文件的处理方法及装置、存储介质、处理器、终端。
背景技术
相关技术中,很多项目在运行之中,会对项目的代码进行代码评审,代码评审的目的是为了提高代码质量。当遇到改动行/文件过多的评审,由于逻辑复杂,且功能划分不明确,会使得评审人感到无从下手,失去耐心,草草浏览一遍代码就通过了评审,这就违背了代码评审的初衷。同时,对于文件过多或者改动行较多的单次评审,评审人的评审充分度严重下降,无论是评审时间,还是实际文件浏览数,大评审相对于小评审均有严重的下降,这样容易导致代码质量降低,出现bug。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种评审文件的处理方法及装置、存储介质、处理器、终端,以至少解决相关技术中在代码评审过程中,由于需要评审的文件数量多或者改动行较多,容易造成代码评审充分度下降,影响代码质量的技术问题。
根据本发明实施例的一个方面,提供了一种评审文件的处理方法,包括:获取与每个待评审代码文件存在依赖关系的关联文件;基于所述待评审代码文件、所述关联文件以及文件之间的所述依赖关系,构建评审关系图;将所述评审关系图切割为多个评审子图,并提取与每个所述评审子图对应的评审文件集合,得到多个评审文件集合,其中,所述评审文件集合包括:至少一个所述待评审代码文件。
可选地,获取与每个待评审代码文件存在依赖关系的关联文件的步骤,包括:获取每个所述待评审代码文件中的代码在执行时需要依赖的第一类关联文件以及需要引用所述待评审代码文件的第二类关联文件,得到多个关联文件。
可选地,在获取与每个待评审代码文件存在依赖关系的关联文件之前,还包括:接收评审请求,其中,所述评审请求中携带有至少一个待评审代码文件和文件参数;响应所述评审请求,并在所述文件参数指示所述待评审代码文件的文件数量大于等于第一预设数量阈值的情况下,确定需要对所述评审请求中的多个待评审代码文件进行拆分;在确定需要对所述评审请求中的多个待评审代码文件进行拆分的情况下,执行获取与每个待评审代码文件存在依赖关系的关联文件的步骤。
可选地,在接收评审请求之后,还包括:提取所述评审请求中的文件权限标识;结合所述文件权限标识,对每个所述待评审代码文件进行验证;在所述待评审代码文件验证通过的情况下,获取所述待评审代码文件中存在修改标记的代码块;统计存在修改标记的所述代码块的数量;在所述代码块的数量大于等于第二预设数量阈值的情况下,确定需要对所述待评审代码文件进行拆分;在确定需要对所述待评审代码文件进行拆分的情况下,执行获取与每个待评审代码文件存在依赖关系的关联文件的步骤。
可选地,基于所述待评审代码文件、所述关联文件以及文件之间的所述依赖关系,构建评审关系图的步骤,还包括:将所述待评审代码文件作为图中心点,并将所述关联文件作为图参考点,以所述依赖关系作为图关联边,将存在所述依赖关系的文件之间进行虚线勾连,以构建所述评审关系图。
可选地,在基于所述待评审代码文件、所述关联文件以及文件之间的所述依赖关系,构建评审关系图之后,还包括:获取文件之间存在所述依赖关系的代码调用方式、代码接口实现类型或者代码引用方式;采用所述代码调用方式、代码接口实现类型或者代码引用方式,确定所述依赖关系的权重参数;将所述权重参数作为所述评审关系图中所述图关联边的属性值,调整所述评审关系图。
可选地,将所述评审关系图切割为多个评审子图的步骤,包括:选取正则割算法作为所述评审关系图的切割算法;采用所述正则割算法切割所述评审关系图,得到多个评审子图。
可选地,所述处理方法还包括:获取多个所述待评审代码文件中属于独立属性的文件,其中,所述独立属性是指当前的待评审代码文件与其它任意一个待评审代码文件不存在依赖关系;提取所述独立属性的文件的文件目录和文件类型;基于所述文件目录和文件类型以及预先配置的代码块开发规则,将独立属性的文件切割为评审文件集合;将所述独立属性的文件对应的所述评审文件集合和评审信息显示在预设终端界面上。
可选地,在提取与每个所述评审子图对应的评审文件集合之后,还包括:提取在历史预设时间段内所述评审文件集合中所述待评审代码文件的代码特征;获取在历史预设时间段内各评审对象的行为特征;分析所述评审文件集合中所述待评审代码文件在历史预设时间段内的文件历史特征;基于所述待评审代码文件的代码特征、各评审对象的行为特征和文件历史特征,为所述评审文件集合分配评审对象,并生成所述评审文件集合的评审简要信息;结合所述评审对象和所述评审简要信息,确定所述评审文件集合的评审信息。
可选地,在提取与每个所述评审子图对应的评审文件集合之后,还包括:按照所述评审文件集合的评审信息,生成每个所述评审文件集合的分组信息;将每个所述评审文件集合所对应的分组信息显示在预设终端界面上。
根据本发明实施例的另一方面,还提供了一种评审文件的处理方法,包括:接收评审请求,其中,所述评审请求中携带有至少一个待评审代码文件;响应所述评审请求,在云服务器中获取与每个待评审代码文件存在依赖关系的关联文件;基于所述待评审代码文件、所述关联文件以及文件之间的所述依赖关系,构建评审关系图;将所述评审关系图切割为多个评审子图,并提取与每个所述评审子图对应的评审文件集合,得到多个评审文件集合以及所述评审文件集合对应的评审信息,其中,所述评审文件集合包括:至少一个所述待评审代码文件,将每个所述评审文件集合和所述评审文件集合对应的评审信息返回至终端。
根据本发明实施例的另一方面,还提供了一种评审文件的处理装置,包括:获取单元,用于获取与每个待评审代码文件存在依赖关系的关联文件;构建单元,用于基于所述待评审代码文件、所述关联文件以及文件之间的所述依赖关系,构建评审关系图;切割单元,用于将所述评审关系图切割为多个评审子图,并提取与每个所述评审子图对应的评审文件集合,得到多个评审文件集合,其中,所述评审文件集合包括:至少一个所述待评审代码文件。
可选地,所述获取单元包括:第一获取模块,用于获取每个所述待评审代码文件中的代码在执行时需要依赖的第一类关联文件以及需要引用所述待评审代码文件的第二类关联文件,得到多个关联文件。
可选地,所述处理装置还包括:第一接收模块,用于在获取与每个待评审代码文件存在依赖关系的关联文件之前,接收评审请求,其中,所述评审请求中携带有至少一个待评审代码文件和文件参数;第一响应模块,用于响应所述评审请求,并在所述文件参数指示所述待评审代码文件的文件数量大于等于第一预设数量阈值的情况下,确定需要对所述评审请求中的多个待评审代码文件进行拆分;第一执行模块,用于在确定需要对所述评审请求中的多个待评审代码文件进行拆分的情况下,执行获取与每个待评审代码文件存在依赖关系的关联文件的步骤。
可选地,所述处理装置还包括:第一提取模块,用于在接收评审请求之后,提取所述评审请求中的文件权限标识;第一验证模块,用于结合所述文件权限标识,对每个所述待评审代码文件进行验证;第二获取模块,用于在所述待评审代码文件验证通过的情况下,获取所述待评审代码文件中存在修改标记的代码块;第一统计模块,用于统计存在修改标记的所述代码块的数量;第一确定模块,用于在所述代码块的数量大于等于第二预设数量阈值的情况下,确定需要对所述待评审代码文件进行拆分;第二执行模块,用于在确定需要对所述待评审代码文件进行拆分的情况下,执行获取与每个待评审代码文件存在依赖关系的关联文件的步骤。
可选地,所述构建单元还包括:第一构建模块,用于将所述待评审代码文件作为图中心点,并将所述关联文件作为图参考点,以所述依赖关系作为图关联边,将存在所述依赖关系的文件之间进行虚线勾连,以构建所述评审关系图。
可选地,所述处理装置还包括:第三获取模块,用于在基于所述待评审代码文件、所述关联文件以及文件之间的所述依赖关系,构建评审关系图之后,获取文件之间存在所述依赖关系的代码调用方式、代码接口实现类型或者代码引用方式;第二确定模块,用于采用所述代码调用方式、代码接口实现类型或者代码引用方式,确定所述依赖关系的权重参数;第一调整模块,用于将所述权重参数作为所述评审关系图中所述图关联边的属性值,调整所述评审关系图。
可选地,所述切割单元包括:第一选取模块,用于选取正则割算法作为所述评审关系图的切割算法;第一切割模块,用于采用所述正则割算法切割所述评审关系图,得到多个评审子图。
可选地,所述处理装置还包括:第四获取模块,用于获取多个所述待评审代码文件中属于独立属性的文件,其中,所述独立属性是指当前的待评审代码文件与其它任意一个待评审代码文件不存在依赖关系;第二提取模块,用于提取所述独立属性的文件的文件目录和文件类型;第二切割模块,用于基于所述文件目录和文件类型以及预先配置的代码块开发规则,将独立属性的文件切割为评审文件集合;第一显示模块,用于将所述独立属性的文件对应的所述评审文件集合和评审信息显示在预设终端界面上。
可选地,所述处理装置还包括:第三提取模块,用于在提取与每个所述评审子图对应的评审文件集合之后,提取在历史预设时间段内所述评审文件集合中所述待评审代码文件的代码特征;第五获取模块,用于获取在历史预设时间段内各评审对象的行为特征;第一分析模块,用于分析所述评审文件集合中所述待评审代码文件在历史预设时间段内的文件历史特征;第一生成模块,用于基于所述待评审代码文件的代码特征、各评审对象的行为特征和文件历史特征,为所述评审文件集合分配评审对象,并生成所述评审文件集合的评审简要信息;第三确定模块,用于结合所述评审对象和所述评审简要信息,确定所述评审文件集合的评审信息。
可选地,所述处理装置还包括:第二生成模块,用于在提取与每个所述评审子图对应的评审文件集合之后,按照所述评审文件集合的评审信息,生成每个所述评审文件集合的分组信息;第二显示模块,用于将每个所述评审文件集合所对应的分组信息显示在预设终端界面上。
根据本发明实施例的另一方面,还提供了一种评审文件的处理装置,包括:接收单元,用于接收评审请求,其中,所述评审请求中携带有至少一个待评审代码文件;响应单元,用于响应所述评审请求,在云服务器中获取与每个待评审代码文件存在依赖关系的关联文件;基于所述待评审代码文件、所述关联文件以及文件之间的所述依赖关系,构建评审关系图;将所述评审关系图切割为多个评审子图,并提取与每个所述评审子图对应的评审文件集合,得到多个评审文件集合以及所述评审文件集合对应的评审信息,其中,所述评审文件集合包括:至少一个所述待评审代码文件,返回单元,用于将每个所述评审文件集合和所述评审文件集合对应的评审信息返回至终端。
根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述中任意一项所述的评审文件的处理方法。
根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述的评审文件的处理方法。
根据本发明实施例的另一方面,还提供了一种终端,包括:第一装置;第二装置;第三装置;以及第四装置;处理器,所述处理器运行程序,其中,所述程序运行时对于从所述第一装置、第二装置、第三装置输出的数据执行如下处理步骤:第一步骤,获取与每个待评审代码文件存在依赖关系的关联文件;第二步骤,基于所述待评审代码文件、所述关联文件以及文件之间的所述依赖关系,构建评审关系图;第三步骤,将所述评审关系图切割为多个评审子图,并提取与每个所述评审子图对应的评审文件集合,得到多个评审文件集合,其中,所述评审文件集合包括:至少一个所述待评审代码文件。
在本公开中,获取与每个待评审代码文件存在依赖关系的关联文件,基于待评审代码文件、关联文件以及文件之间的依赖关系,构建评审关系图,将评审关系图切割为多个评审子图,并提取与每个评审子图对应的评审文件集合,得到多个评审文件集合。在本发明中,可通过对代码文件之间的依赖关系解析,构建评审关系图,并将评审关系图切割为多个评审子图,以实现将复杂的代码评审拆分为功能内敛的评审文件集合(作为子评审),使得评审人能够对评审子图对应的评审文件集合进行充分评审,有利于代码质量的提升,减少bug出现,进而解决了相关技术中在代码评审过程中,由于需要评审的文件数量多或者改动行较多,容易造成代码评审充分度下降,影响代码质量的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的用于实现评审文件的处理方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本发明实施例的一种可选的实现评审文件的处理方法的实施环境的示意图;
图3是根据本发明实施例的一种可选的评审文件的处理方法的流程图;
图4是根据本发明实施例的一种可选的依赖关系分类的示意图;
图5是根据本发明实施例的一种可选的切割评审关系图的示意图;
图6是根据本发明实施例的一种可选的分组信息的示意图;
图7是根据本发明实施例的一种可选的智能评审拆分流程的示意图;
图8是根据本发明实施例的另一种可选的评审文件的处理方法的流程图;
图9是根据本发明实施例的一种可选的评审文件的处理装置的示意图;
图10是根据本发明实施例的另一种可选的评审文件的处理装置的示意图;
图11是根据本发明实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的对象更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术对象在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
代码评审:评审对象或者评审人对新提交的代码进行评审,以达到提升代码质量的目的。
大评审:代码评审中,评审文件数量超过预设个数(例如,10个)或评审改动行数超过预设行数(例如,500行)的代码评审。
diff块:代码文件中代码改动部分。
子图切割:通过智能化切割算法,将图切割为功能内敛的多个子图。
本申请中,采用智能评审方式实现代码评审,智能评审拆分能够解决代码评审中评审文件数量多或者评审改动过大的问题,通过代码文件依赖解析获取依赖文件,通过子图切割将依赖文件划分为子图,将游离文件规则分类,最后对子评审进行评审人分配和信息概要生成,将复杂的代码评审拆分为功能内敛的子评审。
下面结合各个实施例来详细说明本发明。
实施例1
根据本发明实施例,还提供了一种评审文件的处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现评审文件的处理方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术对象可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的评审文件的处理方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的评审文件的处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
图1示出的硬件结构框图,不仅可以作为上述计算机终端10(或移动设备)的示例性框图,还可以作为上述服务器的示例性框图,一种可选实施例中,图2是根据本发明实施例的一种可选的实现评审文件的处理方法的实施环境的示意图,如图2所示,计算机终端10(或移动设备)可以经由数据网络连接或电子连接到一个或多个服务器(例如安全服务器、资源服务器、游戏服务器等)。一种可选实施例中,上述计算机终端10(或移动设备)可以是任意移动计算设备。数据网络连接可以是局域网连接、广域网连接、因特网连接,或其他类型的数据网络连接。计算机终端10(或移动设备)可以执行以连接到由一个服务器110(例如安全服务器)或一组服务器108执行的网络服务。网络服务器是基于网络的用户服务,诸如社交网络、云资源、电子邮件、在线支付或其他在线应用。
在上述运行环境下,本申请提供了如图3所示的评审文件的处理方法。图3是根据本发明实施例的一种可选的评审文件的处理方法的流程图,如图3所示,该方法包括如下步骤:
步骤S302,获取与每个待评审代码文件存在依赖关系的关联文件。
步骤S304,基于待评审代码文件、关联文件以及文件之间的依赖关系,构建评审关系图。
步骤S306,将评审关系图切割为多个评审子图,并提取与每个评审子图对应的评审文件集合,得到多个评审文件集合,其中,评审文件集合包括:至少一个待评审代码文件。
通过上述步骤,可以获取与每个待评审代码文件存在依赖关系的关联文件,基于待评审代码文件、关联文件以及文件之间的依赖关系,构建评审关系图,将评审关系图切割为多个评审子图,并提取与每个评审子图对应的评审文件集合,得到多个评审文件集合。在本发明实施例中,可通过对代码文件之间的依赖关系解析,构建评审关系图,并将评审关系图切割为多个评审子图,以实现将复杂的代码评审拆分为功能内敛的子评审,使得评审人能够对评审子图对应的评审文件集合进行充分评审,有利于代码质量的提升,减少bug出现,进而解决了相关技术中在代码评审过程中,由于需要评审的文件数量多或者改动行较多,容易造成代码评审充分度下降,影响代码质量的技术问题。
下面结合上述各步骤对本发明实施例进行详细说明。
在本发明实施例中,在获取与每个待评审代码文件存在依赖关系的关联文件之前,还包括:接收评审请求,其中,评审请求中携带有至少一个待评审代码文件和文件参数;响应评审请求,并在文件参数指示待评审代码文件的文件数量大于等于第一预设数量阈值的情况下,确定需要对评审请求中的多个待评审代码文件进行拆分;在确定需要对评审请求中的多个待评审代码文件进行拆分的情况下,执行获取与每个待评审代码文件存在依赖关系的关联文件的步骤。
本实施例中,接收用户发起的评审请求,该评审请求中携带有至少一个待评审代码文件和文件参数,该文件参数用于指示待评审代码文件的文件数量,在对评审请求中的待评审代码文件权限验证通过后,响应该评审请求,获取评审请求中的待评审代码文件,并判断该代码文件是否需要进行拆分,在该代码文件的文件参数指示该代码文件的文件数量大于等于第一预设数量阈值(可根据具体情况设置数量阈值,例如,10个)的情况下,确定需要对该评审请求中的多个待评审代码文件进行拆分,执行后续步骤,以完成对待评审代码文件的拆分。
可选的,在接收评审请求之后,还可以提取评审请求中的文件权限标识;结合文件权限标识,对每个待评审代码文件进行验证;在待评审代码文件验证通过的情况下,获取待评审代码文件中存在修改标记的代码块;统计存在修改标记的代码块的数量;在代码块的数量大于等于第二预设数量阈值的情况下,确定需要对待评审代码文件进行拆分;在确定需要对待评审代码文件进行拆分的情况下,执行获取与每个待评审代码文件存在依赖关系的关联文件的步骤。
在本发明实施例中,在接收评审请求之后,对评审请求中的待评审代码文件进行权限验证具体包括:可以先提取该评审请求中的文件权限标识,用于基于该文件权限标识,对相应的待评审代码文件进行验证,在待评审代码文件验证通过的情况下,获取该待评审代码文件中存在修改标记的代码块(即diff块),并统计存在修改标记的代码块的数量,如果待评审代码文件中存在修改标记的代码块的数量大于等于第二预设数量阈值(可根据具体情况设置数量阈值),确定需要对该待评审代码文件进行拆分,执行后续步骤,以完成对待评审代码文件的拆分。
步骤S302,获取与每个待评审代码文件存在依赖关系的关联文件。
可选的,获取与每个待评审代码文件存在依赖关系的关联文件的步骤,包括:获取每个待评审代码文件中的代码在执行时需要依赖的第一类关联文件以及需要引用待评审代码文件的第二类关联文件,得到多个关联文件。
在本发明实施例中,待评审代码文件中的代码在执行时可能需要依赖某些文件,或者需要被某些文件中的代码在执行时引用,其中,第一类关联文件为待评审代码文件中的代码在执行时依赖的文件,第二类关联文件为需要引用待评审代码文件的文件。本实施例可以通过获取第一类关联文件以及第二类关联文件,得到多个与每个待评审代码文件存在依赖关系的关联文件,该依赖关系在本实施例中可以指文件之间的引用与被引用关系。
步骤S304,基于待评审代码文件、关联文件以及文件之间的依赖关系,构建评审关系图。
可选的,基于待评审代码文件、关联文件以及文件之间的依赖关系,构建评审关系图的步骤,还包括:将待评审代码文件作为图中心点,并将关联文件作为图参考点,以依赖关系作为图关联边,将存在依赖关系的文件之间进行虚线勾连,以构建评审关系图。
在本发明实施例中,在获取与每个待评审代码文件存在依赖关系的关联文件后,可以将待评审代码文件作为图中心点,并将关联文件作为图参考点,以文件之间的依赖关系作为图关联边,采用虚线勾连存在依赖关系的文件,从而构建评审关系图。
可选的,在基于待评审代码文件、关联文件以及文件之间的依赖关系,构建评审关系图之后,还包括:获取文件之间存在依赖关系的代码调用方式、代码接口实现类型或者代码引用方式;采用代码调用方式、代码接口实现类型或者代码引用方式,确定依赖关系的权重参数;将权重参数作为评审关系图中图关联边的属性值,调整评审关系图。
在本发明实施例中,图4是根据本发明实施例的一种可选的依赖关系分类的示意图,如图4所示,依赖关系可以包括:方法调用关系以及引用关系等,其中,方法调用关系包括:static方法调用(静态方法调用)、普通方法调用、接口实现方法等,引用关系包括:引用实体类、引用枚举等。
在本实施例中,可以获取文件之间存在依赖关系的代码调用方式(例如,static方法调用或者普通方法调用等)、代码接口实现类型或者代码引用方式(例如,引用实体类或者引用枚举等),基于文件之间存在的具体依赖关系(具体采用的代码调用方式、代码接口实现类型或者代码引用方式等),确定依赖关系的权重参数(其中,权重表示虚线勾连的文件之间的表依赖关系的强弱,依赖关系越强,权重参数越大),将权重参数作为评审关系图中图关联边的属性值,调整评审关系图。
另一种可选的,在本实施例中,文件之间的依赖关系的权重参数还和改动内容有关,例如,新增内容的权重一般要高于删除的权重。此外,还可以基于代码评审的历史提交特征,获取文件之间的依赖关系。
步骤S306,将评审关系图切割为多个评审子图,并提取与每个评审子图对应的评审文件集合,得到多个评审文件集合,其中,评审文件集合包括:至少一个待评审代码文件。
在本发明实施例中,在得到评审关系图后,可以将评审关系图切割为多个功能内敛的评审子图,之后提取与每个评审子图对应的评审文件集合,得到多个评审文件集合,评审文件集合包括至少一个待评审代码文件,在为每个评审文件集合分配好评审人后,评审人可以对相应的评审文件集合中的待评审代码文件进行评审。
可选的,将评审关系图切割为多个评审子图的步骤,包括:选取正则割算法作为评审关系图的切割算法;采用正则割算法切割评审关系图,得到多个评审子图。
在本发明实施例中,从稳定性,时间,切割效果和缺点等四个方面对切割算法(例如,标签传播切割算法、最小割算法、正则割算法)进行考量,从而得出正则割算法具备效果稳定、切割效果好的优点,在本申请中,对于正则割算法,由于引入了k-mean(K均值聚类算法)的缘故,导致了效果不稳定的问题,可以将canopy(一种聚类算法)和k-mean结合起来,以保证拆分结果的稳定性,因此,本实施例选取正则割算法作为评审关系图的切割算法,采用正则割算法切割评审关系图,得到多个评审子图。
本实施例中,在代码开发中,还存在许多语言规则,如java开发中,接口类与其具体实现类原则上是不能被拆分的,因此,可以将接口类与其具体实现类不拆分规则加入到子图切割中。
图5是根据本发明实施例的一种可选的切割评审关系图的示意图,节点表示具体的代码文件(包括:LinguistSearchService文件、LinguistSearchServiclmp文件、LinguistSearchResponse文件、LinguistUtill文件、LinguistController文件、Authenticator文件、DefaultAuthenticator文件、UnauthorizedException文件、RangeScope文件、Range文件、LinguistTest文件、EssearchClient文件等),边的权重表示文件之间的依赖关系的强弱,implements表示文件之间是接口实现关系,不能被切割。从图5可以看出,最小割只考虑切割边的权重,结果较差,而正则割更符合直观的期待,同时,LinguistSearchService文件与两个子图联系密切,针对该类情况,可以允许不超过预设数量的文件重复。
可选的,在提取与每个评审子图对应的评审文件集合之后,还包括:提取在历史预设时间段内评审文件集合中待评审代码文件的代码特征;获取在历史预设时间段内各评审对象的行为特征;分析评审文件集合中待评审代码文件在历史预设时间段内的文件历史特征;基于待评审代码文件的代码特征、各评审对象的行为特征和文件历史特征,为评审文件集合分配评审对象,并生成评审文件集合的评审简要信息;结合评审对象和评审简要信息,确定评审文件集合的评审信息。
本发明实施例中,在提取与每个评审子图对应的评审文件集合之后,可以获取历史预设时间段内(例如,近一年内)评审文件集合中待评审代码文件的代码特征(例如,用于表明该代码文件中的代码能够实现的功能等特征),并获取在该历史预设时间段内各评审对象(即评审人)的行为特征(例如,用于表明各评审对象善于评审的代码文件功能等特征),分析评审文件集合中待评审代码文件在历史预设时间段内的文件历史特征(例如,该类文件是如何评审的),基于上述代码特征、各评审对象的行为特征和文件历史特征,可以为评审文件集合分配评审对象,并生成评审文件集合的评审简要信息(例如,包括该评审文件集合的功能、类型等),之后,可以结合分配的评审对象和相应的评审简要信息,确定评审文件集合的评审信息(例如,包括哪些待评审代码文件、文件之间的依赖关系、评审人、实现功能等)。
可选的,在提取与每个评审子图对应的评审文件集合之后,还包括:按照评审文件集合的评审信息,生成每个评审文件集合的分组信息;将每个评审文件集合所对应的分组信息显示在预设终端界面上。
在本发明实施例中,可以按照评审文件集合的评审信息,生成每个评审文件集合的分组信息,该分组信息可以包括:分组名称、组内文件信息等,并可以将将每个评审文件集合所对应的分组信息显示在预设终端界面上。
图6是根据本发明实施例的一种可选的分组信息的示意图,如图6所示,包括分组名称(分组1、分组2、分组3、…、分组N等)、组内文件信息(包括:代码文件名称,与该代码文件有依赖关系的代码文件名称,例如,EasConfig.java文件,以及与其由接口实现关系的EasOnlineModelServicelmpl.javawenjian),本实施例可以在代码评审系统中增加智能分组按钮,点击开启后就可以生成经过智能评审拆分的智能分组,显示在预设终端界面上。
可选的,本实施例中,在得到评审文件集合之后,可以将每个评审文件集合和评审文件集合对应的评审信息显示在预设终端界面上。
在本发明实施例中,可以将每个评审文件集合和评审文件集合对应的评审信息显示在预设终端界面上,以便查看评审文件集合对应的评审对象以及评审结果等,能够对质量较差的代码及时进行修改。
可选的,处理方法还包括:获取多个待评审代码文件中属于独立属性的文件,其中,独立属性是指当前的待评审代码文件与其它任意一个待评审代码文件不存在依赖关系;提取独立属性的文件的文件目录和文件类型;基于文件目录和文件类型以及预先配置的代码块开发规则,将独立属性的文件切割为评审文件集合;将独立属性的文件对应的评审文件集合和评审信息显示在预设终端界面上。
在本发明实施例中,构建评审关系图后,不可避免的会出现游离文件(即待评审代码文件中属于独立属性的文件,该独立属性是指当前的待评审代码文件与其它任意一个待评审代码文件不存在依赖关系),在获取游离文件后,可以先提取游离文件的文件目录和文件类型(例如,可以将游离文件区分为Java文件和非Java文件,也可以照文件后缀进行分类,还可以以文件目录为基本单位,按照文件数量和离目录的远近关系进行分类),之后,基于预先配置的代码块开发规则(例如,maven开发中,resources文件夹多为资源配置文件,可以将resources文件夹单独归类),结合获取的文件目录和文件类型,将独立属性的文件切割为评审文件集合,然后,可以将独立属性的文件对应的评审文件集合和评审信息显示在预设终端界面上。
基于上述各步骤,可以得到本发明实施例的一种可选的智能评审拆分流程的示意图,如图7所示,可以分为四个模块:(1)获取代码改动块:用户在发起代码评审后,自动进行权限验证,并获取Diff块,判断是否拆分,如果不拆分,则结束,如果拆分则进行提取java文件间的依赖、引用关系,构建有依赖关系的图;(2)提取java文件间的依赖、引用关系,构建有依赖关系的图:通过依赖解析,获取依赖文件和游离文件,对于游离文件,则根据规矩分类,拆分为子评审,之后进行评审人分配,生成概要信息;对于依赖文件,判断是否切割,如果不切割,则直接拆分为子评审,之后进行评审人分配,生成概要信息,如果切割,则进行将依赖文件切分成功能内敛的子图;(3)将依赖文件切分成功能内敛的子图:进行子图切割,以拆分为子评审,之后进行评审人分配,生成概要信息;(4)评审人分配,生成概要信息:对子评审进行评审人分配,并进行概要生成。
本发明实施例中,可以实现以文件维度进行拆分,更符合实际代码评审的体验和需求,并且除了考虑文件本身的依赖关系外,加入了语言规则和历史特征,针对游离文件,可以通过预设规则进行归类。本实施例在依赖解析的基础上,针对依赖文件过多的情况进行了图切割,将其转为功能内敛的子评审,在拆分成子评审后,进行了子评审的评审人分配和信息概要生成,能够使得评审人对子评审进行充分评审,有利于代码质量的提升,减少bug出现,同时,本实施例中的方法可以扩展到多个语言中。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术对象应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术对象也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术对象可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例2
本申请提供了另一种如图8所示的评审文件的处理方法,应用于云端/云服务器中,以云服务器作为实施主体,能够在接收到评审请求后,实现代码评审处理,并返回相应的处理结果。图8是根据本发明实施例的另一种可选的评审文件的处理方法的流程图,如图8所示,该方法包括如下步骤:
步骤S802,接收评审请求,其中,评审请求中携带有至少一个待评审代码文件。
步骤S804,响应评审请求,在云服务器中获取与每个待评审代码文件存在依赖关系的关联文件;基于待评审代码文件、关联文件以及文件之间的依赖关系,构建评审关系图;将评审关系图切割为多个评审子图,并提取与每个评审子图对应的评审文件集合,得到多个评审文件集合以及评审文件集合对应的评审信息,其中,评审文件集合包括:至少一个待评审代码文件。
步骤S806,将每个评审文件集合和评审文件集合对应的评审信息返回至终端。
通过上述步骤,可以在接收评审请求后,响应评审请求,在云服务器中获取与每个待评审代码文件存在依赖关系的关联文件,基于待评审代码文件、关联文件以及文件之间的依赖关系,构建评审关系图,将评审关系图切割为多个评审子图,并提取与每个评审子图对应的评审文件集合,得到多个评审文件集合以及评审文件集合对应的评审信息,将每个评审文件集合和评审文件集合对应的评审信息返回至终端,以使评审文件集合和评审文件集合对应的评审信息显示在预设终端界面上。在本发明实施例中,可通过对代码文件之间的依赖关系解析,构建评审关系图,并将评审关系图切割为多个评审子图,以实现将复杂的代码评审拆分为功能内敛的子评审,使得评审人能够对评审子图对应的评审文件集合进行充分评审,有利于代码质量的提升,减少bug出现,进而解决了相关技术中在代码评审过程中,由于需要评审的文件数量多或者改动行较多,容易造成代码评审充分度下降,影响代码质量的技术问题。
本发明实施例中,可以将处理主体设置在云服务器中,与各个实施终端进行交互,在接收到评审请求后,可以对评审前请求中的代码文件拆分或者对数量较多的代码文件进行切割,通过智能化手段将功能复杂的评审转化为子评审,实现了复杂评审的识别与精准拆分,并且智能评审拆分后,可以直接对子评审进行评审人分配,以及还可以通过评审代码特征、评审人行为特征、历史特征等,生成子评审的概要描述,能够使得评审人对子评审进行充分评审,有利于代码质量的提升,减少bug出现。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术对象应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术对象也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
实施例3
根据本发明实施例,还提供了一种用于实施上述实施例1中的评审文件的处理方法的处理装置,如图9所示,该装置包括:
获取单元90,用于获取与每个待评审代码文件存在依赖关系的关联文件;
构建单元92,用于基于待评审代码文件、关联文件以及文件之间的依赖关系,构建评审关系图;
切割单元94,用于将评审关系图切割为多个评审子图,并提取与每个评审子图对应的评审文件集合,得到多个评审文件集合,其中,评审文件集合包括:至少一个待评审代码文件。
上述处理装置,可以通过获取单元90获取与每个待评审代码文件存在依赖关系的关联文件,通过构建单元92基于待评审代码文件、关联文件以及文件之间的依赖关系,构建评审关系图,通过切割单元94将评审关系图切割为多个评审子图,并提取与每个评审子图对应的评审文件集合,得到多个评审文件集合。在本发明实施例中,可通过对代码文件之间的依赖关系解析,构建评审关系图,并将评审关系图切割为多个评审子图,以实现将复杂的代码评审拆分为功能内敛的子评审,使得评审人能够对评审子图对应的评审文件集合进行充分评审,有利于代码质量的提升,减少bug出现,进而解决了相关技术中在代码评审过程中,由于需要评审的文件数量多或者改动行较多,容易造成代码评审充分度下降,影响代码质量的技术问题。
可选的,获取单元包括:第一获取模块,用于获取每个待评审代码文件中的代码在执行时需要依赖的第一类关联文件以及需要引用待评审代码文件的第二类关联文件,得到多个关联文件。
可选的,处理装置还包括:第一接收模块,用于在获取与每个待评审代码文件存在依赖关系的关联文件之前,接收评审请求,其中,评审请求中携带有至少一个待评审代码文件和文件参数;第一响应模块,用于响应评审请求,并在文件参数指示待评审代码文件的文件数量大于等于第一预设数量阈值的情况下,确定需要对评审请求中的多个待评审代码文件进行拆分;第一执行模块,用于在确定需要对评审请求中的多个待评审代码文件进行拆分的情况下,执行获取与每个待评审代码文件存在依赖关系的关联文件的步骤。
可选的,处理装置还包括:第一提取模块,用于在接收评审请求之后,提取评审请求中的文件权限标识;第一验证模块,用于结合文件权限标识,对每个待评审代码文件进行验证;第二获取模块,用于在待评审代码文件验证通过的情况下,获取待评审代码文件中存在修改标记的代码块;第一统计模块,用于统计存在修改标记的代码块的数量;第一确定模块,用于在代码块的数量大于等于第二预设数量阈值的情况下,确定需要对待评审代码文件进行拆分;第二执行模块,用于在确定需要对待评审代码文件进行拆分的情况下,执行获取与每个待评审代码文件存在依赖关系的关联文件的步骤。
可选的,构建单元还包括:第一构建模块,用于将待评审代码文件作为图中心点,并将关联文件作为图参考点,以依赖关系作为图关联边,将存在依赖关系的文件之间进行虚线勾连,以构建评审关系图。
可选的,处理装置还包括:第三获取模块,用于在基于待评审代码文件、关联文件以及文件之间的依赖关系,构建评审关系图之后,获取文件之间存在依赖关系的代码调用方式、代码接口实现类型或者代码引用方式;第二确定模块,用于采用代码调用方式、代码接口实现类型或者代码引用方式,确定依赖关系的权重参数;第一调整模块,用于将权重参数作为评审关系图中图关联边的属性值,调整评审关系图。
可选的,切割单元包括:第一选取模块,用于选取正则割算法作为评审关系图的切割算法;第一切割模块,用于采用正则割算法切割评审关系图,得到多个评审子图。
可选的,处理装置还包括:第四获取模块,用于获取多个待评审代码文件中属于独立属性的文件,其中,独立属性是指当前的待评审代码文件与其它任意一个待评审代码文件不存在依赖关系;第二提取模块,用于提取独立属性的文件的文件目录和文件类型;第二切割模块,用于基于文件目录和文件类型以及预先配置的代码块开发规则,将独立属性的文件切割为评审文件集合;第一显示模块,用于将独立属性的文件对应的评审文件集合和评审信息显示在预设终端界面上。
可选的,处理装置还包括:第三提取模块,用于在提取与每个评审子图对应的评审文件集合之后,提取在历史预设时间段内评审文件集合中待评审代码文件的代码特征;第五获取模块,用于获取在历史预设时间段内各评审对象的行为特征;第一分析模块,用于分析评审文件集合中待评审代码文件在历史预设时间段内的文件历史特征;第一生成模块,用于基于待评审代码文件的代码特征、各评审对象的行为特征和文件历史特征,为评审文件集合分配评审对象,并生成评审文件集合的评审简要信息;第三确定模块,用于结合评审对象和评审简要信息,确定评审文件集合的评审信息。
可选的,处理装置还包括:第二生成模块,用于在提取与每个评审子图对应的评审文件集合之后,按照评审文件集合的评审信息,生成每个评审文件集合的分组信息;第二显示模块,用于将每个评审文件集合所对应的分组信息显示在预设终端界面上。
本发明实施例中,可以实现以文件维度进行拆分,更符合实际代码评审的体验和需求,并且除了考虑文件本身的依赖关系外,加入了语言规则和历史特征,针对游离文件,可以通过预设规则进行归类。本实施例在依赖解析的基础上,针对依赖文件过多的情况进行了图切割,将其转为功能内敛的子评审,在拆分成子评审后,进行了子评审的评审人分配和信息概要生成,能够使得评审人对各个子评审进行充分评审,有利于代码质量的提升,减少bug出现。
此处需要说明的是,上述模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
实施例4
根据本发明实施例,还提供了另一种用于实施上述实施例2中的评审文件的处理方法的处理装置,如图10所示,该装置包括:
接收单元100,用于接收评审请求,其中,评审请求中携带有至少一个待评审代码文件;
响应单元102,用于响应评审请求,在云服务器中获取与每个待评审代码文件存在依赖关系的关联文件;基于待评审代码文件、关联文件以及文件之间的依赖关系,构建评审关系图;将评审关系图切割为多个评审子图,并提取与每个评审子图对应的评审文件集合,得到多个评审文件集合以及评审文件集合对应的评审信息,其中,评审文件集合包括:至少一个待评审代码文件,
返回单元104,用于将每个评审文件集合和评审文件集合对应的评审信息返回至终端。
上述处理装置,可以通过接收单元100接收评审请求,通过响应单元102响应评审请求,在云服务器中获取与每个待评审代码文件存在依赖关系的关联文件,基于待评审代码文件、关联文件以及文件之间的依赖关系,构建评审关系图,将评审关系图切割为多个评审子图,并提取与每个评审子图对应的评审文件集合,得到多个评审文件集合以及评审文件集合对应的评审信息,通过返回单元104将每个评审文件集合和评审文件集合对应的评审信息返回至终端,以使评审文件集合和评审文件集合对应的评审信息显示在预设终端界面上。在本发明实施例中,可通过对代码文件之间的依赖关系解析,构建评审关系图,并将评审关系图切割为多个评审子图,以实现将复杂的代码评审拆分为功能内敛的子评审,使得评审人能够对评审子图对应的评审文件集合进行充分评审,有利于代码质量的提升,减少bug出现,进而解决了相关技术中在代码评审过程中,由于需要评审的文件数量多或者改动行较多,容易造成代码评审充分度下降,影响代码质量的技术问题。
本发明实施例中,通过智能化手段将功能复杂的评审转化为子评审,实现了复杂评审的识别与精准拆分,并且智能评审拆分后,可以直接对子评审进行评审人分配,以及还可以通过评审代码特征、评审人行为特征、历史特征等,生成子评审的概要描述,能够使得评审人对子评审进行充分评审,有利于代码质量的提升,减少bug出现。
此处需要说明的是,上述模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如上述实施例所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
实施例5
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选的,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选的,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行评审文件的处理方法中以下步骤的程序代码,以将每个评审文件集合和评审文件集合对应的评审信息显示在预设终端界面上。
可选的,图11是根据本发明实施例的一种计算机终端的结构框图。如图11所示,该计算机终端10可以包括:一个或多个(图11中仅示出一个)处理器102、存储器104。
其中,存储器可用于存储软件程序以及模块,如本发明实施例中的评审文件的处理方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的评审文件的处理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:第一步骤,获取与每个待评审代码文件存在依赖关系的关联文件;第二步骤,基于待评审代码文件、关联文件以及文件之间的依赖关系,构建评审关系图;第三步骤,将评审关系图切割为多个评审子图,并提取与每个评审子图对应的评审文件集合,得到多个评审文件集合,其中,评审文件集合包括:至少一个待评审代码文件。
本领域普通技术对象可以理解,图11所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。
本领域普通技术对象可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本发明的实施例还提供了一种存储介质。可选的,在本实施例中,上述存储介质可以用于保存上述实施例所提供的评审文件的处理方法所执行的程序代码。
可选的,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
本发明的实施例还提供了一种处理器。可选的,在本实施例中,上述处理器可以用于执行上述实施例所提供的评审文件的处理方法。
可选的,在本实施例中,上述处理器可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的切割,仅仅为一种逻辑功能切割,实际实现时可以有另外的切割方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术对象来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种评审文件的处理方法,其特征在于,包括:
获取与每个待评审代码文件存在依赖关系的关联文件;
基于所述待评审代码文件、所述关联文件以及文件之间的所述依赖关系,构建评审关系图;
将所述评审关系图切割为多个评审子图,并提取与每个所述评审子图对应的评审文件集合,得到多个评审文件集合,其中,所述评审文件集合包括:至少一个所述待评审代码文件。
2.根据权利要求1所述的处理方法,其特征在于,获取与每个待评审代码文件存在依赖关系的关联文件的步骤,包括:
获取每个所述待评审代码文件中的代码在执行时需要依赖的第一类关联文件以及需要引用所述待评审代码文件的第二类关联文件,得到多个关联文件。
3.根据权利要求1所述的处理方法,其特征在于,在获取与每个待评审代码文件存在依赖关系的关联文件之前,还包括:
接收评审请求,其中,所述评审请求中携带有至少一个待评审代码文件和文件参数;
响应所述评审请求,并在所述文件参数指示所述待评审代码文件的文件数量大于等于第一预设数量阈值的情况下,确定需要对所述评审请求中的多个待评审代码文件进行拆分;
在确定需要对所述评审请求中的多个待评审代码文件进行拆分的情况下,执行获取与每个待评审代码文件存在依赖关系的关联文件的步骤。
4.根据权利要求3所述的处理方法,其特征在于,在接收评审请求之后,还包括:
提取所述评审请求中的文件权限标识;
结合所述文件权限标识,对每个所述待评审代码文件进行验证;
在所述待评审代码文件验证通过的情况下,获取所述待评审代码文件中存在修改标记的代码块;
统计存在修改标记的所述代码块的数量;
在所述代码块的数量大于等于第二预设数量阈值的情况下,确定需要对所述待评审代码文件进行拆分;
在确定需要对所述待评审代码文件进行拆分的情况下,执行获取与每个待评审代码文件存在依赖关系的关联文件的步骤。
5.根据权利要求1所述的处理方法,其特征在于,基于所述待评审代码文件、所述关联文件以及文件之间的所述依赖关系,构建评审关系图的步骤,还包括:
将所述待评审代码文件作为图中心点,并将所述关联文件作为图参考点,以所述依赖关系作为图关联边,将存在所述依赖关系的文件之间进行虚线勾连,以构建所述评审关系图。
6.根据权利要求5所述的处理方法,其特征在于,在基于所述待评审代码文件、所述关联文件以及文件之间的所述依赖关系,构建评审关系图之后,还包括:
获取文件之间存在所述依赖关系的代码调用方式、代码接口实现类型或者代码引用方式;
采用所述代码调用方式、代码接口实现类型或者代码引用方式,确定所述依赖关系的权重参数;
将所述权重参数作为所述评审关系图中所述图关联边的属性值,调整所述评审关系图。
7.一种评审文件的处理方法,其特征在于,包括:
接收评审请求,其中,所述评审请求中携带有至少一个待评审代码文件;
响应所述评审请求,在云服务器中获取与每个待评审代码文件存在依赖关系的关联文件;基于所述待评审代码文件、所述关联文件以及文件之间的所述依赖关系,构建评审关系图;将所述评审关系图切割为多个评审子图,并提取与每个所述评审子图对应的评审文件集合,得到多个评审文件集合以及所述评审文件集合对应的评审信息,其中,所述评审文件集合包括:至少一个所述待评审代码文件,
将每个所述评审文件集合和所述评审文件集合对应的评审信息返回至终端。
8.一种评审文件的处理装置,其特征在于,包括:
获取单元,用于获取与每个待评审代码文件存在依赖关系的关联文件;
构建单元,用于基于所述待评审代码文件、所述关联文件以及文件之间的所述依赖关系,构建评审关系图;
切割单元,用于将所述评审关系图切割为多个评审子图,并提取与每个所述评审子图对应的评审文件集合,得到多个评审文件集合,其中,所述评审文件集合包括:至少一个所述待评审代码文件。
9.一种评审文件的处理装置,其特征在于,包括:
接收单元,用于接收评审请求,其中,所述评审请求中携带有至少一个待评审代码文件;
响应单元,用于响应所述评审请求,在云服务器中获取与每个待评审代码文件存在依赖关系的关联文件;基于所述待评审代码文件、所述关联文件以及文件之间的所述依赖关系,构建评审关系图;将所述评审关系图切割为多个评审子图,并提取与每个所述评审子图对应的评审文件集合,得到多个评审文件集合以及所述评审文件集合对应的评审信息,其中,所述评审文件集合包括:至少一个所述待评审代码文件,
返回单元,用于将每个所述评审文件集合和所述评审文件集合对应的评审信息返回至终端。
10.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至6中任意一项所述的评审文件的处理方法。
11.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至6中任意一项所述的评审文件的处理方法。
12.一种终端,其特征在于,包括:
第一装置;
第二装置;
第三装置
处理器,所述处理器运行程序,其中,所述程序运行时对于从所述第一装置、第二装置和第三装置输出的数据执行如下处理步骤:
第一步骤,获取与每个待评审代码文件存在依赖关系的关联文件;
第二步骤,基于所述待评审代码文件、所述关联文件以及文件之间的所述依赖关系,构建评审关系图;
第三步骤,将所述评审关系图切割为多个评审子图,并提取与每个所述评审子图对应的评审文件集合,得到多个评审文件集合,其中,所述评审文件集合包括:至少一个所述待评审代码文件。
CN202210122953.XA 2022-02-09 2022-02-09 评审文件的处理方法及装置、存储介质、处理器、终端 Pending CN114610372A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210122953.XA CN114610372A (zh) 2022-02-09 2022-02-09 评审文件的处理方法及装置、存储介质、处理器、终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210122953.XA CN114610372A (zh) 2022-02-09 2022-02-09 评审文件的处理方法及装置、存储介质、处理器、终端

Publications (1)

Publication Number Publication Date
CN114610372A true CN114610372A (zh) 2022-06-10

Family

ID=81859783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210122953.XA Pending CN114610372A (zh) 2022-02-09 2022-02-09 评审文件的处理方法及装置、存储介质、处理器、终端

Country Status (1)

Country Link
CN (1) CN114610372A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115907935A (zh) * 2023-01-09 2023-04-04 北京长城电子商务有限公司 一种在线辅助评审系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115907935A (zh) * 2023-01-09 2023-04-04 北京长城电子商务有限公司 一种在线辅助评审系统
CN115907935B (zh) * 2023-01-09 2023-05-30 北京长城电子商务有限公司 一种在线辅助评审系统

Similar Documents

Publication Publication Date Title
US20200259715A1 (en) Topology-Aware Continuous Evaluation of Microservice-based Applications
CN109726108B (zh) 基于模拟数据的前端代码测试方法、装置、系统和介质
CN107862425B (zh) 风控数据采集方法、设备、系统及可读存储介质
CN104133765B (zh) 网络活动的测试用例发送方法及测试用例服务器
CN105022815A (zh) 信息拦截方法及装置
CN114610372A (zh) 评审文件的处理方法及装置、存储介质、处理器、终端
CN110941634A (zh) 数据的处理方法及装置、存储介质和电子装置
CN110599278B (zh) 聚合设备标识符的方法、装置和计算机存储介质
CN110737425B (zh) 一种计费平台系统的应用程序的建立方法及装置
CN114185770A (zh) 生成测试数据的方法、装置、计算机设备和存储介质
CN110322143B (zh) 模型实体化管理方法、装置、设备及计算机存储介质
CN109087129B (zh) 用户评价方法、装置及计算机可读存储介质
CN114285896B (zh) 信息推送方法、装置、设备、存储介质及程序产品
CN110837563B (zh) 案件的裁判方法、装置和系统
CN113342647A (zh) 一种测试数据的生成方法及装置
CN114390015A (zh) 一种基于物模型的数据推送系统、方法、设备及存储介质
CN114281549A (zh) 数据的处理方法及装置
CN113051178A (zh) 测试数据构造方法、装置、设备及介质
CN113591448A (zh) 报表生成方法、装置及存储介质
CN110119337A (zh) 一种数据分析方法、装置及服务器
CN112433821B (zh) 业务模型的搭建方法、装置、电子设备及介质
CN113342795B (zh) 应用程序中数据核对方法、装置、电子设备及存储介质
CN110417841B (zh) 地址归一化处理方法、装置和系统、数据处理方法
CN117555764A (zh) 数据采集方法、装置、设备及存储介质
CN116244365A (zh) 数据聚合的方法和装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination