CN112711539A - 一种数据处理的方法、装置以及数据检测系统 - Google Patents

一种数据处理的方法、装置以及数据检测系统 Download PDF

Info

Publication number
CN112711539A
CN112711539A CN202110024493.2A CN202110024493A CN112711539A CN 112711539 A CN112711539 A CN 112711539A CN 202110024493 A CN202110024493 A CN 202110024493A CN 112711539 A CN112711539 A CN 112711539A
Authority
CN
China
Prior art keywords
code
detection unit
warehouse
file
vertex
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
CN202110024493.2A
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.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online Technology Co 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 Beijing Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN202110024493.2A priority Critical patent/CN112711539A/zh
Publication of CN112711539A publication Critical patent/CN112711539A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书公开了一种数据处理的方法、装置以及数据检测系统,针对每个预设的代码仓库,获取该代码仓库存储的各代码文件,并针对该代码仓库中包含的每个代码文件,根据该代码仓库中各代码文件之间的依赖关系,确定该代码文件对应的关联代码文件。而后,构建包含有该代码文件以及该代码文件对应关联代码文件的代码检测单元,并针对该代码仓库对应的每个代码检测单元,对该代码检测单元进行数据检测,得到针对该代码检测单元的数据检测结果,根据该代码仓库对应的每个代码检测单元的数据检测结果,确定针对该代码仓库的综合数据检测结果,并基于该综合数据检测结果,对该代码仓库中包含的代码进行数据优化处理,从而提高对代码进行数据检测的效率。

Description

