CN115509543A - 确定文档有效性的方法、装置、电子设备及存储介质 - Google Patents
确定文档有效性的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115509543A CN115509543A CN202211352730.9A CN202211352730A CN115509543A CN 115509543 A CN115509543 A CN 115509543A CN 202211352730 A CN202211352730 A CN 202211352730A CN 115509543 A CN115509543 A CN 115509543A
- Authority
- CN
- China
- Prior art keywords
- information
- determining
- sub
- code file
- target
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Document Processing Apparatus (AREA)
Abstract
本公开提供了一种确定文档有效性的方法、装置、电子设备及存储介质,涉及计算机技术领域,尤其涉及APP产品领域。具体实现方案为:根据目标代码文件,确定与目标代码文件相关的第一信息;根据与目标代码文件相对应的目标文档,确定与目标文档相关的第二信息;以及将第一信息和第二信息进行比较,得到目标文档的有效性。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及APP产品领域,更具体地,本公开提供了一种确定文档有效性的方法、装置、电子设备、存储介质以及计算机程序产品。
背景技术
随着互联网技术的发展,手机等智能设备在用户中得到普及,智能设备中可以安装应用程序(Application,APP)等软件产品来向用户提供服务。研发人员在开发软件产品的过程中需要编写代码和文档,文档用于对代码的使用方式进行说明,例如文档可以对代码中的接口、依赖关系等进行说明。
一些产品为用户提供服务的时间较长,随着时间的积累,代码的规模不断增加,但是与代码对应的文档存在缺失或者更新不及时的问题,导致代码与文档不匹配。因此,在多个研发人员协同工作的过程中,研发人员无法基于文档正确使用代码,进而影响研发效率,增加研发成本。
发明内容
本公开提供了一种确定文档有效性的方法、装置、电子设备及存储介质。
根据本公开的一方面,提供了一种确定文档有效性的方法,包括:根据目标代码文件,确定与目标代码文件相关的第一信息;根据与目标代码文件相对应的目标文档,确定与目标文档相关的第二信息;以及将第一信息和第二信息进行比较,得到目标文档的有效性。
根据本公开的另一方面,提供了一种确定文档有效性的装置,包括:第一确定模块、第二确定模块和比较模块。第一确定模块用于根据目标代码文件,确定与目标代码文件相关的第一信息。第二确定模块用于根据与目标代码文件相对应的目标文档,确定与目标文档相关的第二信息。比较模块用于将第一信息和第二信息进行比较,得到目标文档的有效性。
根据本公开的另一个方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开提供的方法。
根据本公开的另一个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开提供的方法。
根据本公开的另一个方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本公开提供的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的确定文档有效性的方法和装置的应用场景示意图;
图2是根据本公开实施例的确定文档有效性的方法的示意流程图;
图3A是根据本公开实施例的确定文档有效性的方法的示意原理图;
图3B是确定文档有效的示意原理图;
图3C是确定文档无效的示意原理图;
图4是根据本公开实施例的确定文档有效性的装置的示意结构框图;以及
图5是用来实施本公开实施例的确定文档有效性的方法的电子设备的结构框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
可以理解的是,随着产品规模的增大,可以采用组件化方式来开发产品,例如,研发人员可以各自开发自己负责的组件,不同组件之间可以相互依赖,相互调用。在开发组件的过程中,研发人员需要编写代码和文档,文档可以表示代码的使用手册,文档用于对代码的使用方式进行说明,例如文档可以对与代码相关的接口、描述、调用、参数、返回值等进行说明。
然而在实际应用中,研发人员重视对代码的编写工作,而忽视对文档的编写工作,并且缺少审查文档是否准确的工作环节,出现文档与代码不匹配的问题。例如,研发人员仅编写代码,未编写文档,导致文档缺失。或者研发人员更新代码版本之后,未能及时更新与代码对应的文档,导致文档内容不准确。当文档与代码不匹配时,使用方(例如其他研发人员)无法基于文档准确知晓代码的使用方式,导致协同效率低,进而延误产品的开发周期,提高研发成本。
本公开实施例旨在提出一种确定文档有效性的方法,该方法能够自动分析组件的代码与文档是否匹配,对文档有效性进行检查,在发布组件的代码时可以确定与代码对应的文档是否及时更新,及时发现文档中使用方式、依赖关系等不准确的问题,确保使用方获得正确的文档,从而提高产品的研发效率,降低研发成本。
以下将结合附图和具体实施例详细阐述本公开提供的技术方案。
图1是根据本公开实施例的确定文档有效性的方法和装置的应用场景示意图。
需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据相对应的目标代码文件和目标文档生成的目标文档的有效性等)反馈给终端设备。
需要说明的是,本公开实施例所提供的确定文档有效性的方法一般可以由服务器105执行。相应地,本公开实施例所提供的确定文档有效性的装置一般可以设置于服务器105中。本公开实施例所提供的确定文档有效性的方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的确定文档有效性的装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2是根据本公开实施例的确定文档有效性的方法的示意流程图。
如图2所示,该确定文档有效性的方法200可以包括操作S210~操作S230。
在操作S210,根据目标代码文件,确定与目标代码文件相关的第一信息。
示例性的,代码仓库中可以包括多个代码文件,代码文件可以包括头文件、接口文件等。代码仓库中的一部分代码文件可以对外公开,并供使用方调用,另一部分代码文件可以不对外公开。
可以根据实际需求,将代码仓库中的代码文件确定为目标代码文件。例如,可以将代码仓库中的全部代码文件确定为目标代码文件,也可以仅将代码仓库中的一部分代码文件确定为目标代码文件,例如将公开的代码文件确定为目标代码文件。
第一信息可以表示目标代码文件涉及到的信息,例如第一信息可以包括以下中的至少一个:目标代码文件所描述的模块信息、模块之间的依赖关系、模块的层级关系、版本号、类、接口信息(例如公开的接口)、变量(例如公开的变量)、全局函数、全局变量、宏定义、常量。例如可以通过解析目标代码的方式获得第一信息。
在操作S220,根据与目标代码文件相对应的目标文档,确定与目标文档相关的第二信息。
例如,目标文档可以表示目标代码文件的使用手册,用于描述目标代码文件的使用方式。例如目标文档记录了目标代码文件中的模块、模块的依赖关系、模块的层级关系、版本号、类、接口信息等。目标文档中可以通过文本和图片中的至少一个来记录与目标代码文件相关的信息,例如通过文本和接口调用关系图中的至少一个来记录接口信息。可以理解的是,同一个目标文档可以对应多个目标代码文件,例如利用同一个目标文档对多个目标代码文件的使用方式进行说明。
第二信息可以表示目标文档记录的信息,例如第二信息可以包括以下中的至少一个:目标文档所记录的模块信息、模块之间的依赖关系、模块的层级关系、版本号、类、接口信息(例如公开的接口)、变量(例如公开的变量)、全局函数、全局变量、宏定义、常量。例如可以通过解析目标文档中的文本和/或图片的方式获得第二信息。
在操作S230,将第一信息和第二信息进行比较,得到目标文档的有效性。
需要说明的是,第一信息可以表示与目标代码文件相关的全量信息M_F1,也可以表示目标代码文件相对于在前版本文件发生变更的信息M_C1。类似地,第二信息可以表示目标文档相关的全量信息M_F2,也可以表示目标文档相对于在前版本文档发生变更的信息M_C2。
在进行比较的过程中,可以将全量信息M_F1与全量信息M_F2进行比较,也可以将变更信息M_C1与变更信息M_C2进行比较,还可以将变更信息M_C1与全量信息M_F2进行比较。
经比较后,可以在第一信息和第二信息一致的情况下,确定目标文档有效。可以在第一信息和第二信息不一致的情况下,确定目标文档无效。
根据本公开实施例提供的技术方案,由于从目标代码文件和目标文档中确定出第一信息和第二信息,然后将第一信息和第二信息进行比较,通过确定第一信息和第二信息是否一致,来确定目标文档是否有效。在实际应用中,可以提示研发人员对无效的目标文档进行及时修改,从而确保使用方法获得正确的目标文档,提升团队协同过程的协同效率,降低不必要的沟通成本,提高软件产品的研发效率。
根据本公开另一实施例,在确定第一信息之前,可以从代码仓库中确定目标代码文件。本公开实施例对从代码仓库中确定目标代码文件的方式不做限定。
例如,可以预先配置预定配置信息,预定配置信息可以指示对外公开的代码文件的标识,然后根据预定配置信息从代码仓库中确定目标代码文件。
又例如,可以预先配置至少一个预定存储路径,并将对外公开的代码文件存储在预定存储路径下,然后将预定存储路径下的代码文件确定为目标代码文件。
根据本公开实施例提供的技术方案,由于可以预先配置预定配置信息,或者将待解析的代码文件存储在预定存储路径下,因此可以根据实际需求灵活确定目标代码文件。
根据本公开另一实施例,上述根据目标代码文件,确定与目标代码文件相关的第一信息的操作,可以包括以下操作:解析目标代码文件,得到第一原始数据。可以解析目标代码文件的在前版本文件,得到第二原始数据。然后根据第一原始数据和第二原始数据,确定第一信息。
例如,将第二原始数据相对于第一原始数据发生变更的信息确定为第一信息。可以看出,第一信息体现了本次新发布的目标代码文件发生了何种变化,变化的形式可以包括增加、删除和修改。可以理解的是,在实际应用中,可以针对在前版本的软件产品做较小修改,因此发生变更的信息数量较少。
本公开实施例分别解析当前版本的目标代码文件和在前版本的代码文件,然后将解析得到的第一原始信息和第二原始信息之间的变化确定第一信息。因此在后续进行比较操作时,无需将与目标代码文件相关的全量信息进行比较,从而减少数据处理量,提供处理效率。
需要说明的是,本公开实施例对解析代码文件的方式不做限定。以下以待解析的代码文件具体为第一代码文件为例,对解析代码文件的方式进行说明,待解析的代码文件具体为目标代码文件的在前版本文件的方式不再赘述。
在一种示例中,上述解析目标代码文件,得到第一原始数据的操作,可以包括以下操作:预先配置编程语言,并按照预先配置的编程语言的语法解析目标代码文件。例如,预先配置目标代码文件的编程语言是C++,则按照C++语言的语法解析目标代码文件。
在另一种示例中,上述解析目标代码文件,得到第一原始数据的操作,可以包括以下操作:根据目标代码文件的扩展名、实现文件和代码内容中的至少一个,确定目标代码文件的编程语言,然后根据编程语言对应的语法,解析目标代码文件,得到第一原始数据。
例如,可以根据目标代码文件的扩展名来确定编程语言。例如目标代码文件的扩展名为.h时,编程语言是C语言或C++语言或OC(Objective C)语言。例如扩展名是.swift时,编程语言是swift语言,扩展名是.java时,编程语言是java语言。
又例如,可以根据实现文件来确定编程语言。例如,目标代码文件的扩展名为.h时,编程语言可以是C语言或C++或OC(Objective C),其中,使用C语言编写的目标代码文件可以在扩展名为.c的文件中实现,使用C++语言编写的目标代码文件可以在扩展名为.cpp的文件中实现,使用OC语言编写的目标代码文件可以在扩展名为.m或.mm的文件中实现。
又例如,可以根据目标代码文件的内容确定编程语言,内容可以包括语法。以目标代码文件是头文件为例,C语言中通常不会出现类(class),C++语言中存在的类写作class,OC语言中的类写作@class或者@interface。
本公开实施例先根据扩展名、实现文件和代码内容中的至少一个确定编程语言,然后根据编程语言对应的语法解析目标代码文件,因此可以得到准确且全面的第一原始信息。
此外,由于各个编程语言各自对应有语法,因此基于语法解析目标代码文件,可以进一步提高解析结果的准确性。
根据本公开另一实施例,上述根据与目标代码文件相对应的目标文档,确定与目标文档相关的第二信息的操作,可以包括以下操作:根据目标文档中的图像信息,确定第二信息。
例如,目标文档可以包括文本信息和图像信息,图像信息例如可以包括依赖关系图、架构图、类图、接口调用流程图中的至少一个。
例如,可以对图像信息中的依赖关系图像进行识别,得到第二信息中的模块信息和模块之间的依赖关系。例如可以对依赖关系图像进行OCR(Optical CharacterRecognition,光学字符识别)识别,提取图像中的文本信息。还可以通过目标检测等方式识别箭头的方向,来确定依赖顺序。可以理解的是,若在目标代码文件中第一模块依赖于第二模块,则通过目标文档提取到的文本信息需要包括第一模块和第二模块,若文档中无法提取到第一模块和/或第二模块,则表示目标文档与目标代码不匹配,目标文档无效。
例如,可以对图像信息中的架构图的图像进行识别,得到第二信息中的模块层级关系。例如登陆组件包括网络模块、输入模块、安全保护模块以及提示模块,在架构图中,登陆组件对应一个较大的方框,并且该方框内部具有与各个模块各自对应的较小的方框。例如通过OCR识别得到图像中的文本得到模块信息,还可以识别图像中的方框线条,并基于方框线条的嵌套关系得到模块层级关系。
例如,可以对图像信息中的类图的图像进行识别,得到第二信息中的类信息和类之间的关系。例如,类信息可以包括公开的方法、公开的成员变量、私有的方法、私有的成员变量、保护的方法、保护的成员变量。使用方可以使用公开类型的类信息,还可以通过继承的方式使用保护类型的类信息。可以对类图进行OCR识别得到类信息,还可以基于图像中类信息之间的箭头确定类之间的关系。
例如,可以对图像信息中的接口调用流程图的图像进行识别,得到第二信息中的接口信息和接口之间的调用关系。例如,通过识别接口调用流程图,可以识别接口的使用流程等信息。还可以从文档中识别接口的定义、使用用例等接口信息。
在实际应用中,有些信息会同时记录在文档中的文本和图像中,有些信息仅记录在图像中。本公开实施例可以根据文档中的图像来识别第二信息,相比于仅对目标文档中的文本进行识别来得到第二信息的方式,本公开实施例利用图像对确定出的第二信息进行扩充,从而从目标文档中得到更加全面且准确的第二信息。
根据本公开另一实施例,第一信息包括多个第一子信息,例如第一信息包括以下几种第一子信息:目标代码文件描述的接口信息、依赖关系和版本号。第二信息包括多个第二子信息,例如第二信息包括以下几种第二子信息:目标文件记录的接口信息、依赖关系和版本号。相应地,上述将第一信息和第二信息进行比较,得到目标文档的有效性的操作,可以包括以下操作:根据多个第一子信息和多个第二子信息,确定多个子信息对,每个子信息对包括与同一类别对应的第一子信息和第二子信息。在确定多个子信息对中,每个子信息对所包括的第一子信息和第二子信息一致的情况下,确定目标文档有效。在确定多个子信息对中,至少一个子信息对所包括的第一子信息和第二子信息不一致的情况下,确定目标文档无效。
例如将目标代码文件描述的接口信息和目标文件记录的接口信息确定为一个子信息对,将目标代码文件描述的版本号和目标文件记录的版本号确定为另一个子信息对。然后将每个子信息对所包括的两个子信息进行比较。
本公开实施例可以对同一类别的第一子信息和第二子信息进行比较,并根据多个子信息对的比较结果确定目标文档的有效性,从而对第一信息和第二信息进行全面对比,准确确定目标文档是否有效。
图3A是根据本公开实施例的确定文档有效性的方法的示意原理图,图3B是确定文档有效的示意原理图,图3C是确定文档无效的示意原理图。
如图3A~图3C所示,以下结合具体示例,对本公开实施例提供的确定文档有效性的方法进行详细说明。
例如,某个软件产品包括模块A、模块B和模块C,模块A依赖模块B和模块C。
与模块A相对应的代码文件包括对外公开的代码文件A1和代码文件A2,其中,代码文件A1中包括公开的接口A11、A12、A13,代码文件A2中包括公开的接口A21、A22,在产品更新前与模块A相对应的代码文件的版本号为1.8.0。
与模块A对应的文档为A.doc,在文档A.doc中,记录了关于代码文件A1中的接口A11、A12、A13的使用说明,还记录了代码文件A2中的接口A21、A22的使用说明,接口的使用说明可以包括接口、描述、调用,参数,返回值等。文档A.doc中还记录了模块A对模块B和模块C的依赖说明,还记录了当前的版本信息。
在研发过程中,研发人员对软件产品进行了更新。例如,将接口A11更新为接口A11’,删除了接口A12,删除了代码文件A2,增加了代码文件A3,代码文件A3中包括接口A31。对于模块间的依赖关系,删除了模块B,添加了模块D,版本号变更为1.9.0。
如图3A所示,采用本公开实施例提供的方法,可以先根据预定配置信息和预定存储路径中的至少一个,从代码仓库301中确定与模块A对应的更新后的代码文件,更新后的代码文件即为上文中的目标代码文件302。然后基于代码文件的扩展名、实现文件、代码内容、语法303等解析更新后的代码文件,得到与更新后的代码文件相关的第一原始信息304。还可以对在前版本的代码文件进行解析得到第二原始信息305。然后根据第一原始信息304和第二原始信息305确定第一信息306,例如将当前版本相对于在前版本发生变更的信息确定为第一信息,发生变更的信息可以包括接口信息、依赖信息、版本号等。
例如,发生变更的接口信息可以包括:A11接口删除,新增接口A11’,删除接口A12,删除代码文件A2,删除接口A21、A22,增加代码文件A3,增加接口A31。
例如,发生变更的依赖信息可以包括:删除模块A对于模块B的依赖,增加A模块对于模块D的依赖。
接下来,可以对与变更之后的模块A对应的目标文档307进行解析,例如对目标文档307中的文本和图像中的至少一个进行识别,从而得到目标文档307中记录的第二信息308。
接下来,可以对第一信息306和第二信息308进行比较,来确定目标文档307的有效性309。
例如,可以比较第一信息306中的接口信息和第二信息308中的接口信息。例如,在目标文档307有效的情况下,目标代码文件302中删除接口A11,则目标文档307中应当没有与接口A11相关的记录。目标代码文件302中增加接口A11’,则目标文档307中应当存在与接口A11’相关的记录,例如可以包括文字描述,公开参数,返回值等。删除代码文件A2,则目标文档307中应当不存在与代码文件A2相关的描述。增加代码文件A3,则目标文档307中应当存在与接口A31对应的描述。
例如,可以比较第一信息306中的依赖信息和第二信息308中的赖信息。例如,在目标文档307有效的情况下,目标代码文件302中模块A不再依赖模块B,则目标文档307中应当不存在对模块B依赖的相关描述。目标代码文件302中增加了模块A对模块D的依赖,则目标文档307中应当存在对模块D的相关描述。
例如,可以比较第一信息306中的版本号和第二信息308中的版本号。在目标文档307有效的情况下,由于目标代码文件302中的版本号发生变更,则目标文档307中应当存在更新后的版本号。
如图3B所示,对目标代码文件302和目标文档307分别进行解析,可以得到第一信息306与第二信息308。经比较可以看出第一信息306与第二信息308不一致,表示目标代码文件302已更新,而目标文档307未更新,因此目标文档307无效。
如图3C所示,经比较可以看出第一信息306与第二信息308一致,表示目标代码文件302与目标文档307进行了同步更新,因此目标文档307有效。
接下来,还可以根据接口信息、依赖信息、版本号是否一致,提示用户是否需要修改文档。若不一致,还可以强制性不允许提交更新后的目标代码文件302,从而绑定代码和文档的对应关系。若不一字,也可以允许提交代码,并对失效的文档进行标记,从而提示用户及时更新文档。
本公开实施例基于模块在代码层面中发生的变化确定第一信息306,还对文档内容进行分析,确定第二信息308,然后将第一信息306和第二信息308进行比较,从而确定文档是否与代码文件同步更新。
图4是根据本公开实施例的确定文档有效性的装置的示意结构框图。
如图4所示,该确定文档有效性的装置400可以包括第一确定模块410、第二确定模块420和比较模块430。
第一确定模块410用于根据目标代码文件,确定与目标代码文件相关的第一信息。
第二确定模块420用于根据与目标代码文件相对应的目标文档,确定与目标文档相关的第二信息。
比较模块430用于将第一信息和第二信息进行比较,得到目标文档的有效性。
根据本公开另一实施例,第一确定模块包括:解析子模块和第一确定子模块。解析子模块用于解析目标代码文件,得到第一原始数据;第一确定子模块用于根据第一原始数据和第二原始数据,确定第一信息;其中,第二原始数据是对目标代码文件的在前版本文件进行解析得到的。
根据本公开另一实施例,解析子模块包括:确定单元和解析单元。确定单元用于根据目标代码文件的扩展名、实现文件和代码内容中的至少一个,确定目标代码文件的编程语言;解析单元用于根据编程语言对应的语法,解析目标代码文件,得到第一原始数据。
根据本公开另一实施例,上述装置还包括第三确定模块,用于在根据目标代码文件,确定与目标代码文件相关的第一信息之前,根据预定配置信息和预定存储路径中的至少一个,从多个代码文件中确定目标代码文件。
根据本公开另一实施例,第二确定模块包括第二确定子模块,用于根据目标文档中的图像信息,确定第二信息。
根据本公开另一实施例,第二确定子模块包括第一识别单元、第二识别单元、第三识别单元、第四识别单元中的至少一个。第一识别单元用于对图像信息中的依赖关系图像进行识别,得到第二信息中的模块信息和模块之间的依赖关系;第二识别单元用于对图像信息中的架构图的图像进行识别,得到第二信息中的模块层级关系;第三识别单元用于对图像信息中的类图的图像进行识别,得到第二信息中的类信息和类之间的关系;第四识别单元用于对图像信息中的接口调用流程图的图像进行识别,得到第二信息中的接口信息和接口之间的调用关系。
根据本公开另一实施例,第一信息包括多个第一子信息,第二信息包括多个第二子信息;比较模块包括:第三确定子模块、第四确定子模块和第五确定子模块。第三确定子模块用于根据多个第一子信息和多个第二子信息,确定多个子信息对,每个子信息对包括与同一类别对应的第一子信息和第二子信息;第四确定子模块用于在确定多个子信息对中,每个子信息对所包括的第一子信息和第二子信息一致的情况下,确定目标文档有效;第五确定子模块用于在确定多个子信息对中,至少一个子信息对所包括的第一子信息和第二子信息不一致的情况下,确定目标文档无效。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
根据本公开的实施例,本公开还提供了一种电子设备,包括至少一个处理器;以及与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述确定文档有效性的方法。
根据本公开的实施例,本公开还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述确定文档有效性的方法。
根据本公开的实施例,本公开还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述确定文档有效性的方法。
图5示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如确定文档有效性的方法。例如,在一些实施例中,确定文档有效性的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的确定文档有效性的方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行确定文档有效性的方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (17)
1.一种确定文档有效性的方法,包括:
根据目标代码文件,确定与所述目标代码文件相关的第一信息;
根据与所述目标代码文件相对应的目标文档,确定与所述目标文档相关的第二信息;以及
将所述第一信息和所述第二信息进行比较,得到所述目标文档的有效性。
2.根据权利要求1所述的方法,其中,所述根据目标代码文件,确定与所述目标代码文件相关的第一信息包括:
解析所述目标代码文件,得到第一原始数据;以及
根据所述第一原始数据和第二原始数据,确定所述第一信息;
其中,所述第二原始数据是对所述目标代码文件的在前版本文件进行解析得到的。
3.根据权利要求2所述的方法,其中,所述解析所述目标代码文件,得到第一原始数据包括:
根据所述目标代码文件的扩展名、实现文件和代码内容中的至少一个,确定所述目标代码文件的编程语言;以及
根据所述编程语言对应的语法,解析所述目标代码文件,得到所述第一原始数据。
4.根据权利要求1所述的方法,还包括:在所述根据目标代码文件,确定与所述目标代码文件相关的第一信息之前,
根据预定配置信息和预定存储路径中的至少一个,从多个代码文件中确定所述目标代码文件。
5.根据权利要求1所述的方法,其中,所述根据与所述目标代码文件相对应的目标文档,确定与所述目标文档相关的第二信息包括:
根据所述目标文档中的图像信息,确定所述第二信息。
6.根据权利要求5所述的方法,其中,所述根据所述目标文档中的图像信息,确定所述第二信息包括以下中的至少一个:
对所述图像信息中的依赖关系图像进行识别,得到所述第二信息中的模块信息和模块之间的依赖关系;
对所述图像信息中的架构图的图像进行识别,得到所述第二信息中的模块层级关系;
对所述图像信息中的类图的图像进行识别,得到所述第二信息中的类信息和类之间的关系;以及
对所述图像信息中的接口调用流程图的图像进行识别,得到所述第二信息中的接口信息和接口之间的调用关系。
7.根据权利要求1所述的方法,其中,所述第一信息包括多个第一子信息,所述第二信息包括多个第二子信息;所述将所述第一信息和所述第二信息进行比较,得到所述目标文档的有效性包括:
根据所述多个第一子信息和所述多个第二子信息,确定多个子信息对,每个子信息对包括与同一类别对应的第一子信息和第二子信息;
在确定所述多个子信息对中,每个子信息对所包括的第一子信息和第二子信息一致的情况下,确定所述目标文档有效;以及
在确定所述多个子信息对中,至少一个子信息对所包括的第一子信息和第二子信息不一致的情况下,确定所述目标文档无效。
8.一种确定文档有效性的装置,包括:
第一确定模块,用于根据目标代码文件,确定与所述目标代码文件相关的第一信息;
第二确定模块,用于根据与所述目标代码文件相对应的目标文档,确定与所述目标文档相关的第二信息;以及
比较模块,用于将所述第一信息和所述第二信息进行比较,得到所述目标文档的有效性。
9.根据权利要求8所述的装置,其中,所述第一确定模块包括:
解析子模块,用于解析所述目标代码文件,得到第一原始数据;以及
第一确定子模块,用于根据所述第一原始数据和第二原始数据,确定所述第一信息;
其中,所述第二原始数据是对所述目标代码文件的在前版本文件进行解析得到的。
10.根据权利要求9所述的装置,其中,所述解析子模块包括:
确定单元,用于根据所述目标代码文件的扩展名、实现文件和代码内容中的至少一个,确定所述目标代码文件的编程语言;以及
解析单元,用于根据所述编程语言对应的语法,解析所述目标代码文件,得到所述第一原始数据。
11.根据权利要求8所述的装置,还包括:
第三确定模块,用于在所述根据目标代码文件,确定与所述目标代码文件相关的第一信息之前,根据预定配置信息和预定存储路径中的至少一个,从多个代码文件中确定所述目标代码文件。
12.根据权利要求8所述的装置,其中,所述第二确定模块包括:
第二确定子模块,用于根据所述目标文档中的图像信息,确定所述第二信息。
13.根据权利要求12所述的装置,其中,所述第二确定子模块包括以下中的至少一个:
第一识别单元,用于对所述图像信息中的依赖关系图像进行识别,得到所述第二信息中的模块信息和模块之间的依赖关系;
第二识别单元,用于对所述图像信息中的架构图的图像进行识别,得到所述第二信息中的模块层级关系;
第三识别单元,用于对所述图像信息中的类图的图像进行识别,得到所述第二信息中的类信息和类之间的关系;以及
第四识别单元,用于对所述图像信息中的接口调用流程图的图像进行识别,得到所述第二信息中的接口信息和接口之间的调用关系。
14.根据权利要求8所述的装置,其中,所述第一信息包括多个第一子信息,所述第二信息包括多个第二子信息;所述比较模块包括:
第三确定子模块,用于根据所述多个第一子信息和所述多个第二子信息,确定多个子信息对,每个子信息对包括与同一类别对应的第一子信息和第二子信息;
第四确定子模块,用于在确定所述多个子信息对中,每个子信息对所包括的第一子信息和第二子信息一致的情况下,确定所述目标文档有效;以及
第五确定子模块,用于在确定所述多个子信息对中,至少一个子信息对所包括的第一子信息和第二子信息不一致的情况下,确定所述目标文档无效。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至7中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211352730.9A CN115509543A (zh) | 2022-10-31 | 2022-10-31 | 确定文档有效性的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211352730.9A CN115509543A (zh) | 2022-10-31 | 2022-10-31 | 确定文档有效性的方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115509543A true CN115509543A (zh) | 2022-12-23 |
Family
ID=84513330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211352730.9A Pending CN115509543A (zh) | 2022-10-31 | 2022-10-31 | 确定文档有效性的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115509543A (zh) |
-
2022
- 2022-10-31 CN CN202211352730.9A patent/CN115509543A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10169034B2 (en) | Verification of backward compatibility of software components | |
US10346294B2 (en) | Comparing software projects having been analyzed using different criteria | |
CN113760729A (zh) | 一种代码检测方法和装置 | |
CN110659210A (zh) | 一种信息获取方法、装置、电子设备及存储介质 | |
CN109634569B (zh) | 基于注解的流程实现方法、装置、设备及可读存储介质 | |
CN110716804A (zh) | 无用资源的自动删除方法、装置、存储介质及电子设备 | |
CN110704273B (zh) | 配置信息的处理方法和装置、电子设备和存储介质 | |
CN108768742B (zh) | 网络构建方法及装置、电子设备、存储介质 | |
CN111158777A (zh) | 组件调用方法、装置及计算机可读存储介质 | |
CN110580156A (zh) | 页面处理方法、装置及电子设备 | |
CN115421831A (zh) | 生成活动组件调用关系的方法、装置、设备及存储介质 | |
CN115509543A (zh) | 确定文档有效性的方法、装置、电子设备及存储介质 | |
CN113672512A (zh) | 代码检查规则生成方法、代码检查方法、装置、介质 | |
EP3679475B1 (en) | Identifying functions prone to logic errors in binary software components | |
CN113342553A (zh) | 一种数据的获取方法、装置、电子设备及存储介质 | |
CN109067726B (zh) | 建站系统识别方法、装置、电子设备及存储介质 | |
CN113515271A (zh) | 服务代码生成方法、装置、电子设备及可读存储介质 | |
CN113138767A (zh) | 代码语言转换方法、装置、电子设备及存储介质 | |
US20210049008A1 (en) | Identifying implicit dependencies between code artifacts | |
CN111782183B (zh) | 用于判断组件依赖关系的方法及设备、电子设备和介质 | |
CN116452208B (zh) | 变更交易码的确定方法、装置、设备及介质 | |
CN110297639B (zh) | 用于检测代码的方法和装置 | |
CN114253633A (zh) | 接口调用方法、装置、电子设备以及存储介质 | |
CN114217873A (zh) | 一种插件的确定方法、装置、电子设备及存储介质 | |
CN114817007A (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 |