掌桥专利:专业的专利平台
掌桥专利
首页

用于多版本开发的组件管理方法、系统、服务器及存储介质

文献发布时间:2023-06-19 18:49:33


用于多版本开发的组件管理方法、系统、服务器及存储介质

技术领域

本发明实施例涉及软件开发技术领域,尤其涉及一种用于多版本开发的组件管理方法、系统、服务器及存储介质。

背景技术

组件通常指代用来实现需求或者解决某个问题的代码块集合,而索引库通常指代储若干个组件的版本信息和配置的描述仓库或者容器。

现代代码的开发过程通常由多个团队进行,对于同一个组件在不同团队开发的多个版本中需要同时修改的情况下,如果组件的代码提交、版本更新不加以控制将会导致代码混乱、错乱,解决组件代码在多版本开发下的管理是大型开发团队需要共同面对的问题。

目前业界之中存在一些解决方案,一般是采用“手动指定组件版本号”或者限制组件数量的方式来解决此问题。但是这些方法存在很多问题,1是定死版本号需要人工参与手动维护或者需要做一套完善的后端管理系统和服务,成本非常高;2是如果组件数量在几十甚至一两百之内尚且勉强能够使用,但是如果在组件数量达到500、1000甚至5000时,此种方案超出了管理的边界,采用人力难以达到管理的目的;3是一旦版本号指定了错误的版本号,则会导致整个团队受到影响。

所以手动指定组件版本号的方案只适用于小规模团队或者数量较小的情况。当在一个大型团队中或者项目的组件数量达到成百上千的情况下,无法支撑团队的运行,对所有组件的维护将会使得成本高到无法支撑整个团队的正常迭代开发。

发明内容

本发明实施例提供一种用于多版本开发的组件管理方法,解决了现有技术中不同版本的组件数量过多导致组件管理成本过高的问题,达到了使用单一版本的组件实现多版本开发的效果。

本发明提供了一种用于多版本开发的组件管理方法,包括:

响应于代码的开发行为,得到所述开发完成后代码的第一版本,将所述第一版本的目标组件版本设为固定值,记录第一版本的目标组件索引库为第一索引库,所述第一版本的目标组件索引库为所述第一索引库;

响应于所述第一版本的二次开发行为,得到所述二次开发完成后的第二版本,比较所述第二版本的目标组件索引库与所述第一索引库;

当所述第二版本的目标组件索引库与所述第一索引库相比存在新增内容时,不修改所述目标组件版本,记录所述第二版本的目标组件索引库新增内容为第二索引库,所述第二版本的目标组件索引库为第一索引库及第二索引库。

优选地,响应于所述第一版本的二次开发行为,得到所述二次开发完成后的第二版本,比较所述第二版本的目标组件索引库与所述第一索引库的步骤之后还包括:

当所述第二版本组件索引库与所述第一索引库内容一致时,所述第二版本的目标组件索引库为第一索引库。

优选地,响应于所述第一版本的二次开发行为,得到所述二次开发完成后的第二版本,比较所述第二版本的目标组件索引库与所述第一索引库的步骤之后还包括:

当所述第二版本组件索引库与所述第一索引库内容相比存在删减时,记录所述第二版本的目标组件索引库为第三索引库,所述删减内容为第四索引库,所述第一索引库记为第三索引库及第四索引库。

优选地,当所述第二版本的目标组件索引库与所述第一索引库相比存在新增内容时,不修改所述目标组件版本,记录所述第二版本的目标组件索引库新增内容为第二索引库,所述第二版本的目标组件索引库为第一索引库及第二索引库的步骤之后还包括:

当存在所述二次开发的并行开发,得到所述并行开发完成后的第三版本;

当需要对所述第二版本及所述第三版本进行合并时,比较所述第二版本的目标组件索引库与所述第三版本的目标组件索引库;

当所述第三版本的目标组件索引库为第一索引库,而所述第二版本的目标索引库内容存在删减时,合并后的目标组件索引库包括第三索引库及第四索引库。

优选地,当需要对所述第二版本及所述第三版本进行合并时,比较所述第二版本的目标组件索引库与所述第三版本的目标组件索引库的步骤之后还包括:

当所述第三版本的目标组件索引库为第一索引库,而所述第二版本的目标索引库存在新增内容时,合并后的目标组件索引库包括第一索引库及第二索引库。

优选地,当需要对所述第二版本及所述第三版本进行合并时,比较所述第二版本的目标组件索引库与所述第三版本的目标组件索引库的步骤之后还包括:

当所述第三版本的目标组件索引库为第一索引库及第五索引库,其中所述第五索引库为第三版本的目标索引库相比第一索引库新增的内容,而所述第二版本的目标索引库也存在新增内容时,合并后的目标组件索引库包括第一索引库、第二索引库及第六索引库,其中所述第六索引库为所述第二索引库与所述第五索引库合并后相对于第二索引库多出的内容。

本发明还提出一种用于多版本开发的组件管理系统,包括:

代码开发单元,响应于代码的开发行为,得到所述开发完成后代码的第一版本,将所述第一版本的目标组件版本设为固定值,记录第一版本的目标组件索引库为第一索引库,所述第一版本的目标组件索引库为所述第一索引库;

版本更新单元,响应于所述第一版本的二次开发行为,得到所述二次开发完成后的第二版本,比较所述第二版本的目标组件索引库与所述第一索引库;

组件管理单元,当所述第二版本的目标组件索引库与所述第一索引库相比存在新增内容时,不修改所述目标组件版本,记录所述第二版本的目标组件索引库新增内容为第二索引库,所述第二版本的目标组件索引库为第一索引库及第二索引库。

本发明还提出一种服务器,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行用于多版本开发的组件管理程序,所述用于多版本开发的组件管理程序被所述处理器执行时实现如上所述的用于多版本开发的组件管理方法。

本发明还提出一种可读存储介质,可读存储介质上存储有用于多版本开发的组件管理程序,用于多版本开发的组件管理程序被处理器执行时实现如上的用于多版本开发的组件管理方法的步骤。

本发明通过多个索引库实现在不更新组件版本的前提下对组件进行管理,使得代码运行无需指定组件的版本,解决了现有技术中不同版本的组件数量过多导致组件管理成本过高的问题,达到了使用单一版本的组件实现多版本开发的效果。

附图说明

图1是本发明用于多版本开发的组件管理方法中一实施例的流程示意图;

图2是本发明用于多版本开发的组件管理方法中另一实施例的流程示意图;

图3是本发明用于多版本开发的组件管理方法中另一实施例的流程示意图;

图4是本发明实施例中的系统结构示意图;

图5是本发明实施例中的服务器结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

图1为本发明实施例提供的一种用于多版本开发的组件管理方法的流程图,具体包括:

S100、响应于代码的开发行为,得到所述开发完成后代码的第一版本,将所述第一版本的目标组件版本设为固定值,记录第一版本的目标组件索引库为第一索引库,所述第一版本的目标组件索引库为所述第一索引库;

需要说明的是,该代码的开发行为可以是新开发的代码或是基于之前代码版本发布新的版本,当开发行为是新开发的代码时,目标组件版本设为的固定值可以留空,仅保留组件名称即可,若是基于之前代码版本发布新的版本,则该固定值可以为已有组件版本以外的任一版本。

S200、响应于所述第一版本的二次开发行为,得到所述二次开发完成后的第二版本,比较所述第二版本的目标组件索引库与所述第一索引库;

值得强调的是,由于索引库存储有若干个组件的版本信息和配置的描述仓库或者容器,因此在此可以起到替代组件版本的作用,并获取不同版本组件的具体信息,以便于通过自动化工具实现自动管理例如自动化脚本、机器语言的识别及处理工具等。

易于理解的是,由于仅根据组件版本号无法获取不同版本的组件之间的区别,且不同代码需指定版本号才可正常运行,而通过索引库进行管理则无需代码端进行修改,仅需调整索引库即可应用到所有代码中。

需要说明的是,单个索引库的改造、破坏、脏数据等,都不会对其它索引库和版本有任何的影响,从单个版本索引库中的版本列表可以直接清晰的看到,该组件都有哪些版本存在,不会因为版本过多而导致无可读性,组件的版本号在不同的索引库中可以不同、可以重复、可以独立、可以自定制。

S300、当所述第二版本的目标组件索引库与所述第一索引库相比存在新增内容时,不修改所述目标组件版本,记录所述第二版本的目标组件索引库新增内容为第二索引库,所述第二版本的目标组件索引库为第一索引库及第二索引库。

需要强调的是,上述新增内容包括索引库描述的仓库及容器,一般情况下为git仓库,代码运行时只需要根据索引库中的描述,使用git从网络上拉取对应的容器或仓库,并按照描述进行配置即可应用至使用该组件的代码中。

本实施例通过多个索引库实现在不更新组件版本的前提下对组件进行管理,使得代码运行无需指定组件的版本,解决了现有技术中不同版本的组件数量过多导致组件管理成本过高的问题,达到了使用单一版本的组件实现多版本开发的效果。

参照图2,图2是本发明一种用于多版本开发的组件管理方法的流程图,上述用于多版本开发的组件管理方法,响应于所述第一版本的二次开发行为,得到所述二次开发完成后的第二版本,比较所述第二版本的目标组件索引库与所述第一索引库的步骤之后还包括:

S210、当所述第二版本组件索引库与所述第一索引库内容一致时,所述第二版本的目标组件索引库为第一索引库。

易于理解的是,当第二版本组件索引库与所述第一索引库内容一致时说明目标组件在本次版本更新中没有变动,则无需进行调整,因此索引库也无需进行变动,使用第一索引库即可。

具体地,响应于所述第一版本的二次开发行为,得到所述二次开发完成后的第二版本,比较所述第二版本的目标组件索引库与所述第一索引库的步骤之后还包括:

S220、当所述第二版本组件索引库与所述第一索引库内容相比存在删减时,记录所述第二版本的目标组件索引库为第三索引库,所述删减内容为第四索引库,所述第一索引库记为第三索引库及第四索引库。

需要说明的是,通常索引库存在删减的情况时直接使用第一索引库也可正常运行,但是通过将第一索引库拆解为第三索引库及第四索引库的方式,通常有利于性能的发挥。

本实施例通过公开多个索引库的具体管理方法,完善了技术方案,并通过对索引库的拆解,一定程度上提高了性能,且多个索引库合并起来也没有难度,可以通过现有的自动化脚本进行,便于本项目的开发之后有余力时通过更多的自动化管理工具进行复杂的管理。

参照图3,图3是本发明用于多版本开发的组件管理方法中另一实施例的流程示意图,当所述第二版本的目标组件索引库与所述第一索引库相比存在新增内容时,不修改所述目标组件版本,记录所述第二版本的目标组件索引库新增内容为第二索引库,所述第二版本的目标组件索引库为第一索引库及第二索引库的步骤之后还包括:

S400、当存在所述二次开发的并行开发,得到所述并行开发完成后的第三版本;

易于理解的是,大规模多团队的代码开发通常都伴随着并行开发的情况,本申请技术方案在面对并行开发的复杂环境时,任然可以实现良好的组件版本管理。

S500、当需要对所述第二版本及所述第三版本进行合并时,比较所述第二版本的目标组件索引库与所述第三版本的目标组件索引库;

需要说明的是,由于代码的二次开发并不是改变了所有的组件,因此需要对索引库进行比较,以确认哪些组件进行了改变,并根据比较结果触发预设的对应合并方法。

S600、当所述第三版本的目标组件索引库为第一索引库,而所述第二版本的目标索引库内容存在删减时,合并后的目标组件索引库包括第三索引库及第四索引库。

值得强调的是,现有组件版本号的管理方式,需要借助后端服务,而后端服务需要涉及到数据库、后端开发、后端管理系统、服务维护、域名等等,而本申请管理过程仅通过几行脚本即可实现,大大降低了管理成本,提高了管理效率。

具体地,当需要对所述第二版本及所述第三版本进行合并时,比较所述第二版本的目标组件索引库与所述第三版本的目标组件索引库的步骤之后还包括:

S700、当所述第三版本的目标组件索引库为第一索引库,而所述第二版本的目标索引库存在新增内容时,合并后的目标组件索引库包括第一索引库及第二索引库。

易于理解的是,合并后的目标组件索引库包括第一索引库及第二索引库后,同时包含了第二版本及第三版本的代码运行条件,保障了代码的正确运行,且该合并的难度接近在一行代码后粘贴另一方代码,大大降低了管理难度。

具体地,当需要对所述第二版本及所述第三版本进行合并时,比较所述第二版本的目标组件索引库与所述第三版本的目标组件索引库的步骤之后还包括:

S800、当所述第三版本的目标组件索引库为第一索引库及第五索引库,其中所述第五索引库为第三版本的目标索引库相比第一索引库新增的内容,而所述第二版本的目标索引库也存在新增内容时,合并后的目标组件索引库包括第一索引库、第二索引库及第六索引库,其中所述第六索引库为所述第二索引库与所述第五索引库合并后相对于第二索引库多出的内容。

值得说明的是,第二索引库与第五索引库可能存在重复内容,因此需要以第六索引库的方式替代第五索引库,其中第六索引库还可以描述为第五索引库去掉其与第二索引库重复的内容。

本实施例通过进一步公开相互包含的索引库之间的拆分及替换,以及互不包含的索引库如何发布新的索引库,完善了技术方案,并降低了管理难度,减少了管理成本,提升了使用体验。

参照图4,图4是本发明实施例中的系统结构示意图。

具体地,用于多版本开发的组件管理系统,包括:

代码开发单元10,响应于代码的开发行为,得到所述开发完成后代码的第一版本,将所述第一版本的目标组件版本设为固定值,记录第一版本的目标组件索引库为第一索引库,所述第一版本的目标组件索引库为所述第一索引库;