一种数据处理的方法、装置以及数据检测系统
技术领域
本说明书涉及计算机技术领域,尤其涉及一种数据处理的方法、装置以及数据检测系统。
背景技术
当前,开发人员进行代码开发后,可以对代码进行数据检测(例如,静态代码扫描),从而找出代码中存在的问题,以保证代码的质量,降低安全风险。例如,对代码进行数据检测可以确定出代码中是否存在空指针、是否存在过长的函数、过多的重复代码等。
在现有技术中,整个代码仓库中的代码可以在一台服务器上集中进行数据检测,该代码仓库中的代码被拆分为若干个函数(或方法),每个函数对应一个线程,通过线程对函数进行检测,从而确定出该代码仓库中的代码所存在的一些问题。
然而,通常一个代码仓库中存储有大量代码,服务器需要先将一个代码仓库中全部的代码拆分成若干个方法,再通过线程对每个方法进行数据检测,可以看出,现有技术这种方式需要先对大量代码以函数为单位进行拆分,因此会耗费服务器较多的计算资源,导致数据检测的效率较低。
所以,如何提高对代码进行数据检测的效率,则是一个亟待解决的问题。
发明内容
本说明书提供一种数据处理的方法、装置以及数据检测系统,以用于对代码仓库中的代码进行数据检测。
本说明书采用下述技术方案:
本说明书提供了一种数据处理的方法,包括:
针对每个预设的代码仓库,获取该代码仓库存储的各代码文件,其中,每个代码文件中记录有一个业务对应的至少部分业务代码;
针对该代码仓库中包含的每个代码文件,根据该代码仓库中各代码文件之间的依赖关系,确定与该代码文件相关联的其他代码文件,作为该代码文件对应的关联代码文件;
构建包含有该代码文件以及该代码文件对应关联代码文件的代码检测单元;
针对该代码仓库对应的每个代码检测单元,对该代码检测单元进行数据检测,得到针对该代码检测单元的数据检测结果;
根据该代码仓库对应的每个代码检测单元的数据检测结果,确定针对该代码仓库的综合数据检测结果,并基于所述综合数据检测结果,对该代码仓库中包含的代码进行数据优化处理。
可选地,根据该代码仓库中各代码文件之间的依赖关系,确定与该代码文件相关联的其他代码文件,作为该代码文件对应的关联代码文件,具体包括:
根据该代码文件中包含的至少一个类,确定该代码文件对应的至少一个拓扑顶点,其中,该代码文件中包含的每个类均对应一个拓扑顶点;
针对所述至少一个拓扑顶点中的每个拓扑顶点,将该拓扑顶点作为目标顶点,并根据该代码仓库中各代码文件之间的依赖关系,从该代码仓库中其他代码文件所对应的拓扑顶点中确定与所述目标顶点具有依赖关系的拓扑顶点,作为所述目标顶点对应的关联拓扑顶点;
根据所述至少一个拓扑顶点对应的关联拓扑顶点,确定该代码文件对应的关联代码文件。
可选地,构建包含有该代码文件以及该代码文件对应关联代码文件的代码检测单元,具体包括:
根据所述至少一个拓扑顶点以及所述至少一个拓扑顶点对应的关联拓扑顶点,构建拓扑图,在所述拓扑图中,一个拓扑顶点与该拓扑顶点对应的关联拓扑顶点相连,同一代码文件所对应的拓扑顶点彼此相连;
根据所述拓扑图,构建包含有该代码文件以及该代码文件对应关联代码文件的代码检测单元。
可选地,针对该代码仓库对应的每个代码检测单元,对该代码检测单元进行数据检测,得到针对该代码检测单元的数据检测结果,具体包括:
并行对该代码仓库对应的各代码检测单元进行数据检测,得到针对该代码仓库对应的各代码检测单元的数据检测结果。
本说明书提供了一种数据检测系统,包括:至少一个代码仓库以及至少一个第一设备;
所述第一设备,用于针对每个代码仓库,向该代码仓库发送数据获取指令,获取该代码仓库返回的各代码文件,其中,每个代码文件中记录有一个业务对应的至少部分业务代码,针对该代码仓库中包含的每个代码文件,根据代码仓库中各代码文件之间的依赖关系,确定与该代码文件相关联的其他代码文件,作为该代码文件对应的关联代码文件,构建包含有该代码文件以及该代码文件对应关联代码文件的代码检测单元,针对该代码仓库对应的每个代码检测单元,对该代码检测单元进行数据检测,得到针对该代码检测单元的数据检测结果,根据该代码仓库对应的每个代码检测单元的数据检测结果,确定针对该代码仓库的综合数据检测结果,并基于所述综合数据检测结果,对该代码仓库中包含的代码进行数据优化处理;
所述代码仓库,用于接收所述第一设备发送的数据获取指令,根据所述数据获取指令向所述第一设备返回所述代码仓库中存储的各代码文件。
可选地,所述数据检测系统还包括:若干第二设备;
所述第一设备,用于针对该代码仓库的每个代码检测单元,确定该代码检测单元对应的第二设备,将该代码检测单元携带在数据检测请求中发送给该代码检测单元对应的第二设备,以通过该代码检测单元对应的第二设备对该代码检测单元进行数据检测,接收该代码检测单元对应的第二设备返回的针对该代码检测单元的数据检测结果;
所述第二设备,用于接收所述第一设备发送的数据检测请求,对所述数据检测请求中携带的代码检测单元进行数据检测,得到针对该代码检测单元的数据检测结果返回给所述第一设备。
可选地,所述第一设备,用于根据该代码文件中包含的至少一个类,确定该代码文件对应的至少一个拓扑顶点,其中,该代码文件中包含的每个类均对应一个拓扑顶点;针对所述至少一个拓扑顶点中的每个拓扑顶点,将该拓扑顶点作为目标顶点,并根据该代码仓库中各代码文件之间的依赖关系,从该代码仓库中其他代码文件所对应的拓扑顶点中确定与所述目标顶点具有依赖关系的拓扑顶点,作为所述目标顶点对应的关联拓扑顶点;根据所述至少一个拓扑顶点对应的关联拓扑顶点,确定该代码文件对应的关联代码文件。
本说明书提供了一种数据处理的装置,包括:
获取模块,用于针对每个预设的代码仓库,获取该代码仓库存储的各代码文件,其中,每个代码文件中记录有一个业务对应的至少部分业务代码;
确定模块,用于针对该代码仓库中包含的每个代码文件,根据该代码仓库中各代码文件之间的依赖关系,确定与该代码文件相关联的其他代码文件,作为该代码文件对应的关联代码文件;
构建模块,用于构建包含有该代码文件以及该代码文件对应关联代码文件的代码检测单元;
检测模块,用于针对该代码仓库对应的每个代码检测单元,对该代码检测单元进行数据检测,得到针对该代码检测单元的数据检测结果;
处理模块,用于根据该代码仓库对应的每个代码检测单元的数据检测结果,确定针对该代码仓库的综合数据检测结果,并基于所述综合数据检测结果,对该代码仓库中包含的代码进行数据优化处理。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据处理的方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据处理的方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的数据处理的方法中,针对每个预设的代码仓库,获取该代码仓库存储的各代码文件,并针对该代码仓库中包含的每个代码文件,根据该代码仓库中各代码文件之间的依赖关系,确定与该代码文件相关联的其他代码文件,作为该代码文件对应的关联代码文件。而后,构建包含有该代码文件以及该代码文件对应关联代码文件的代码检测单元,并针对该代码仓库对应的每个代码检测单元,对该代码检测单元进行数据检测,得到针对该代码检测单元的数据检测结果,根据该代码仓库对应的每个代码检测单元的数据检测结果,确定针对该代码仓库的综合数据检测结果,并基于该综合数据检测结果,对该代码仓库中包含的代码进行数据优化处理。
从上述方法中可以看出,本方法可以将一个代码仓库中包含的代码划分为多个由若干个关联的代码文件组成的代码检测单元,并分别对每个代码检测单元进行数据检测。相比于现有技术中需要将代码仓库中的大量代码以函数为单位进行拆分,本方法能够降低服务器的计算压力,在一定程度上提高对代码进行数据检测的效率。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中一种数据处理的方法的流程示意图;
图2为本说明书提供的一种构建出的拓扑图的示意图;
图3为本说明书提供的一种通过分布式集群并行进行数据检测的流程示意图;
图4为本说明书中一种数据处理的装置的示意图;
图5为本说明书提供的对应于图1的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中一种数据处理的方法的流程示意图,具体包括以下步骤:
S101:针对每个预设的代码仓库,获取该代码仓库存储的各代码文件,其中,每个代码文件中记录有一个业务对应的至少部分业务代码。
在实际应用中,开发人员进行代码开发后,代码将被存储在代码仓库中,数据检测系统可以对代码仓库中存储的代码进行数据检测,如,针对代码进行静态代码扫描。数据检测系统检测出代码中的漏洞、语义错误等后、可以针对代码进行数据优化处理,以减少代码中存在的问题,提高代码的质量。
在本说明书中,数据检测系统中可以包括至少一个第一设备以及至少一个代码仓库,代码仓库用于存储代码,第一设备主要用于获取到代码仓库中的代码文件,从而确定出代码仓库对应的各代码检测单元以进行数据检测,该第一设备可以只有一个,也可以有多个第一设备共同协作以对各代码仓库的代码检测单元进行确定并进行数据检测。基于此,第一设备可以针对每个预设的代码仓库,获取该代码仓库存储的各代码文件,其中,每个代码文件中记录有一个业务对应的至少部分业务代码,即,每个代码文件中包含有至少一个类(如JAVA类)的代码。具体的,第一设备可以针对每个代码仓库,向该代码仓库发送数据获取指令,各代码仓库接收到数据获取指令后,可以向该第一设备返回自身存储的代码文件。其中,第一设备可以是指台式电脑、服务器等设备。
S102:针对该代码仓库中包含的每个代码文件,根据该代码仓库中各代码文件之间的依赖关系,确定与该代码文件相关联的其他代码文件,作为该代码文件对应的关联代码文件。
S103:构建包含有该代码文件以及该代码文件对应关联代码文件的代码检测单元。
第一设备获取到该代码仓库的各代码文件后,可以针对该代码仓库的每个代码文件,根据该代码仓库中各代码文件之间的依赖关系,确定与该代码文件相关联的其他代码文件,作为该代码文件对应的关联代码文件,并构建包含有该代码文件以及该代码文件对应的关联代码文件的代码检测单元。
其中,该代码仓库中各代码文件之间的依赖关系可以根据代码文件中的类之间的依赖关系确定出。也就是说,若是两个代码文件中的类之间存在依赖关系,则这两个代码文件之间存在依赖关系。
在本说明书中,具体可以通过构建拓扑图的方式,来确定该代码文件对应的关联代码文件,并构建代码检测单元。具体的,第一设备可以根据该代码文件中包含的至少一个类,确定该代码文件对应的至少一个拓扑顶点。其中,该代码文件中包含的每个类均对应一个拓扑顶点,第一设备可以针对这些拓扑顶点中的每个拓扑顶点,将该拓扑顶点作为目标顶点,并根据该代码仓库中各代码文件之间的依赖关系,从该代码仓库中其他代码文件所对应的拓扑顶点中确定与该目标顶点具有依赖关系的拓扑顶点,作为目标顶点对应的关联拓扑顶点,根据至少一个拓扑顶点对应的关联拓扑顶点,确定该代码文件对应的关联代码文件。
其中,第一设备可以根据该代码文件对应的这些拓扑顶点以及这些拓扑顶点对应的关联拓扑顶点,构建拓扑图,在该拓扑图中,一个拓扑顶点与该拓扑顶点对应的关联拓扑顶点相连,同一代码文件所对应的拓扑顶点彼此相连,第一设备构建出拓扑图后,可以根据该拓扑图构建包含有该代码文件以及关联代码文件的代码检测单元。
从这里可以看出,第一设备是将每个类(如JAVA类)抽象成了拓扑顶点,对于每个类来说,与该类具有依赖关系的类所对应的拓扑顶点,可以在拓扑图中与该类的拓扑顶点相连,第一设备可以根据构建出的拓扑图,确定代码检测单元,如图2所示。
图2为本说明书提供的一种构建出的拓扑图的示意图。
在图2中展示了构建出的两个拓扑图,第一个拓扑图中包含了将A、B、C、D、E类抽象成的拓扑顶点。其中,在代码仓库中,A类与B类位于一个代码文件中,C、D以及E类分别位于三个不同的代码文件中。A类与E类存在依赖关系,E类分别与D类和C类存在依赖关系,B类与C类也存在依赖关系。因此,第一设备在构建拓扑图时,可以将A类与B类的拓扑顶点相连,将A类与E类的拓扑顶点相连,将E类与D类的拓扑顶点相连、将E类与C类的拓扑顶点相连以及将B类与C类的拓扑顶点相连,得到了包含有5个拓扑顶点的拓扑图。
第一设备可以将A、B、C、D、E类这5个类所在的代码文件,构建成一个代码检测单元。从上述内容可知,在构建拓扑图时,A、B、C、D、E类分别位于四个不同的代码文件中(即,A类与B类位于一个代码文件中,C、D以及E类分别位于三个不同的代码文件),在代码仓库中还包含有另外两个代码文件,其中F类以及K类位于一个代码文件中,G类位于另一代码文件中,F类与G类之间存在依赖关系,因此第一设备可以将由F、G、K类抽象成的3个拓扑顶点构建成另一个拓扑图,并根据该拓扑图可以构建出另一个代码检测单元,该代码检测单元包括F、G、K类所在的代码文件。
S104:针对该代码仓库对应的每个代码检测单元,对该代码检测单元进行数据检测,得到针对该代码检测单元的数据检测结果。
第一设备确定出该代码仓库对应的各代码检测单元后,可以针对每个代码检测单元,对该代码检测单元进行数据检测,得到针对该代码检测单元的数据检测结果。
需要说明的是,由于该代码仓库中存储的代码已经被划分为了多个代码检测单元,因此,第一设备可以并行对该代码仓库对应的各代码检测单元进行数据检测,得到该代码仓库对应的各代码检测单元的数据检测结果,而这里提到的并行,可以是通过分布式集群中的多台设备对该代码仓库对应的各代码检测单元进行并行数据检测。因此,数据检测系统中还可以包括若干个第二设备,每个第二设备针对一个或多个代码检测单元进行数据检测,则多个第二设备可以并行的对各代码检测单元进行数据检测。
具体的,第一设备在确定出该代码仓库的各代码检测单元后,可以针对每个代码检测单元,确定出该代码检测单元对应的第二设备,并将该代码检测单元携带在数据检测请求中发送给该代码检测单元对应的第二设备,该第二设备接收到该第一设备发送的数据检测请求后,可以对该数据检测请求中携带的代码检测单元进行数据检测得到针对该代码检测单元的数据检测结果返回给第一设备。由于针对代码检测单元进行数据检测(如,进行静态代码扫描)可以通过现有的多种代码扫描工具来实现,在此不对数据检测进行详细说明了。
S105:根据该代码仓库对应的每个代码检测单元的数据检测结果,确定针对该代码仓库的综合数据检测结果,并基于所述综合数据检测结果,对该代码仓库中包含的代码进行数据优化处理。
第一设备可以根据该代码仓库对应的每个代码检测单元的数据检测结果,确定针对该代码仓库的综合数据检测结果,并且,第一设备可以基于该综合数据检测结果,对该代码仓库中包含的代码进行数据优化处理。
也就是说,第一设备可以将该代码仓库对应的各代码检测单元的数据检测结果进行合并,得到一个能够反映出该代码仓库中整体代码的缺陷情况的综合数据检测结果,第一设备可以根据该综合数据检测结果,来减少该代码仓库中的代码存在的一些缺陷。
第一设备可以将该综合数据检测结果存储在数据库中,以及将该综合数据检测结果展示给相关的开发人员,使开发人员能够了解代码中的缺陷。若存在某些可以直接优化的缺陷,则第一设备可以直接对该代码仓库中的代码进行优化。例如,若是代码中存在可以删除的类,第一设备可以向开发人员确认这个类是否可以删除,若是,则将该类在代码中删除。
上述是站在第一设备的角度描述了如何将代码仓库中的代码划分为各代码检测单元,并进行数据检测,下面以一个例子完整的说明本说明书提供的数据处理的方法,如图3所示。
图3为本说明书提供的一种通过分布式集群并行进行数据检测的流程示意图。
从图3中可以看出,首先第一设备可以针对每个代码仓库,判断该代码仓库中的代码是否能够被拆分为多个代码检测单元,若该代码仓库中的代码能够被拆分为多个代码检测单元,则第一设备可以通过本方法将该代码仓库中的代码拆分成多个由代码文件组成的代码检测单元,每个代码检测单元中携带有所在代码仓库的仓库标识。
每个代码检测单元可以被分发到分布式集群中的一个服务器(如上述提到的第二设备)中进行数据检测,若一个服务器针对一个代码检测单元完成了数据检测,则可以将数据检测结果上传到一个云端设备(可以是第一设备,也可以是专门用于确定综合数据检测结果的其他设备)中,该云端设备用于确定各代码仓库的综合数据检测结果,因此,该云端设备可以根据各代码检测单元中携带的仓库标识,确定每个代码仓库对应的代码检测单元的数据检测结果,从而确定出各代码仓库的综合数据检测结果。
需要说明的是,在确定一个代码仓库对应的各代码检测单元时,除了本方法中的根据各代码文件的依赖关系确定各代码检测单元之外,第一设备还可以针对该代码仓库对应的每个业务进行划分,确定出每个业务下的代码文件,再进一步地将每个业务下的代码文件按照依赖关系,划分出各代码检测单元。
从上述描述中可以看出,本说明书提供的数据处理的方法能够通过一个代码仓库中的各代码文件之间的依赖关系,将该代码仓库的代码划分为多个由代码文件组成的代码检测单元,数据检测系统可以直接对各代码检测单元进行数据检测。因此,本方法不需要像现有技术那样对每个代码文件都按照函数的粒度进行拆分。并且,对于划分出的多个代码检测单元,数据检测系统可以通过分布式集群中的多个设备对这些代码检测单元进行并行的数据检测。进一步地,通过分布式集群中的每个设备对合并了多个代码文件的代码检测单元进行数据检测,能够充分利用分布式集群中每个设备的计算能力,因此本方法能够提高数据检测效率、降低了每个设备的计算压力。
以上为本说明书的一个或多个实施例提供的数据处理的方法,基于同样的思路,本说明书还提供了相应的数据处理的装置,如图4所示。
图4为本说明书提供的一种数据处理的装置示意图,具体包括:
获取模块401,用于针对每个预设的代码仓库,获取该代码仓库存储的各代码文件,其中,每个代码文件中记录有一个业务对应的至少部分业务代码;
确定模块402,用于针对该代码仓库中包含的每个代码文件,根据该代码仓库中各代码文件之间的依赖关系,确定与该代码文件相关联的其他代码文件,作为该代码文件对应的关联代码文件;
构建模块403,用于构建包含有该代码文件以及该代码文件对应关联代码文件的代码检测单元;
检测模块404,用于针对该代码仓库对应的每个代码检测单元,对该代码检测单元进行数据检测,得到针对该代码检测单元的数据检测结果;
处理模块405,用于根据该代码仓库对应的每个代码检测单元的数据检测结果,确定针对该代码仓库的综合数据检测结果,并基于所述综合数据检测结果,对该代码仓库中包含的代码进行数据优化处理。
可选地,所述确定模块402具体用于,根据该代码文件中包含的至少一个类,确定该代码文件对应的至少一个拓扑顶点,其中,该代码文件中包含的每个类均对应一个拓扑顶点;针对所述至少一个拓扑顶点中的每个拓扑顶点,将该拓扑顶点作为目标顶点,并根据该代码仓库中各代码文件之间的依赖关系,从该代码仓库中其他代码文件所对应的拓扑顶点中确定与所述目标顶点具有依赖关系的拓扑顶点,作为所述目标顶点对应的关联拓扑顶点;根据所述至少一个拓扑顶点对应的关联拓扑顶点,确定该代码文件对应的关联代码文件。
可选地,所述构建模块403具体用于,根据所述至少一个拓扑顶点以及所述至少一个拓扑顶点对应的关联拓扑顶点,构建拓扑图,在所述拓扑图中,一个拓扑顶点与该拓扑顶点对应的关联拓扑顶点相连,同一代码文件所对应的拓扑顶点彼此相连;根据所述拓扑图,构建包含有该代码文件以及该代码文件对应关联代码文件的代码检测单元。
可选地,所述检测模块404具体用于,并行对该代码仓库对应的各代码检测单元进行数据检测,得到针对该代码仓库对应的各代码检测单元的数据检测结果。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1所示的数据处理的方法。
本说明书还提供了图5所示的电子设备的示意结构图。如图5所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的数据处理的方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (10)

1.一种数据处理的方法,其特征在于,包括:
针对每个预设的代码仓库,获取该代码仓库存储的各代码文件,其中,每个代码文件中记录有一个业务对应的至少部分业务代码;
针对该代码仓库中包含的每个代码文件,根据该代码仓库中各代码文件之间的依赖关系,确定与该代码文件相关联的其他代码文件,作为该代码文件对应的关联代码文件;
构建包含有该代码文件以及该代码文件对应关联代码文件的代码检测单元;
针对该代码仓库对应的每个代码检测单元,对该代码检测单元进行数据检测,得到针对该代码检测单元的数据检测结果;
根据该代码仓库对应的每个代码检测单元的数据检测结果,确定针对该代码仓库的综合数据检测结果,并基于所述综合数据检测结果,对该代码仓库中包含的代码进行数据优化处理。
2.如权利要求1所述的方法,其特征在于,根据该代码仓库中各代码文件之间的依赖关系,确定与该代码文件相关联的其他代码文件,作为该代码文件对应的关联代码文件,具体包括:
根据该代码文件中包含的至少一个类,确定该代码文件对应的至少一个拓扑顶点,其中,该代码文件中包含的每个类均对应一个拓扑顶点;
针对所述至少一个拓扑顶点中的每个拓扑顶点,将该拓扑顶点作为目标顶点,并根据该代码仓库中各代码文件之间的依赖关系,从该代码仓库中其他代码文件所对应的拓扑顶点中确定与所述目标顶点具有依赖关系的拓扑顶点,作为所述目标顶点对应的关联拓扑顶点;
根据所述至少一个拓扑顶点对应的关联拓扑顶点,确定该代码文件对应的关联代码文件。
3.如权利要求2所述的方法,其特征在于,构建包含有该代码文件以及该代码文件对应关联代码文件的代码检测单元,具体包括:
根据所述至少一个拓扑顶点以及所述至少一个拓扑顶点对应的关联拓扑顶点,构建拓扑图,在所述拓扑图中,一个拓扑顶点与该拓扑顶点对应的关联拓扑顶点相连,同一代码文件所对应的拓扑顶点彼此相连;
根据所述拓扑图,构建包含有该代码文件以及该代码文件对应关联代码文件的代码检测单元。
4.如权利要求1所述的方法,其特征在于,针对该代码仓库对应的每个代码检测单元,对该代码检测单元进行数据检测,得到针对该代码检测单元的数据检测结果,具体包括:
并行对该代码仓库对应的各代码检测单元进行数据检测,得到针对该代码仓库对应的各代码检测单元的数据检测结果。
5.一种数据检测系统,其特征在于,包括:至少一个代码仓库以及至少一个第一设备;
所述第一设备,用于针对每个代码仓库,向该代码仓库发送数据获取指令,获取该代码仓库返回的各代码文件,其中,每个代码文件中记录有一个业务对应的至少部分业务代码,针对该代码仓库中的每个代码文件,根据代码仓库中各代码文件之间的依赖关系,确定与该代码文件相关联的其他代码文件,作为该代码文件对应的关联代码文件,构建包含有该代码文件以及该代码文件对应关联代码文件的代码检测单元,针对该代码仓库对应的每个代码检测单元,对该代码检测单元进行数据检测,得到针对该代码检测单元的数据检测结果,根据该代码仓库对应的每个代码检测单元的数据检测结果,确定针对该代码仓库的综合数据检测结果,并基于所述综合数据检测结果,对该代码仓库中包含的代码进行数据优化处理;
所述代码仓库,用于接收所述第一设备发送的数据获取指令,根据所述数据获取指令向所述第一设备返回所述代码仓库中存储的各代码文件。
6.如权利要求5所述的系统,其特征在于,所述数据检测系统还包括:若干第二设备;
所述第一设备,用于针对该代码仓库的每个代码检测单元,确定该代码检测单元对应的第二设备,将该代码检测单元携带在数据检测请求中发送给该代码检测单元对应的第二设备,以通过该代码检测单元对应的第二设备对该代码检测单元进行数据检测,接收该代码检测单元对应的第二设备返回的针对该代码检测单元的数据检测结果;
所述第二设备,用于接收所述第一设备发送的数据检测请求,对所述数据检测请求中携带的代码检测单元进行数据检测,得到针对该代码检测单元的数据检测结果返回给所述第一设备。
7.如权利要求5所述的系统,其特征在于,所述第一设备,用于根据该代码文件中包含的至少一个类,确定该代码文件对应的至少一个拓扑顶点,其中,该代码文件中包含的每个类均对应一个拓扑顶点;针对所述至少一个拓扑顶点中的每个拓扑顶点,将该拓扑顶点作为目标顶点,并根据该代码仓库中各代码文件之间的依赖关系,从该代码仓库中其他代码文件所对应的拓扑顶点中确定与所述目标顶点具有依赖关系的拓扑顶点,作为所述目标顶点对应的关联拓扑顶点;根据所述至少一个拓扑顶点对应的关联拓扑顶点,确定该代码文件对应的关联代码文件。
8.一种数据处理的装置,其特征在于,包括:
获取模块,用于针对每个预设的代码仓库,获取该代码仓库存储的各代码文件,其中,每个代码文件中记录有一个业务对应的至少部分业务代码;
确定模块,用于针对该代码仓库中包含的每个代码文件,根据该代码仓库中各代码文件之间的依赖关系,确定与该代码文件相关联的其他代码文件,作为该代码文件对应的关联代码文件;
构建模块,用于构建包含有该代码文件以及该代码文件对应关联代码文件的代码检测单元;
检测模块,用于针对该代码仓库对应的每个代码检测单元,对该代码检测单元进行数据检测,得到针对该代码检测单元的数据检测结果;
处理模块,用于根据该代码仓库对应的每个代码检测单元的数据检测结果,确定针对该代码仓库的综合数据检测结果,并基于所述综合数据检测结果,对该代码仓库中包含的代码进行数据优化处理。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~4任一项所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~4任一项所述的方法。
CN202110024493.2A 2021-01-08 2021-01-08 一种数据处理的方法、装置以及数据检测系统 Pending CN112711539A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110024493.2A CN112711539A (zh) 2021-01-08 2021-01-08 一种数据处理的方法、装置以及数据检测系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110024493.2A CN112711539A (zh) 2021-01-08 2021-01-08 一种数据处理的方法、装置以及数据检测系统