版本更新单元20,响应于所述第一版本的二次开发行为,得到所述二次开发完成后的第二版本,比较所述第二版本的目标组件索引库与所述第一索引库;

组件管理单元30,当所述第二版本的目标组件索引库与所述第一索引库相比存在新增内容时,不修改所述目标组件版本,记录所述第二版本的目标组件索引库新增内容为第二索引库,所述第二版本的目标组件索引库为第一索引库及第二索引库。

本实施例具备用于多版本开发的组件管理方法相应的功能模块和有益效果,在此不再一一赘述。

如图5所示,图5是本发明另一实施例的服务器结构示意图。该服务器包括处理器70、存储器71、输入装置72和输出装置73;服务器中处理器70的数量可以是一个或多个,图5中以一个处理器70为例;服务器中的处理器70、存储器71、输入装置72和输出装置73可以通过总线或其他方式连接,图5中以通过总线连接为例。

存储器71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的用于多版本开发的组件管理方法对应的程序指令。处理器70通过运行存储在存储器71中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的用于多版本开发的组件管理方法。

存储器71可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器71可进一步包括相对于处理器70远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置72可用于接收输入的数字或字符信息,以及产生与服务器的用户设置以及功能控制有关的键信号输入。输出装置73可包括显示屏等显示服务器。

本实施例具备执行方法相应的功能模块和有益效果,在此不再一一赘述。

本发明实施例还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种用于多版本开发的组件管理方法,该方法包括:

响应于代码的开发行为,得到所述开发完成后代码的第一版本,将所述第一版本的目标组件版本设为固定值,记录第一版本的目标组件索引库为第一索引库,所述第一版本的目标组件索引库为所述第一索引库;

响应于所述第一版本的二次开发行为,得到所述二次开发完成后的第二版本,比较所述第二版本的目标组件索引库与所述第一索引库;

当所述第二版本的目标组件索引库与所述第一索引库相比存在新增内容时,不修改所述目标组件版本,记录所述第二版本的目标组件索引库新增内容为第二索引库,所述第二版本的目标组件索引库为第一索引库及第二索引库。

具体地,响应于所述第一版本的二次开发行为,得到所述二次开发完成后的第二版本,比较所述第二版本的目标组件索引库与所述第一索引库的步骤之后还包括:

当所述第二版本组件索引库与所述第一索引库内容一致时,所述第二版本的目标组件索引库为第一索引库。

具体地,响应于所述第一版本的二次开发行为,得到所述二次开发完成后的第二版本,比较所述第二版本的目标组件索引库与所述第一索引库的步骤之后还包括:

当所述第二版本组件索引库与所述第一索引库内容相比存在删减时,记录所述第二版本的目标组件索引库为第三索引库,所述删减内容为第四索引库,所述第一索引库记为第三索引库及第四索引库。

具体地,当所述第二版本的目标组件索引库与所述第一索引库相比存在新增内容时,不修改所述目标组件版本,记录所述第二版本的目标组件索引库新增内容为第二索引库,所述第二版本的目标组件索引库为第一索引库及第二索引库的步骤之后还包括:

当存在所述二次开发的并行开发,得到所述并行开发完成后的第三版本;

当需要对所述第二版本及所述第三版本进行合并时,比较所述第二版本的目标组件索引库与所述第三版本的目标组件索引库;

当所述第三版本的目标组件索引库为第一索引库,而所述第二版本的目标索引库内容存在删减时,合并后的目标组件索引库包括第三索引库及第四索引库。

具体地,当需要对所述第二版本及所述第三版本进行合并时,比较所述第二版本的目标组件索引库与所述第三版本的目标组件索引库的步骤之后还包括:

当所述第三版本的目标组件索引库为第一索引库,而所述第二版本的目标索引库存在新增内容时,合并后的目标组件索引库包括第一索引库及第二索引库。

具体地,当需要对所述第二版本及所述第三版本进行合并时,比较所述第二版本的目标组件索引库与所述第三版本的目标组件索引库的步骤之后还包括:

当所述第三版本的目标组件索引库为第一索引库及第五索引库,其中所述第五索引库为第三版本的目标索引库相比第一索引库新增的内容,而所述第二版本的目标索引库也存在新增内容时,合并后的目标组件索引库包括第一索引库、第二索引库及第六索引库,其中所述第六索引库为所述第二索引库与所述第五索引库合并后相对于第二索引库多出的内容。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的用于多版本开发的组件管理方法中的相关操作,具备执行方法相应的功能模块和有益效果,在此不再一一赘述。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。

值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

技术分类

06120115707336