Publications (1)

Publication Number Publication Date
CN112711539A true CN112711539A (zh) 2021-04-27

Family

ID=75548611

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110024493.2A Pending CN112711539A (zh) 2021-01-08 2021-01-08 一种数据处理的方法、装置以及数据检测系统

Country Status (1)

Country Link
CN (1) CN112711539A (zh)

Similar Documents

Publication Publication Date Title
CN107239324B (zh) 业务流转处理方法、装置及系统
CN110245279B (zh) 依赖树生成方法、装置、设备及存储介质
CN108628688B (zh) 一种消息处理方法、装置及设备
CN107391101B (zh) 一种信息处理方法及装置
CN108268289B (zh) web应用的参数配置方法、装置及系统
CN109947643B (zh) 一种基于a/b测试的实验方案的配置方法、装置及设备
CN109597678B (zh) 任务处理方法及装置
CN111241040B (zh) 信息获取方法、装置、电子设备及计算机存储介质
CN115617799A (zh) 一种数据存储的方法、装置、设备及存储介质
CN108536613B (zh) 数据清理方法、装置、及服务器
CN111273965B (zh) 一种容器应用启动方法、系统、装置及电子设备
CN116048977B (zh) 一种基于数据还原的测试方法及装置
CN111538667A (zh) 一种页面测试的方法及装置
CN110874322B (zh) 一种用于应用程序的测试方法及测试服务器
CN107402749B (zh) 实现图片加载库的方法及装置
CN115934161A (zh) 一种代码变更的影响分析方法、装置以及设备
CN112711539A (zh) 一种数据处理的方法、装置以及数据检测系统
CN115878654A (zh) 一种数据查询的方法、装置、设备及存储介质
CN115391337A (zh) 数据库分区的方法、装置、存储介质及电子设备
CN110245136B (zh) 数据检索方法及装置、设备及存储设备
CN111339117B (zh) 数据处理方法、装置及设备
CN110704742B (zh) 一种特征提取方法及装置
CN107645541B (zh) 数据存储方法、装置及服务器
CN111967767A (zh) 一种业务风险识别方法、装置、设备及介质
CN111796864A (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