[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN108920139B - 一种程序生成方法、装置、系统、电子设备及存储介质 - Google Patents

一种程序生成方法、装置、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN108920139B
CN108920139B CN201810712583.9A CN201810712583A CN108920139B CN 108920139 B CN108920139 B CN 108920139B CN 201810712583 A CN201810712583 A CN 201810712583A CN 108920139 B CN108920139 B CN 108920139B
Authority
CN
China
Prior art keywords
information
program
service type
server
subtask
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.)
Active
Application number
CN201810712583.9A
Other languages
English (en)
Other versions
CN108920139A (zh
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 Kingsoft Software Co Ltd
Beijing Kingsoft Digital Entertainment Co Ltd
Original Assignee
Beijing Kingsoft Software Co Ltd
Beijing Kingsoft Digital Entertainment 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 Kingsoft Software Co Ltd, Beijing Kingsoft Digital Entertainment Co Ltd filed Critical Beijing Kingsoft Software Co Ltd
Priority to CN201810712583.9A priority Critical patent/CN108920139B/zh
Publication of CN108920139A publication Critical patent/CN108920139A/zh
Application granted granted Critical
Publication of CN108920139B publication Critical patent/CN108920139B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种程序生成方法、装置、系统、电子设备及存储介质,该方法中,获得开发任务信息,按照预设划分规则对开发任务信息进行划分,得到多个子任务信息,接收开发人员基于子任务信息编写的代码,生成子任务信息对应的程序。本发明中,在获得开发任务信息后,通过按照预设划分规则的方式对开发任务信息进行划分,避免了人为划分,缩短了划分周期,使得开发人员较快的得到自身的子任务信息,使得开发人员启动开发的时间较早,然后接收开发人员基于子任务信息编写的代码,生成子任务信息对应的程序,缩短了开发周期。

Description

一种程序生成方法、装置、系统、电子设备及存储介质
技术领域
本发明涉及系统开发技术领域,特别是涉及一种程序生成方法、装置、系统、电子设备及存储介质。
背景技术
目前的软件开发一般需要多个开发人员协作一起开发完成。一般来说,一个软件对应一个开发任务信息,在进行软件开发之前,需要懂技术的人员人为的对软件对应的开发任务信息进行规划,然后将规划得到的子任务信息分发至开发人员,每个开发人员都有不同的子任务信息。
常规的程序开发生命周期一般会涉及测试环境以及正式环境至少两个环境,开发人员完成自身的子任务信息后,人为将完成的代码复制至打包服务器,以到测试环境,由测试人员对该打包后的代码也就是初级版本进行测试,反复测试后,再将最终测试成功的版本部署到正式环境中,正式环境为用户提供服务。
相关技术中,人为的将开发任务信息进行划分,由于人为进行开发任务信息的划分,导致划分周期较长,使得开发人员得到自身的子任务信息的时间较长,使得开发人员启动开发的时间较晚,因此,划分周期较长进一步使得软件的开发周期较长。
发明内容
本发明实施例的目的在于提供一种程序生成方法、装置、系统、电子设备及存储介质,以缩短开发周期。具体技术方案如下:
一种程序生成方法,应用于代码管理服务器,所述方法包括:
获得开发任务信息;
按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息;
接收开发人员基于所述子任务信息编写的代码,生成所述子任务信息对应的程序。
可选的,所述按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息的步骤,包括:
获得预设编码架构信息;
确定所述预设编码架构信息包括的编码层次;
基于所述编码层次,对所述开发任务信息进行划分,得到多个子任务信息,其中,一个编码层次对应一个子任务信息。
可选的,所述按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息的步骤,包括:
确定所述开发任务信息对应的业务类型;
基于所述业务类型,对所述开发任务信息进行划分,得到多个子任务信息。
可选的,所述基于所述业务类型,对所述开发任务信息进行划分,得到多个子任务信息的步骤,包括:
在业务类型属于单一业务类型的情况下,确定该业务类型对应一个子任务信息;
在业务类型属于多业务类型的情况下,确定该业务类型对应一个子任务信息,或者,确定该业务类型包括的每个业务类型分别对应一个子任务信息,其中,所述多业务类型为业务类型有至少两种。
可选的,所述按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息的步骤,包括:
获得预设编码架构信息;
确定所述预设编码架构信息包括的编码层次;
基于所述编码层次,对所述开发任务信息进行划分,得到多个目标任务信息,其中,一个编码层次对应一个目标任务信息;
确定每个目标任务信息对应的业务类型;
基于所确定的业务类型,对每个目标任务信息进行划分,得到多个子任务信息。
可选的,在所述生成所述子任务信息对应的程序的步骤之后,所述方法还包括:
接收打包任务指令,从所述子任务信息对应的程序中,确定所述打包任务指令所包含的待打包程序,将所述待打包程序发送至打包服务器,以使所述打包服务器对所述待打包程序进行打包部署。
一种程序生成装置,应用于代码管理服务器,所述装置包括:
获得模块,用于获得开发任务信息;
划分模块,用于按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息;
接收模块,用于接收开发人员基于所述子任务信息编写的代码,生成所述子任务信息对应的程序。
可选的,所述划分模块,包括:
第一预设编码架构信息获得单元,用于获得预设编码架构信息;
第一编码层次确定单元,用于确定所述预设编码架构信息包括的编码层次;
第一划分单元,用于基于所述编码层次,对所述开发任务信息进行划分,得到多个子任务信息,其中,一个编码层次对应一个子任务信息。
可选的,所述划分模块,包括:
第一业务类型确定单元,用于确定所述开发任务信息对应的业务类型;
第二划分单元,用于基于所述业务类型,对所述开发任务信息进行划分,得到多个子任务信息。
可选的,所述第二划分单元,具体用于:
在业务类型属于单一业务类型的情况下,确定该业务类型对应一个子任务信息;
在业务类型属于多业务类型的情况下,确定该业务类型对应一个子任务信息,或者,确定该业务类型包括的每个业务类型分别对应一个子任务信息,其中,所述多业务类型为业务类型有至少两种。
可选的,所述划分模块,包括:
第二预设编码架构信息获得单元,用于获得预设编码架构信息;
第二编码层次确定单元,用于确定所述预设编码架构信息包括的编码层次;
第三划分单元,用于基于所述编码层次,对所述开发任务信息进行划分,得到多个目标任务信息,其中,一个编码层次对应一个目标任务信息;
第二业务类型确定单元,用于确定每个目标任务信息对应的业务类型;
第四划分单元,用于基于所确定的业务类型,对每个目标任务信息进行划分,得到多个子任务信息。
可选的,所述装置还包括:
指令接收模块,用于在所述生成程序后,接收打包任务指令,从所述子任务信息对应的程序中,确定所述打包任务指令所包含的待打包程序,将所述待打包程序发送至打包服务器,以使所述打包服务器对所述待打包程序进行打包部署。
一种电子设备,包括处理器和存储器;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的方法步骤。
一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的方法步骤。
一种程序打包部署系统,包括代码管理服务器和打包服务器;
所述代码管理服务器,用于获得开发任务信息,按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息,接收开发人员基于所述子任务信息编写的代码,生成所述子任务信息对应的程序,接收打包任务指令,从所述子任务信息对应的程序中,确定所述打包任务指令所包含的待打包程序,将所述待打包程序发送至打包服务器;
所述打包服务器,用于接收所述待打包程序,对所述待打包程序进行打包部署。
可选的,所述代码管理服务器具体用于:
获得预设编码架构信息;
确定所述预设编码架构信息包括的编码层次;
基于所述编码层次,对所述开发任务信息进行划分,得到多个子任务信息,其中,一个编码层次对应一个子任务信息。
可选的,所述代码管理服务器具体用于:
确定所述开发任务信息对应的业务类型;
基于所述业务类型,对所述开发任务信息进行划分,得到多个子任务信息。
可选的,所述代码管理服务器具体用于:
在业务类型属于单一业务类型的情况下,确定该业务类型对应一个子任务信息;
在业务类型属于多业务类型的情况下,确定该业务类型对应一个子任务信息,或者,确定该业务类型包括的每个业务类型分别对应一个子任务信息,其中,所述多业务类型为业务类型有至少两种。
可选的,所述代码管理服务器具体用于:
获得预设编码架构信息;
确定所述预设编码架构信息包括的编码层次;
基于所述编码层次,对所述开发任务信息进行划分,得到多个目标任务信息,其中,一个编码层次对应一个目标任务信息;
确定每个目标任务信息对应的业务类型;
基于所确定的业务类型,对每个目标任务信息进行划分,得到多个子任务信息。
可选的,还包括测试服务器;
所述打包服务器,具体用于接收所述待打包程序,基于预设打包规则,对所述待打包程序的代码进行打包得到待测试程序包,将所述待测试程序包部署至测试服务器;
所述测试服务器,用于接收所述待测试程序,对所述待测试程序进行测试。
可选的,所述打包服务器,还用于在将所述待测试程序包部署至测试服务器之后,接收所述代码管理服务器发送的所述待打包任务对应的页面文件,将所述页面文件部署至所述测试服务器;
所述测试服务器,还用于接收所述页面文件,对所述页面文件进行测试。
可选的,所述打包服务器,具体用于确定所述待打包程序的业务类型;
在所述待打包程序的业务类型为单一业务类型的情况下,将所述待打包程序的代码进行整体打包得到待测试程序包;
在所述待打包程序的业务类型为多业务类型的情况下,将所述待打包程序的代码进行整体打包得到目标程序包,基于所述待打包程序包括的业务的业务类型对所述目标程序包进行拆包得到待测试程序包,或者,基于所述待打包程序包括的业务的属性信息对所述目标程序包进行拆包得到待测试程序包。
可选的,所述打包服务器,具体用于确定所述待打包程序包括的每个业务的业务类型,将目标程序包中同一业务类型的业务的代码拆分为一个待测试程序包。
可选的,所述打包服务器,具体用于确定所述待打包程序包括的业务的属性信息,基于所述属性信息,确定各个业务之间的相关性,将目标程序包中相关性大于预设阈值的业务的代码拆分为一个待测试程序包。
可选的,还包括代码库;
所述打包服务器,还用于在获得所述待打包任务对应的待打包程序的代码后,将所述待打包程序的代码发送至所述代码库;
所述代码库,用于接收所述待打包程序的代码,存储所述待打包程序的代码。
可选的,所述代码管理服务器安装有版本管理SVN系统。
可选的,所述测试服务器为多个;
所述打包服务器,具体用于确定所述待打包程序对应的目标功能,根据功能与测试服务器的预设对应关系,确定所述目标功能对应的测试服务器,将所述待测试程序包部署至所述目标功能对应的测试服务器。
可选的,所述测试服务器包括多个测试服务器集群;
所述打包服务器,具体用于确定所述待测试程序包对应的目标功能,根据功能与测试服务器集群的预设对应关系,确定所述目标功能对应的测试服务器集群,将所述待测试程序包部署至所述目标功能对应的测试服务器集群。
可选的,还包括发布服务器;
所述测试服务器,还用于将测试成功的程序包部署至所述发布服务器;
所述发布服务器,用于接收所述测试成功的程序包,并对所述测试成功的程序包进行生产部署。
可选的,还包括发布服务器;
所述打包服务器,还用于在打包得到待测试程序包后,将所述待测试程序包发送至所述发布服务器;
所述发布服务器,用于接收所述待测试程序包,对所述待测试程序包进行生产部署。
本发明实施中,获得开发任务信息,按照预设划分规则对开发任务信息进行划分,得到多个子任务信息,接收开发人员基于子任务信息编写的代码,生成子任务信息对应的程序。本发明中,在获得开发任务信息后,通过按照预设划分规则的方式对开发任务信息进行划分,避免了人为划分,缩短了划分周期,使得开发人员较快的得到自身的子任务信息,使得开发人员启动开发的时间较早,然后接收开发人员基于子任务信息编写的代码,生成子任务信息对应的程序,缩短了开发周期。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的程序生成方法的第一种流程示意图;
图2为本发明实施例提供的按照预设划分规则对开发任务信息进行划分,得到多个子任务信息的第一种流程示意图;
图3为本发明实施例提供的按照预设划分规则对开发任务信息进行划分,得到多个子任务信息的第二种流程示意图;
图4为本发明实施例提供的按照预设划分规则对开发任务信息进行划分,得到多个子任务信息的第三种流程示意图;
图5为本发明实施例提供的程序生成方法的第二种流程示意图;
图6为本发明实施例提供的程序生成装置的结构示意图;
图7为本发明实施例提供的电子设备的结构示意图;
图8为本发明实施例提供的程序打包部署系统的结构示意图。
图9为本发明实施例提供的基于程序打包部署系统进行打包、测试以及生产部署的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决相关技术中存在的问题,本发明实施例提供了一种程序生成方法、装置、系统、电子设备及存储介质。
需要说明的是,本发明实施例的应用场景中,包括打包服务器和代码管理服务器。
其中,打包服务器主要用于对需要打包的代码进行打包,并将打包后的程序包部署至测试服务器;代码管理服务器主要用于对开发任务信息进行划分,并对开发人员编写的代码进行管理;测试服务器主要用于对打包后的程序包进行测试。
下面首先对本发明提供的应用于代码管理服务器的程序生成方法进行说明。
图1为本发明实施例提供的程序生成方法的流程示意图,应用于代码管理服务器,该方法可以包括:
S101:获得开发任务信息。
为了对软件开发进行规划,需要获得开发任务信息,其中,该开发任务信息中可以包含如下信息:待开发软件的名称、待开发软件的类型、待开发软件所包括的业务、待开发软件所包括的功能列表等。
其中,待开发软件的类型可以有游戏类型、办公类型等。
待开发软件所包括的业务取决于待开发软件是什么软件,例如:待开发软件为游戏软件,则待开发软件所包括的业务可以有游戏人物服装业务、游戏界面业务、游戏人物造型业务等;待开发软件为企业管理系统软件,则待开发软件所包括的业务可以有新闻公告业务、会议室管理业务、企业内部流程业务。
待开发软件所包括的功能为待开发软件所包括的业务所具有的功能,例如:待开发软件为游戏软件,待开发软件所包括的业务有游戏人物服装业务、游戏界面业务、游戏人物造型业务,由于游戏人物服装业务具有为游戏中人物提供服装的功能、游戏界面业务具有提供游戏界面的功能、游戏人物造型业务具有为游戏中人物提供造型的功能,因此,待开发软件所包括的功能列表中包括:为游戏中人物提供服装的功能、提供游戏界面的功能和为游戏中人物提供造型的功能。
S102:按照预设划分规则对开发任务信息进行划分,得到多个子任务信息。
由于软件开发需要多个开发人员协作一起完成,因此,在获得开发任务信息后,需要按照预设划分规则对开发任务信息进行划分,得到多个子任务信息。以使每个开发人员按照自身的子任务信息进行开发。
上述按照预设划分规则对开发任务信息进行划分,得到多个子任务信息的方式有多种,包括但不限于以下几种:
第一种方式:
基于编码架构进行划分。
参见图2,步骤S102可以包括:
S1021:获取预设编码架构信息。
目前针对计算机系统存在多种编码架构。示例性的,编码架构可以包括:两层架构和三层架构。
其中,两层架构是指C/S(Client/Server,客户端/服务器)结构,包括两层:用户界面层和业务逻辑层,数据库服务器接受客户端发送的指令并对数据库进行查询,更新等操作,然后操作结果返回给客户端。由于两层架构中,客户端与服务器直接联系,因此两层架构的优点是灵活性高,缺点是安全性差。
三层架构是指利用中间件将用户界面、业务逻辑和数据逻辑分为三个不同的处理层:表示层、中间层和数据层。
表示层(用户界面):它的主要功能是实现用户交互和数据表示,为以后的处理收集数据,向第二层的业务逻辑请求调用核心服务处理,并显示处理结果。
中间层(业务逻辑):实现整个应用系统核心业务逻辑,通常把业务逻辑划分成一个个独立的模块,用中间件提供的应用程序编程接口API结合数据库提供的编程接口实现。客户端通过调用这些独立的模块实现相应的业务操作。
数据层(数据逻辑):数据库负责管理整个应用系统的数据资源,完成数据操作。
为了便于对开发任务信息进行划分,预先存储有预设编码架构信息,其中,预设编码架构信息中包含编码架构的类型、编码架构所包含的编码层次的数量以及每层编码层次的特征信息。
其中,每层编码层次的特征信息为用于表征该层次所具有的特征的信息,用户界面层次的特征信息可以为表征与用户交互的信息,业务逻辑层的特征信息可以为表征与待开发软件核心业务具有相关性的信息,数据逻辑层的特征信息可以为表征与数据资源的信息。
可以以任何计算机可识别的存储方式存储预设编码架构信息,示例性的,存储预设编码架构信息的方式可以为:以列表的形式存储预设编码架构信息。
以列表的形式存储预设编码架构信息,且,预设编码架构为两层架构为例,所存储的预设编码架构信息可以如下表所示:
Figure BDA0001716921680000111
由于开发软件时是要基于编码架构进行开发,因此,可以基于编码架构进对开发任务信息进行划分,为了基于编码架构进对开发任务信息进行划分,需要获得预先存储的预设编码架构信息。
S1022:确定预设编码架构信息包括的编码层次。
在获得了预设编码架构信息后,需要确定预设编码架构信息包括的编码层次。
例如:假设编码架构为两层架构,则编码架构包括的编码层次为两层:用户界面层和业务逻辑层;假设编码架构为三层层架构,则编码架构包括的编码层次为三层:表示层、中间层和数据层。
S1023:基于编码层次,对开发任务信息进行划分,得到多个子任务信息,其中,一个编码层次对应一个子任务信息。
在确定了编码层次后,即可基于编码层次,对开发任务信息进行划分,得到多个子任务信息,其中,一个编码层次对应一个子任务信息。
其中,基于编码层次,对开发任务信息进行划分,得到多个子任务信息的方式可以为:基于各个编码层次的特征信息,将开发任务信息中与各个特征信息匹配的信息划分为各个特征信息对应的子任务信息。
例如:假设编码架构为两层架构,两层架构包括用户界面层和业务逻辑层,假设待开发软件为企业管理系统软件,待开发软件所包括的业务有新闻公告业务、会议室管理业务、企业内部流程业务;
由于企业内部流程业务是需要与用户交互的,例如:报销需要填写报销单,因此,企业内部流程业务与用户界面层的特征信息匹配,由于企业管理系统软件的核心业务是管理业务,因此,除企业内部流程业务以外的新闻公告业务和会议室管理业务均与企业管理系统软件的核心业务具有相关性,因此,新闻公告业务和会议室管理业务与业务逻辑层的特征信息匹配;
则对开发任务信息进行划分,得到2个子任务信息,分别为:应用户界面层对应的子任务信息,该子任务信息包含:企业内部流程业务,业务逻辑层对应的子任务信息,该子任务信息包含:新闻公告业务和会议室管理业务。
由此,基于编码架构包括的编码层次,对开发任务信息进行划分,得到多个子任务信息。
第二种方式:
基于业务类型进行划分。
参见图3,步骤S102可以包括:
S1024:确定开发任务信息对应的业务类型。
一般来说,在确定开发任务信息时,已经预先设定好开发任务信息所涉及的多种业务,例如:开发任务信息为企业管理系统,即需要开发一个企业管理系统软件,预先设定企业管理系统包括:新闻公告业务、会议室管理业务、企业内部流程业务,企业内部流程业务又包括报销流程业务、请假流程业务和采购流程业务。
每种业务均对应有业务类型,且相同的业务类型在开发时一般具有相似或相同的特点,因此将其一起开发,更利于开发人员的操作,也可以提高开发效率,因此,在对开发任务信息进行划分时,可以基于业务类型进行划分。由于在确定开发任务信息时,已经预先设定好开发任务信息所涉及的多种业务,又由于每种业务均对应有业务类型,因此,每种业务所对应的业务类型也已经确定,因此,确定开发任务信息对应的业务类型可以为:将开发任务信息所涉及的多种业务所对应的业务类型确定为开发任务信息对应的业务类型。
开发任务信息对应的业务类型中,有一些业务类型属于单一业务类型,有一些业务类型属于多业务类型,其中,单一业务类型是指业务类型只有一种,多业务类型是指业务类型有至少两种。
例如:上述新闻公告业务的业务类型属于单一业务类型,企业内部流程业务的业务类型属于多业务类型。
为了基于业务类型进行划分,需要确定开发任务信息对应的业务类型。
例如:上述开发任务信息为企业管理系统,则确定开发任务信息对应的业务类型为:新闻公告业务类型、会议室管理业务类型、企业内部流程业务类型。
S1025:基于预业务类型,对开发任务信息进行划分,得到多个子任务信息。
在确定开发任务信息对应的业务类型后,即可基于业务类型,对开发任务信息进行划分,得到多个子任务信息。
步骤S1025,可以包括:
在业务类型属于单一业务类型的情况下,确定该业务类型对应一个子任务信息;
在业务类型属于多业务类型的情况下,确定该业务类型对应一个子任务信息,或者,确定该业务类型包括的每个子业务类型分别对应一个子任务信息,其中,所述多业务类型为业务类型有至少两种。
在业务类型属于单一业务类型的情况下,说明仅有一种业务类型,此时,确定该业务类型对应一个子任务信息。
例如:上述开发任务信息为企业管理系统,确定的开发任务信息对应的业务类型为:新闻公告业务类型、会议室管理业务类型、企业内部流程业务类型,由于新闻公告业务类型和会议室管理业务类型均属于单一业务类型,因此,确定新闻公告业务类型对应一个子任务信息,会议室管理业务类型对应一个子任务信息。
在业务类型属于多业务类型的情况下,说明业务类型有多种,此时,与单一业务类型相似,可以确定该业务类型对应一个子任务信息。
例如:上述开发任务信息为企业管理系统,确定的开发任务信息对应的业务类型为:新闻公告业务类型、会议室管理业务类型、企业内部流程业务类型,由于企业内部流程业务类型又包括报销流程业务类型、请假流程业务类型和采购流程业务类型,因此,企业内部流程业务类型属于多业务类型,此时,确定企业内部流程业务类型对应一个子任务信息。
由于针对于多业务类型,其内部功能复杂,且各个业务类型之间可能并不需要同时开发,因此,可以确定该业务类型包括的每个子业务类型分别对应一个子任务信息。
例如:上述开发任务信息为企业管理系统,确定的开发任务信息对应的业务类型为:新闻公告业务类型、会议室管理业务类型、企业内部流程业务类型,企业内部流程业务类型包括报销流程业务类型、请假流程业务类型和采购流程业务类型,确定报销流程业务类型对应一个子任务信息,确定请假流程业务类型对应一个子任务信息,确定采购流程业务类型对应一个子任务信息。
由此,基于开发任务信息对应的业务类型,对开发任务信息进行划分,得到多个子任务信息。
第三种方式:
基于编码架构和业务类型进行划分。
参见图4,步骤S102可以包括:
S1026:获取预设编码架构信息。
S1027:确定预设编码架构信息包括的编码层次。
步骤S1026-S1027与图2中的S1021-S1022类似,具体可以参见图2中的S1021-S1022的描述,在此不再赘述。
S1028:基于编码层次,对开发任务信息进行划分,得到多个目标任务信息,其中,一个编码层次对应一个目标任务信息。
在确定了编码层次后,即可基于编码层次,对开发任务信息进行划分,得到多个目标任务信息,其中,一个编码层次对应一个目标任务信息。
其中,基于编码层次,对开发任务信息进行划分,得到多个目标任务信息的方式可以为:基于各个编码层次的特征信息,将开发任务信息中与各个特征信息匹配的信息划分为各个特征信息对应的目标任务信息。
例如:假设编码架构为两层架构,两层架构包括用户界面层和业务逻辑层,假设待开发软件为企业管理系统软件,待开发软件所包括的业务有新闻公告业务、会议室管理业务、企业内部流程业务;
由于企业内部流程业务是需要与用户交互的,例如:报销需要填写报销单,因此,企业内部流程业务与用户界面层的特征信息匹配,由于企业管理系统软件的核心业务是管理业务,因此,除企业内部流程业务以外的新闻公告业务和会议室管理业务均与企业管理系统软件的核心业务具有相关性,因此,新闻公告业务和会议室管理业务与业务逻辑层的特征信息匹配;
则对开发任务信息进行划分,得到2个目标任务信息,分别为:应用户界面层对应的目标任务信息,该目标任务信息包含:企业内部流程业务,业务逻辑层对应的目标任务信息,该目标任务信息包含:新闻公告业务和会议室管理业务。
S1029:确定每个目标任务信息对应的业务类型。
由于编码架构是一个大的框架,基于编码架构对开发任务信息进行划分,所得到的目标任务信息的数量较少,例如:两层架构得到2个目标任务信息,三层架构得到3个目标任务信息,使得每个目标任务信息的开发内容较多,使得开发效率较低。为了提高开发效率,在基于编码架构进行划分后,可以基于业务类型再对每个目标任务信息进行划分。
一般来说,在确定开发任务信息时,已经预先设定好开发任务信息所涉及的多种业务,在得到目标任务信息后,每个目标任务信息所涉及的业务也就是已知的,又由于每种业务均对应有业务类型,因此,每种业务所对应的业务类型也已经确定,因此,确定目标信息对应的业务类型可以为:将目标任务信息所涉及的多种业务所对应的业务类型确定为目标任务信息对应的业务类型。
因此,在确定目标任务信息后,可以确定每个目标任务信息对应的业务类型。
例如:承接步骤S1028的例子,由于应用户界面层对应的目标任务信息所涉及的业务所对应的业务类型为企业内部流程业务类型,因此,确定应用户界面层对应的目标任务信息对应的业务类型为:企业内部流程业务类型;
由于业务逻辑层对应的目标任务信息所涉及的业务所对应的业务类型为新闻公告业务类型和会议室管理业务类型,因此,确定业务逻辑层对应的目标任务信息对应的业务类型为:新闻公告业务类型和会议室管理业务类型。
S1030:基于所确定的业务类型,对每个目标任务信息进行划分,得到多个子任务信息。
在确定每个目标任务信息对应的业务类型后,即可基于所确定的业务类型,对每个目标任务信息进行划分,得到多个子任务信息。
需要说明的是,在仅基于编码架构或业务类型进行划分的方式中,将对开发任务信息进行划分所得到的多个任务信息称之为子任务信息,在既基于编码架构又基于业务类型进行划分的方式中,将对开发任务信息进行划分所得到的多个任务信息称之为目标任务信息,将对目标任务信息再进行划分所得到的多个任务信息称之为子任务信息。
其中,基于所确定的业务类型,对每个目标任务信息进行划分,得到多个子任务信息的方式可以如图4所示,在此不再赘述。
例如:承接步骤S1029的例子,对应用户界面层对应的目标任务信息进行划分,由于企业内部流程业务类型属于多业务类型,所以确定企业内部流程业务类型对应一个子任务信息,或者,确定报销流程业务类型对应一个子任务信息,确定请假流程业务类型对应一个子任务信息,确定采购流程业务类型对应一个子任务信息;
对业务逻辑层对应的目标任务信息进行划分,由于新闻公告业务类型和会议室管理业务类型均属于单一业务类型,所以确定新闻公告业务类型对应一个子任务信息,会议室管理业务类型对应一个子任务信息。
由此,在基于编码架构包括的编码层次,对开发任务信息进行划分,得到多个目标任务信息的情况下,再基于目标任务信息对应的业务类型,对每个目标任务信息进行划分,得到多个子任务信息,相较于仅基于编码架构进行划分的方式,提高了开发效率。
S103:接收开发人员基于子任务信息编写的代码,生成子任务信息对应的程序。
在得到多个子任务信息后,可以输出提示信息,以提示开发人员已生成子任务信息,开发人员在接收到提示信息后,可以获知自身所要开发的子任务信息,并针对该子任务信息进行开发。
开发人员针对子任务信息进行开发的过程也就是编写代码的过程,开发人员开发完成后,就将编写完成的代码也就是基于子任务信息编写的代码发送至代码管理服务器。
代码管理服务器接收开发人员基于子任务信息编写的代码,生成子任务信息对应的程序。也就是说,代码管理服务器接收到多少个开发人员基于子任务信息编写的代码,就生成多少个子任务信息对应的程序。该生成的子任务信息对应的程序用于打包。
本发明实施中,获得开发任务信息,按照预设划分规则对开发任务信息进行划分,得到多个子任务信息,接收开发人员基于子任务信息编写的代码,生成子任务信息对应的程序。本发明中,在获得开发任务信息后,通过按照预设划分规则的方式对开发任务信息进行划分,避免了人为划分,缩短了划分周期,使得开发人员较快的得到自身的子任务信息,使得开发人员启动开发的时间较早,然后接收开发人员基于子任务信息编写的代码,生成子任务信息对应的程序,缩短了开发周期。
在图1所示方法的基础上,在步骤S103之后,参见图5,本发明实施例提供的程序生成方法还可以包括:
S104:接收打包任务指令,从子任务信息对应的程序中,确定打包任务指令所包含的待打包程序,将待打包程序发送至打包服务器,以使打包服务器对待打包程序进行打包部署。
需要说明的是,本发明实施例的应用场景中,包括打包服务器、任务管理服务器、代码管理服务器和测试服务器。
其中,打包服务器主要用于对需要打包的代码进行打包,并将打包后的程序包部署至测试服务器。
代码管理服务器主要用于对开发人员编写的代码进行管理,开发人员基于子任务信息编写的代码均发送至代码管理服务器,代码管理服务器将接收到的代码生成子任务信息对应的程序,所生成的子任务信息对应的程序可以用于进行打包,代码管理服务器存储该子任务信息对应的程序并生成任务。存储生成的任务的任务编号与程序的代码的对应关系,并将生成的任务发送至任务管理服务器。
任务管理服务器面向管理人员,用于接收代码管理服务器发送的任务,并对接收到的任务进行管理,接收管理人员的管理指令,生成待打包任务编号,其中,管理指令中指示有管理人员所选择的待打包任务。
测试服务器主要用于对打包后的程序包进行测试。
下面分别对打包和拆包进行介绍:
开发人员编写并提交的代码需要翻译成机器能够读懂的字节码,这个过程叫做编译,例如:开发人员用JAVA编写代码时,要将代码即扩展名为java的文件,编译成字节码即扩展名为class的文件。
由于字节码文件很多,不便于部署和管理,因而把某一类的字节码封装在一起,这个过程叫打包,例如:把java程序的字节码即扩展名为class的文件,封装在一起成为一个扩展名为jar的文件。
将打包生成的文件拆分成多个文件的过程叫做拆包。例如:将上述封装生成的jar文件拆分成多个jar文件。
当需要进行打包时,管理人员向打包服务器发送任务指令,打包服务器接收到该任务指令后,从任务管理服务器获取任务指令所包含的待打包任务编号。
打包服务器在获取带打包任务编号后,在打包部署界面的待打包任务栏中,展示待打包任务编号。
由于代码管理服务器中存储有任务编号与程序的代码的对应关系,因此,为了对待打包任务对应的待打包程序的代码进行打包,在展示打包任务编号后,打包服务器需要从代码管理服务器中,获得待打包任务编号对应的待打包程序,由于程序是基于代码生成的,因此,获得待打包任务编号对应的待打包程序就是获得待打包任务编号对应的待打包程序的代码。
其中,打包服务器从代码管理服务器中,获得待打包任务编号对应的待打包程序的方式为:发送打包任务指令至代码管理服务器,打包指令中包含待打包任务编号。
由于代码管理服务器存储有子任务信息对应的程序,因此,代码管理服务器接收该打包任务指令,可以从子任务信息对应的程序中,查找打包任务指令所包含的待打包任务编号对应的待打包程序即确定打包任务指令所包含的待打包程序,并将查找到的待打包程序发送至打包服务器,即将打包任务指令所包含的待打包程序发送至打包服务器,以使打包服务器对待打包程序进行打包部署。
由此,在接收打包任务指令后,通过将打包任务指令所包含的待打包程序发送至打包服务器的方式,使得打包服务器对待打包程序进行打包部署
其中,打包服务器对待打包程序进行打包部署,可以包括:
基于预设打包规则,对待打包程序的代码进行打包得到待测试程序包,将待测试程序包部署至测试服务器。
具体的,打包服务器可以通过打包工具对待打包程序的代码进行打包,示例性的,打包工具可以为maven工具。
上述基于预设打包规则,对待打包程序的代码进行打包得到待测试程序包,可以为:基于待打包程序的业务类型进行打包得到待测试程序包。具体的,基于预设打包规则,对待打包程序的代码进行打包得到待测试程序包,可以包括:
(1)确定待打包程序的业务类型。
一般来说,待开发程序会涉及多种业务,例如:待开发程序为企业管理系统,企业管理系统包括:新闻公告业务、会议室管理业务、企业内部流程业务,企业内部流程业务又包括报销流程业务、请假流程业务和采购流程业务。每种业务均对应有业务类型,由于相同的业务类型对应的程序在开发时一般具有相似或相同的特点,因此将其一起开发,更利于开发人员的操作,也可以提高开发效率,因此,在开发待开发程序时,可以根据业务类型,将待开发程序分成多个程序,然后记录待开发程序包括的各个程序的标识与业务类型的对应关系。
待开发程序所包括的各个程序中,有一些程序对应的业务类型为单一业务类型,有一些程序对应的业务类型为多业务类型,其中,单一业务类型是指程序对应的业务类型只有一种,多业务类型是指程序对应的业务类型有至少两种。
例如:上述新闻公告业务对应的程序对应的业务类型为单一业务类型,企业内部流程业务对应的程度对应的业务类型为多业务类型。
由于待打包程序可以为待开发程序中的部分程序或全部程序,因此,待打包程序对应的业务类型可能是单一业务类型也可能是多业务类型。
由于对于多业务类型的待打包程序来说,如果将该待打包程序对应的多种业务类型的代码整体打包并测试,如果多种业务类型中的某种类型的业务未通过测试,即使其它类型的业务均通过测试,该待打包程序也无法上线,因此,在对待打包程序的代码进行打包时,需要先确定待打包程序的业务类型,以便进行后续操作。
在开发待开发程序时,预先存储有待开发程序包括的各个程序的标识与业务类型的对应关系,因此,确定待打包程序的业务类型的方式可以为:确定待打包程序的标识,基于预先存储的待开发程序包括的各个程序的标识与业务类型的对应关系,确定待打包程序对应的业务类型。
示例性的,预先存储的待开发程序包括的各个程序的标识与业务类型的对应关系可以如下表所示:
程序的标识 业务类型
A 单一业务类型
B 多业务类型
(2):在待打包程序的业务类型为单一业务类型的情况下,将待打包程序的代码进行整体打包得到待测试程序包。
在确定待打包程序的业务类型为单一业务类型的情况下,说明该待打包程序对应的业务类型仅有一种,此时,将待打包程序的代码进行整体打包得到待测试程序包。
(4):在待打包程序的业务类型为多业务类型的情况下,将待打包程序的代码进行整体打包得到目标程序包,基于待打包程序包括的业务的业务类型对目标程序包进行拆包得到待测试程序包,或者,基于待打包程序包括的业务的属性信息对目标程序包进行拆包得到待测试程序包。
在确定待打包程序的业务类型为多业务类型的情况下,说明该待打包程序包括的业务的业务类型有多种,为了避免对待打包程序的上线影响,先将待打包程序的代码进行整体打包得到目标程序包,然后,对目标程序包进行拆包得到待测试程序包。
需要说明的是,对目标程序包进行拆包得到待测试程序包的方式有多种,包括但不限于以下几种:
第一种方式:
基于待打包程序包括的业务的业务类型对目标程序包进行拆包得到待测试程序包。
上述基于待打包程序包括的业务的业务类型对目标程序包进行拆包得到待测试程序包可以为:待打包程序包括多少种业务类型就拆分为多少个待测试程序包。具体为:
确定待打包程序包括的每个业务的业务类型;
将目标程序包中同一业务类型的业务的代码拆分为一个待测试程序包。
在开发待开发程序时,预先存储有待开发程序包括的各个程序的标识与各个程序包括的每个业务、以及业务的业务类型的对应关系,因此,确定待打包程序包括的每个业务的业务类型可以为:确定待打包程序的标识,基于预先存储的待开发程序包括的各个程序的标识与各个程序包括的每个业务、以及业务的业务类型的对应关系,确定待打包程序包括的每个业务的业务类型。
示例性的,预先存储的待开发程序包括的各个程序的标识与各个程序包括的每个业务、以及业务的业务类型的对应关系可以如下表所示:
Figure BDA0001716921680000211
Figure BDA0001716921680000221
由于目标程序包是将待打包程序的代码进行整体打包后得到的,因此,待打包程序包括的业务就是目标程序包包括的业务,因此,在确定待打包程序包括的每个业务的业务类型后,也就是在确定了目标程序包包括的每个业务的业务类型后,即可将目标程序包中同一业务类型的业务的代码拆分为一个待测试程序包。
例如:针对上表中待打包程序C对应的目标程序包来说,由于业务M和业务O的业务类型均为a,因此,可以将待打包程序C对应的目标程序包中的业务M的代码和业务O的代码拆分为一个待测试程序包,将业务N的代码拆分为一个待测试程序包,共拆分得到两个待测试程序包。
为了更清晰的了解上述基于业务类型进行拆包的过程,下面通过具体的业务实例来进行说明:
例如:假设待打包程序为企业内部流程业务对应的程序,则将待打包程序的代码整体打包得到目标程序包;
由于企业内部流程业务包括报销流程业务、请假流程业务和采购流程业务三种业务类型,因此,确定待打包程序包括的每个业务的业务类型即目标程序包包括的每个业务的业务类型为:报销流程业务类型、请假流程业务类型和采购流程业务类型;
将目标程序包中同一业务类型的业务的代码拆分为一个待测试程序包为:对应报销流程业务的待测试程序包、对应请假流程业务的待测试程序包和对应采购流程业务的待测试程序包。
由此,可以基于待打包程序包括的业务的业务类型对目标程序包进行拆包,将同一种业务类型的代码拆分为一个包,在进行测试时,可以对该包进行单独测试,不会对其它包产生影响,当测试通过后,该包可以单独上线,避免了将多种业务类型的代码进行整体打包后,所产生的某种业务未通过测试导致的待打包程序整体无法上线的情况的发生。
第二种方式:
基于待打包程序包括的业务的属性信息对目标程序包进行拆包得到待测试程序包。
上述基于待打包程序包括的业务的属性信息对目标程序包进行拆包得到待测试程序包,可以为:
确定待打包程序包括的业务的属性信息;
基于属性信息,确定各个业务之间的相关性;
将目标程序包中相关性大于预设阈值的业务的代码拆分为一个待测试程序包。
由于目标程序包包括的各个业务可能并不是独立存在的,一个业务可能与其它业务之间存在相关性的,因此,在对目标程序包进行拆包时,可以将相关性较大的业务拆为一个待测试程序包。
为了确定各个业务之间的相关性,需要确定目标程序包包括的业务的属性信息,由于目标程序包是将待打包程序的代码进行整体打包后得到的,因此,待打包程序包括的业务就是目标程序包包括的业务,因此,确定目标程序包包括的业务的属性信息也就是确定待打包程序包括的业务的属性信息。本发明实施中,业务的属性信息可以为业务的业务类型或业务的实现功能。
在开发待开发程序时,预先存储有待开发程序包括的各个程序的标识与各个程序包括的每个业务、以及业务的属性信息的对应关系,因此,确定待打包程序包括的业务的属性可以为:确定待打包程序的标识,基于预先存储的待开发程序包括的各个程序的标识与各个程序包括的每个业务、以及业务的属性信息的对应关系,确定待打包程序包括的每个业务的属性信息。
示例性的,预先存储的待开发程序包括的各个程序的标识与各个程序包括的每个业务、以及业务的属性信息的对应关系可以如下表所示:
Figure BDA0001716921680000231
Figure BDA0001716921680000241
在确定业务的属性信息之后,基于属性信息,确定各个业务之间的相关性,示例性的,基于属性信息,确定各个业务之间的相关性,可以为:计算各个业务的属性信息之间的相似度。
由于相关性较大的业务可能会具有相似或相同的特点,因此将其一起进行测试,更有利于测试人员的操作,也可以提高测试效率,因此,在确定各个业务之间的相关性后,可以将相关性大于预设阈值的业务的代码作为一个待测试程序包。
为了更清晰的了解上述基于业务的属性信息进行拆包的过程,下面通过具体的业务实例来进行说明:
例如:假设业务的属性信息为业务类型,假设待打包程序为企业内部流程业务对应的程序,则将待打包程序的代码整体打包得到目标程序包;
由于企业内部流程业务包括报销流程业务、请假流程业务和采购流程业务三种业务类型,因此,确定待打包程序包括的业务的属性信息即目标程序包包括的业务的属性信息为:报销流程业务类型、请假流程业务类型和采购流程业务类型;
由于采购后需要报销采购款,因此,报销流程业务与采购流程业务之间的相关性较大,而请假流程业务与报销流程业务之间的相关性较小,请假流程业务与采购流程业务之间的相关性较小,假设预设阈值为60%;
假设基于属性信息,确定各个业务之间的相关性为:报销流程业务与采购流程业务之间的相关性为90%,报销流程业务与请假流程业务之间的相关性为40%,请假流程业务和采购流程业务之间的相关性为30%;
将目标程序包中相关性大于预设阈值的业务的代码拆分为一个待测试程序包为:对应报销流程业务与采购流程业务的待测试程序包和对应请假流程业务的待测试程序包。
由此,可以基于业务的属性信息对目标程序包进行拆包,将具有相关性的业务的代码拆分为一个包,有利于后续测试操作,可以提高测试效率。
在得到待测程序包后,即可将待测试程序包部署至测试服务器。测试服务器在接收到待测试程序包即可对待测试程序包进行测试。
由于在将待测试程序包部署至测试服务器的过程中,会对测试服务器中的某些程序进行修改,而这些被修改的程序需要在测试服务器重启后才能生效,同时,在将待测试程序包部署至测试服务器的过程中,还有可能导致测试服务器中当前正在运行的某些功能失效,因此,为了使上述两种情况所导致的失效的程序以及失效的功能生效,在测试完成后,可以对测试服务器进行重启。
又由于测试服务器可能同时对其它的待测试程序包进行测试,因此,如果在此时重启测试服务器将导致无法对其它待测试程序进行测试,因此,可以在闲时定时重启测试服务器,此处的闲时为测试服务器使用较少的时间,例如:定时晚上18:00-24:00之间重启测试服务器。
测试服务器的数量可以为一个也可以为多个,由于当测试服务器为一个时,打包服务器将所有的待测试程序包均部署至该测试服务器进行测试,使得该测试服务器的负载较大,测试效率较低,因此,为了提高测试效率,可以设置测试服务器为多个。
当测试服务器为多个时,上述将待测试程序包部署至测试服务器,可以为:基于待测试程序包的功能进行部署,具体的,待测试程序包部署至测试服务器可以包括:
(A):确定待测试程序包对应的目标功能。
一般来说,待开发程序会涉及多种业务,每一种或几种业务可以实现一个功能,因此,在开发待开发程序时,会预先确定待开发程序包括的各个程序的标识与功能的对应关系。
示例性的,预先确定的待开发程序包括的各个程序的标识与功能的对应关系可以如下表所示:
程序的标识 功能
E 功能R
F 功能S
由于对于每个功能的测试的内容可能不同,如果将不同的功能放置在不同的测试服务器进行测试,可以提高测试效率,因此,预先设定不同的测试服务器对不同的功能进行测试,即设定了功能与测试服务器的预设对应关系。
示例性的,预先设定的功能与测试服务器的预设对应关系可以如下表所示:
测试服务器 功能
测试服务器X 功能R
测试服务器Y 功能S
为了确定需要将待测试程序包部署至哪一个测试服务器进行测试,需要确定待测试程序包对应的目标功能,由于待测试程序包是对待打包程序的代码进行打包得到的,因此,确定待测试程序包对应的目标功能也就是确定待打包程序对应的目标功能。确定待测试程序包对应的目标功能的方式可以为:确定待测试程序包对应的待打包程序的标识,基于预设的标识与功能的对应关系,确定待测试程序包对应的目标功能。
(B):根据功能与测试服务器的预设对应关系,确定目标功能对应的测试服务器。
在确定了待测试程序包对应的目标功能后,即可根据功能与测试服务器的预设对应关系,确定目标功能对应的测试服务器。
(C):将待测试程序包部署至目标功能对应的测试服务器。
在确定了目标功能对应的测试服务器后,即获知了该待测试程序包对应的目标功能需要在哪一个测试服务器进行测试,此时,将待测试程序包部署至目标功能对应的测试服务器,以便进行测试。
为了更清晰的了解上述待测试程序包部署至测试服务器的过程,下面通过具体的业务实例来进行说明:
例如:假设待开发程序为企业管理系统,假设预先确定的待开发程序包括的各个程序的标识与功能的对应关系如下表所示:
程序的标识 功能
新闻公告业务对应的程序的标识J 新闻公告功能
会议室管理业务对应的程序的标识K 会议室管理功能
企业内部流程业务对应的程序的标识L 内部流程功能
假设待测试程序包为对企业内部流程业务对应的程序的代码进行打包后的程序包,则确定待测试程序对应的待打包程序的标识为L,由于L对应的功能为内部流程功能,因此,确定待测试程序包对应的目标功能为内部流程功能;
假设预先设定的功能与测试服务器的预设对应关系如下表所示:
测试服务器 功能
测试服务器X 新闻公告功能
测试服务器Y 会议室管理功能
测试服务器Z 内部流程功能
则根据功能与测试服务器的预设对应关系,确定目标功能即内部流程功能对应的测试服务器为:测试服务器Z;
将待测试程序包部署至目标功能对应的测试服务器Z。
由此,在测试服务器为多个时,可以基于待测试程序包的功能进行测试部署,相比于相关技术中,仅存在一个测试服务器的情况,提高了测试效率,同时,相比于手动进行测试部署的方式,提高了测试部署效率。
由于当需要测试的待测试程序包较多,或者,需要测试的测试功能较多时,每个功能仅通过一台测试服务器进行测试,可能导致运行缓慢,进一步使得测试效率较低,因此,可以设置测试服务器包括多个测试服务器集群,通过集群的方式来对待测试程序包进行测试。
当测试服务器包括多个测试服务器集群时,上述将待测试程序包部署至测试服务器,可以包括:
确定待测试程序包对应的目标功能;
根据功能与测试服务器集群的预设对应关系,确定目标功能对应的测试服务器集群;
将待测试程序包部署至目标功能对应的测试服务器集群。
一般来说,待开发程序会涉及多种业务,每一种或几种业务可以实现一个功能,因此,在开发待开发程序时,会预先确定待开发程序包括的各个程序的标识与功能的对应关系。
示例性的,预先确定的待开发程序包括的各个程序的标识与功能的对应关系可以如下表所示:
程序的标识 功能
E 功能R
F 功能S
由于对于每个功能的测试的内容可能不同,如果将不同的功能放置在不同的测试服务器集群进行测试,可以提高测试效率,因此,预先设定不同的测试服务器集群对不同的功能进行测试,即设定了功能与测试服务器集群的预设对应关系。
示例性的,预先设定的功能与测试服务器集群的预设对应关系可以如下表所示:
测试服务器集群 功能
测试服务器集群W 功能R
测试服务器集群U 功能S
为了确定需要将待测试程序包部署至哪一个测试服务器集群进行测试,需要确定待测试程序包对应的目标功能,由于待测试程序包是对待打包程序的代码进行打包得到的,因此,确定待测试程序包对应的目标功能也就是确定待打包程序对应的目标功能。确定待测试程序包对应的目标功能的方式可以为:确定待测试程序包对应的待打包程序的标识,基于预设的标识与功能的对应关系,确定待测试程序包对应的目标功能。
在确定了待测试程序包对应的目标功能后,即可根据功能与测试服务器集群的预设对应关系,确定目标功能对应的测试服务器集群。
在确定了目标功能对应的测试服务器集群后,即获知了该待测试程序包对应的目标功能需要在哪一个测试服务器集群进行测试,此时,将待测试程序包部署至目标功能对应的测试服务器集群,以便进行测试。
由于一个测试服务器集群中一般会包括一个主服务器和多个从服务器,主服务器用于对多个从服务器进行控制,因此,上述将待测试程序包部署至目标功能对应的测试服务器集群,可以为:将待测试程序包部署至目标功能对应的测试服务器集群中的主服务器,以使主服务器根据负载均衡原则从多个从服务器中确定目标从服务器,将待测试程序包部署至目标从服务器。
为了更清晰的了解上述待测试程序包部署至测试服务器集群的过程,下面通过具体的业务实例来进行说明:
例如:假设待开发程序为企业管理系统,假设预先确定的待开发程序包括的各个程序的标识与功能的对应关系如下表所示:
程序的标识 功能
新闻公告业务对应的程序的标识J 新闻公告功能
会议室管理业务对应的程序的标识K 会议室管理功能
企业内部流程业务对应的程序的标识L 内部流程功能
假设待测试程序包为对企业内部流程业务对应的程序的代码进行打包后的程序包,则确定待测试程序对应的待打包程序的标识为L,由于L对应的功能为内部流程功能,因此,确定待测试程序包对应的目标功能为内部流程功能;
假设预先设定的功能与测试服务器集群的预设对应关系如下表所示:
Figure BDA0001716921680000291
Figure BDA0001716921680000301
则根据功能与测试服务器集群的预设对应关系,确定目标功能即内部流程功能对应的测试服务器集群为:测试服务器集群V;
将待测试程序包部署至目标功能对应的测试服务器集群V;
假设测试服务器集群V包括主服务器A、从服务器B和从服务器C,假设主服务器A根据负载均衡原则从多个从服务器中确定的目标从服务器为从服务器B,则上述将待测试程序包部署至目标功能对应的测试服务器集群V可以为:将待测试程序包部署至目标功能对应的测试服务器集群V中的主服务器A,以使主服务器A将待测试程序包部署至目标从服务器B。
由此,在测试服务器包括多个测试服务器集群时,可以使一个功能通过一个测试服务器集群来进行测试,这种通过集群的方式实现对待测试程序包进行测试部署,相比于仅一个功能通过一个测试服务器进行测试的情况,提高了测试效率。
由此,打包服务器通过基于预设打包规则,对待打包程序的代码进行打包的方式得到待测试程序包,并将待测试程序包部署至测试服务器,达到了自动化打包部署的目的,无需手动进行打包,减少了打包部署的工作量,同时减少了耗费时间,由于是自动打包部署,降低了部署时的出错率,提高了打包部署的效率。
打包服务器在将待测试程序包部署至测试服务器之后,还可以接收代码管理服务器的待打包任务对应的页面文件,将页面文件部署至测试服务器。
由于所开发的待开发程序需要以页面的形式进行显示,因此,在开发待开发程序时,开发人员所开发的不仅包括程序的代码,还包括页面文件。开发人员提交编写完成的代码至代码管理服务器时,还需要提交针对该代码对应的页面文件。
代码管理服务器接收开发人员提交的编写完成的代码以及对应的页面文件,生成任务,存储生成的任务的任务编号与程序的代码的对应关系,存储任务编号与页面文件的对应关系。
在进行打包部署时,不仅需要对打包后的程序包进行部署,还需要对页面文件进行部署。因此,为了对页面文件进行部署,打包服务器在将待测试程序包部署至测试服务器之后,需要获得待打包任务对应的页面文件。其中,获得待打包任务对应的页面文件的方式可以为接收代码管理服务器发送的待打包任务对应的页面文件。
由于待打包任务的任务编号与页面文件存在对应关系,因此,为了获得待打包任务对应的页面文件,在将待测试程序包部署至测试服务器之后,打包服务器可以向代码管理服务器发送获取请求,为了使代码管理服务器获知获取哪一个任务对应的页面文件,设置获取请求中携带有待打包任务的任务编号。
由于代码管理服务器中存储有任务编号与页面文件的对应关系,因此,代码管理服务器在接收到获取请求后,可以根据任务编号与页面文件的对应关系确定待打包任务的任务编号对应的页面文件,并将确定的页面文件发送至打包服务器。
打包服务器接收代码管理服务器发送的页面文件,即获得了待打包任务对应的页面文件。
示例性的,页面文件可以包括HTML(HyperText Markup Language,超文本标记语言)文件、CSS(Cascading Style Sheets,层叠样式表)文件或JS(Javascript,脚本)文件中的至少一种。
在接收代码管理服务器发送的待打包任务对应的页面文件后,即可将页面文件部署至测试服务器。
由此,在将待测试程序包部署至测试服务器的同时,将页面文件也部署至测试服务器,以便于对页面文件进行测试。
相对于上述方法实施例,图6为本发明实施例提供的程序生成装置的一种结构示意图,该装置应用于代码管理服务器,可以包括:
获得模块601,用于获得开发任务信息;
划分模块602,用于按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息;
接收模块603,用于接收开发人员基于所述子任务信息编写的代码,生成所述子任务信息对应的程序。
本发明实施中,获得开发任务信息,按照预设划分规则对开发任务信息进行划分,得到多个子任务信息,接收开发人员基于子任务信息编写的代码,生成子任务信息对应的程序。本发明中,在获得开发任务信息后,通过按照预设划分规则的方式对开发任务信息进行划分,避免了人为划分,缩短了划分周期,使得开发人员较快的得到自身的子任务信息,使得开发人员启动开发的时间较早,然后接收开发人员基于子任务信息编写的代码,生成子任务信息对应的程序,缩短了开发周期。
在本发明的一种实现方式中,所述划分模块602,可以包括:
第一预设编码架构信息获得单元,用于获得预设编码架构信息;
第一编码层次确定单元,用于确定所述预设编码架构信息包括的编码层次;
第一划分单元,用于基于所述编码层次,对所述开发任务信息进行划分,得到多个子任务信息,其中,一个编码层次对应一个子任务信息。
在本发明的一种实现方式中,所述划分模块602,可以包括:
第一业务类型确定单元,用于确定所述开发任务信息对应的业务类型;
第二划分单元,用于基于所述业务类型,对所述开发任务信息进行划分,得到多个子任务信息。
在本发明的一种实现方式中,所述第二划分单元,可以具体用于:
在业务类型属于单一业务类型的情况下,确定该业务类型对应一个子任务信息;
在业务类型属于多业务类型的情况下,确定该业务类型对应一个子任务信息,或者,确定该业务类型包括的每个业务类型分别对应一个子任务信息,其中,所述多业务类型为业务类型有至少两种。
在本发明的一种实现方式中,所述划分模块602,可以包括:
第二预设编码架构信息获得单元,用于获得预设编码架构信息;
第二编码层次确定单元,用于确定所述预设编码架构信息包括的编码层次;
第三划分单元,用于基于所述编码层次,对所述开发任务信息进行划分,得到多个目标任务信息,其中,一个编码层次对应一个目标任务信息;
第二业务类型确定单元,用于确定每个目标任务信息对应的业务类型;
第四划分单元,用于基于所确定的业务类型,对每个目标任务信息进行划分,得到多个子任务信息。
在本发明的一种实现方式中,所述装置还可以包括:
指令接收模块,用于在所述生成程序后,接收打包任务指令,从所述子任务信息对应的程序中,确定所述打包任务指令所包含的待打包程序,将所述待打包程序发送至打包服务器,以使所述打包服务器对所述待打包程序进行打包部署。
本发明实施例还提供了一种电子设备,如图7所示,包括处理器701和存储器702;
存储器702,用于存放计算机程序;
处理器701,用于执行存储器上所存放的程序时,实现应用于代码管理服务器的程序生成方法,该方法包括:
获得开发任务信息;
按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息;
接收开发人员基于所述子任务信息编写的代码,生成所述子任务信息对应的程序。
本发明实施中,电子设备获得开发任务信息,按照预设划分规则对开发任务信息进行划分,得到多个子任务信息,接收开发人员基于子任务信息编写的代码,生成子任务信息对应的程序。本发明中,在获得开发任务信息后,通过按照预设划分规则的方式对开发任务信息进行划分,避免了人为划分,缩短了划分周期,使得开发人员较快的得到自身的子任务信息,使得开发人员启动开发的时间较早,然后接收开发人员基于子任务信息编写的代码,生成子任务信息对应的程序,缩短了开发周期。
在本发明的一种实现方式中,所述按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息的步骤,可以包括:
获得预设编码架构信息;
确定所述预设编码架构信息包括的编码层次;
基于所述编码层次,对所述开发任务信息进行划分,得到多个子任务信息,其中,一个编码层次对应一个子任务信息。
在本发明的一种实现方式中,所述按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息的步骤,可以包括:
确定所述开发任务信息对应的业务类型;
基于所述业务类型,对所述开发任务信息进行划分,得到多个子任务信息。
在本发明的一种实现方式中,所述基于所述业务类型,对所述开发任务信息进行划分,得到多个子任务信息的步骤,可以包括:
在业务类型属于单一业务类型的情况下,确定该业务类型对应一个子任务信息;
在业务类型属于多业务类型的情况下,确定该业务类型对应一个子任务信息,或者,确定该业务类型包括的每个业务类型分别对应一个子任务信息,其中,所述多业务类型为业务类型有至少两种。
在本发明的一种实现方式中,所述按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息的步骤,可以包括:
获得预设编码架构信息;
确定所述预设编码架构信息包括的编码层次;
基于所述编码层次,对所述开发任务信息进行划分,得到多个目标任务信息,其中,一个编码层次对应一个目标任务信息;
确定每个目标任务信息对应的业务类型;
基于所确定的业务类型,对每个目标任务信息进行划分,得到多个子任务信息。
在本发明的一种实现方式中,在所述生成程序的步骤之后,所述方法还可以包括:
接收打包任务指令,从所述子任务信息对应的程序中,确定所述打包任务指令所包含的待打包程序,将所述待打包程序发送至打包服务器,以使所述打包服务器对所述待打包程序进行打包部署。
上述电子设备提到的存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现应用于代码管理服务器的程序生成方法,该方法包括:
获得开发任务信息;
按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息;
接收开发人员基于所述子任务信息编写的代码,生成所述子任务信息对应的程序。
本发明实施中,计算机程序被处理器执行时获得开发任务信息,按照预设划分规则对开发任务信息进行划分,得到多个子任务信息,接收开发人员基于子任务信息编写的代码,生成子任务信息对应的程序。本发明中,在获得开发任务信息后,通过按照预设划分规则的方式对开发任务信息进行划分,避免了人为划分,缩短了划分周期,使得开发人员较快的得到自身的子任务信息,使得开发人员启动开发的时间较早,然后接收开发人员基于子任务信息编写的代码,生成子任务信息对应的程序,缩短了开发周期。
在本发明的一种实现方式中,所述按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息的步骤,可以包括:
获得预设编码架构信息;
确定所述预设编码架构信息包括的编码层次;
基于所述编码层次,对所述开发任务信息进行划分,得到多个子任务信息,其中,一个编码层次对应一个子任务信息。
在本发明的一种实现方式中,所述按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息的步骤,可以包括:
确定所述开发任务信息对应的业务类型;
基于所述业务类型,对所述开发任务信息进行划分,得到多个子任务信息。
在本发明的一种实现方式中,所述基于所述业务类型,对所述开发任务信息进行划分,得到多个子任务信息的步骤,可以包括:
在业务类型属于单一业务类型的情况下,确定该业务类型对应一个子任务信息;
在业务类型属于多业务类型的情况下,确定该业务类型对应一个子任务信息,或者,确定该业务类型包括的每个业务类型分别对应一个子任务信息,其中,所述多业务类型为业务类型有至少两种。
在本发明的一种实现方式中,所述按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息的步骤,可以包括:
获得预设编码架构信息;
确定所述预设编码架构信息包括的编码层次;
基于所述编码层次,对所述开发任务信息进行划分,得到多个目标任务信息,其中,一个编码层次对应一个目标任务信息;
确定每个目标任务信息对应的业务类型;
基于所确定的业务类型,对每个目标任务信息进行划分,得到多个子任务信息。
在本发明的一种实现方式中,在所述生成程序的步骤之后,所述方法还可以包括:
接收打包任务指令,从所述子任务信息对应的程序中,确定所述打包任务指令所包含的待打包程序,将所述待打包程序发送至打包服务器,以使所述打包服务器对所述待打包程序进行打包部署。
图8为本发明实施例提供的程序打包部署系统的结构示意图,该系统包括代码管理服务器801和打包服务器802,其中,
所述代码管理服务器801,用于获得开发任务信息,按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息,接收开发人员基于所述子任务信息编写的代码,生成所述子任务信息对应的程序,接收打包任务指令,从所述子任务信息对应的程序中,确定所述打包任务指令所包含的待打包程序,将所述待打包程序发送至打包服务器802;
所述打包服务器802,用于接收所述待打包程序,对所述待打包程序进行打包部署。
本发明实施中,代码管理服务器获得开发任务信息,按照预设划分规则对开发任务信息进行划分,得到多个子任务信息,接收开发人员基于子任务信息编写的代码,生成子任务信息对应的程序,接收打包任务指令,从子任务信息对应的程序中,确定打包任务指令所包含的待打包程序,将待打包程序发送至打包服务器,打包服务器对待打包程序进行打包部署。本发明中,代码管理服务器在获得开发任务信息后,通过按照预设划分规则的方式对开发任务信息进行划分,避免了人为划分,缩短了划分周期,使得开发人员较快的得到自身的子任务信息,使得开发人员启动开发的时间较早,然后接收开发人员基于子任务信息编写的代码,生成子任务信息对应的程序,缩短了开发周期。并在接收到打包任务指令时,将打包任务指令所包含的待打包程序发送至打包服务器,以使打包服务器对待打包程序进行打包部署。
在本发明的一个实施方式中,所述代码管理服务器可以具体用于:
获得预设编码架构信息;
确定所述预设编码架构信息包括的编码层次;
基于所述编码层次,对所述开发任务信息进行划分,得到多个子任务信息,其中,一个编码层次对应一个子任务信息。
在本发明的一个实施方式中,所述代码管理服务器可以具体用于:
确定所述开发任务信息对应的业务类型;
基于所述业务类型,对所述开发任务信息进行划分,得到多个子任务信息。
在本发明的一个实施方式中,所述代码管理服务器可以具体用于:
在业务类型属于单一业务类型的情况下,确定该业务类型对应一个子任务信息;
在业务类型属于多业务类型的情况下,确定该业务类型对应一个子任务信息,或者,确定该业务类型包括的每个业务类型分别对应一个子任务信息,其中,所述多业务类型为业务类型有至少两种。
在本发明的一个实施方式中,所述代码管理服务器可以具体用于:
获得预设编码架构信息;
确定所述预设编码架构信息包括的编码层次;
基于所述编码层次,对所述开发任务信息进行划分,得到多个目标任务信息,其中,一个编码层次对应一个目标任务信息;
确定每个目标任务信息对应的业务类型;
基于所确定的业务类型,对每个目标任务信息进行划分,得到多个子任务信息。
在本发明的一个实施方式中,还可以包括测试服务器;
所述打包服务器802,具体用于接收所述待打包程序,基于预设打包规则,对所述待打包程序的代码进行打包得到待测试程序包,将所述待测试程序包部署至测试服务器;
所述测试服务器,用于接收所述待测试程序,对所述待测试程序进行测试。
在本发明的一个实施方式中,所述打包服务器802,还用于在将所述待测试程序包部署至测试服务器之后,接收所述代码管理服务器发送的所述待打包任务对应的页面文件,将所述页面文件部署至所述测试服务器;
所述测试服务器,还用于接收所述页面文件,对所述页面文件进行测试。
在本发明的一个实施方式中,所述打包服务器802,具体用于确定所述待打包程序的业务类型;
在所述待打包程序的业务类型为单一业务类型的情况下,将所述待打包程序的代码进行整体打包得到待测试程序包;
在所述待打包程序的业务类型为多业务类型的情况下,将所述待打包程序的代码进行整体打包得到目标程序包,基于所述待打包程序包括的业务的业务类型对所述目标程序包进行拆包得到待测试程序包,或者,基于所述待打包程序包括的业务的属性信息对所述目标程序包进行拆包得到待测试程序包。
在本发明的一个实施方式中,所述打包服务器802,具体用于确定所述待打包程序包括的每个业务的业务类型,将目标程序包中同一业务类型的业务的代码拆分为一个待测试程序包。
在本发明的一个实施方式中,所述打包服务器802,具体用于确定所述待打包程序包括的业务的属性信息,基于所述属性信息,确定各个业务之间的相关性,将目标程序包中相关性大于预设阈值的业务的代码拆分为一个待测试程序包。
在本发明的一个实施方式中,还包括代码库;
所述打包服务器802,还用于在获得所述待打包任务对应的待打包程序的代码后,将所述待打包程序的代码发送至所述代码库;
所述代码库,用于接收所述待打包程序的代码,存储所述待打包程序的代码。
由于开发人员所开发的代码之间是有依赖关系的,也就是说,某一开发人员所开发的代码,其它开发人员可能需要获得该代码,并在该代码的基础上进行开发,因此,打包服务器在获得待打包任务对应的待打包程序的代码后,可以将待打包程序的代码发送至代码库,代码库接收待打包程序的代码,存储待打包程序的代码。其中,这里所说的代码库也就是依赖库。
由此,通过将待打包程序的代码发送至代码库的方式,为下一次的开发使用提供了代码基础。
在本发明的一个实施方式中,所述代码管理服务器安装有版本管理SVN系统。
在本发明的一个实施方式中,所述测试服务器为多个;
所述打包服务器802,具体用于确定所述待打包程序对应的目标功能,根据功能与测试服务器的预设对应关系,确定所述目标功能对应的测试服务器,将所述待测试程序包部署至所述目标功能对应的测试服务器。
在本发明的一个实施方式中,所述测试服务器包括多个测试服务器集群;
所述打包服务器,具体用于确定所述待测试程序包对应的目标功能,根据功能与测试服务器集群的预设对应关系,确定所述目标功能对应的测试服务器集群,将所述待测试程序包部署至所述目标功能对应的测试服务器集群。
在本发明的一个实施方式中,还包括发布服务器;
所述打包服务器,还用于在打包得到待测试程序包后,将所述待测试程序包发送至所述发布服务器;
所述发布服务器,用于接收所述待测试程序包,对所述待测试程序包进行生产部署。
为了将程序包上线,本发明实施例中还设置有发布服务器,由于有时开发人员仅是针对较小问题做的小改动,不需要进行测试,可以达到快速上线以及快速应用的目的,此时,打包服务器在对待打包程序的代码进行打包得到待测试程序包后,可以不经过测试,直接将待测试程序包发送给发布服务器,发布服务器在接收到待测试程序包,即可对待测试程序包进行生产部署。
这种不经测试直接进行生产部署的方式,由于可以达到快速上线的目的,因此,可以适用于小型应用场景或对稳定性容忍度较高的环境,例如:公司内部系统。
例如:假设打包服务器对待打包程序的代码进行打包得到待测试程序包为程序包A,则打包服务器在打包得到程序包A后,将程序包A发送至发布服务器,发布服务器接收程序包A,对程序包A进行生产部署。
由此,打包服务器可以在打包得到待测试程序包后,不经测试,直接将待测试程序包发送至发布服务器,以达到快速上线以及快速应用的目的。
在本发明的一个实施方式中,还包括发布服务器;
所述测试服务器,还用于将测试成功的程序包部署至所述发布服务器;
所述发布服务器,用于接收所述测试成功的程序包,并对所述测试成功的程序包进行生产部署。
为了将程序包上线,本发明实施例中还设置有发布服务器,由于将测试成功的程序包进行发布,可以减少程序出现问题的概率,因此,在打包服务器对待打包程序的代码进行打包得到待测试程序包后,打包服务器将待测试程序包发送至测试服务器。
测试服务器对待测试程序包进行测试,生成针对待测试程序包的测试指标结果,将生成的测试指标结果与根据项目需求制定的测试成功标准结果进行对比,如果测试指标结果与测试成功标准结果符合,说明测试指标结果符合项目的要求,此时测试成功,确定该待测试程序包为测试成功的程序包,测试服务器将该测试成功的程序包发送至发布服务器,发布服务器接收该测试成功的程序包,并对该测试成功的程序包进行生产部署,以更新上线。
如果测试指标结果与测试成功标准结果不符合,说明测试指标结果不符合项目的要求,此时测试失败,则不再将该测试失败的程序包进行生产部署。
例如:假设打包服务器对待打包程序的代码进行打包得到待测试程序包为程序包A,则打包服务器在打包得到程序包A后,将程序包A发送至测试服务器;
测试服务器接收程序包A,对程序包A进行测试,生成针对程序包A的测试指标结果,将生成的测试指标结果与根据项目需求制定的测试成功标准结果进行对比;
假设测试指标结果与测试成功标准结果符合,确定程序包A为测试成功的程序包,测试服务器将测试成功的程序包A发送至发布服务器;
发布服务器接收测试成功的程序包A,对测试成功的程序包A进行生产部署。
由此,打包服务器可以在打包得到待测试程序包后,将待测试服务器发送至测试服务器,测试服务器将测试成功的程序包发送至发布服务器,保证了程序上线的稳定性。
由于在产品发布时,发布服务器需要将产品发布至多个平台,如果发布服务器为一个,则该发布服务器需要负责将产品发布至所有的平台,使得该发布服务器的负载较大,处理效率较低,因此,为了提高处理效率,可以设置发布服务器为多个。
由此,通过设置发布服务器为多个的方式,提升了处理速度。
为了更好的对本发明实施例进行理解,下面通过一具体实施例进行介绍:
例如:如图9所示,程序打包部署系统包括打包服务器901、测试服务器902、任务管理服务器903、代码管理服务器904、代码库905、发布服务器906和数据库907;
通过上述程序打包部署系统进行打包部署,测试部署以及生产部署的过程为:
1、多个开发人员从代码库905中下载依赖代码,代码库是放置其它开发人员已开发的源代码的数据库,依赖代码为代码库中所存储的代码;
2、多个开发人员基于项目需求以及任务分配以及所下载的依赖代码进行共同编码,并将共同编码编写完成的代码提交至代码管理服务器904,生成任务;
3、管理人员基于开发项目的需求,从任务中确定待打包任务,发送管理指令至任务管理服务器903,任务管理服务器903接收管理人员的管理指令,生成待打包任务编号,其中,管理指令中携带有待打包任务。
4、管理人员向打包服务器901发送任务指令;
5、打包服务器901接收到该任务指令后,从任务管理服务器903获取任务指令所包含的待打包任务编号,在打包部署界面的待打包任务栏中,展示待打包任务编号。
6、打包服务器901从代码管理服务器904中,获取待打包任务编号对应的待打包程序的代码,基于预设打包规则,对待打包程序的代码进行打包得到待测试程序包;
7、将待测试程序包部署至测试服务器902,测试服务器902对待测试程序包进行测试,生成针对待测试程序包的测试指标结果,将生成的测试指标结果与根据项目需求制定的测试成功标准结果进行对比,如果测试指标结果与测试成功标准结果符合,测试成功,确定该待测试程序包为测试成功的程序包,如果测试指标结果与测试成功标准结果不符合,测试失败,则不再将该测试失败的程序包进行生产部署;
8、打包服务器901将待打包程序的代码发送至代码库905,代码库905存储待打包程序的代码。
9、打包服务器901记录包括待打包任务的执行日期、执行人员、执行情况的编译打包的信息以及待测试程序包至数据库907,数据库907存储编译打包的信息以及待测试程序包,其中,编译打包的信息可以以日志形式记录;
10、测试服务器902将测试成功的程序包部署至发布服务器906,发布服务器906接收测试成功的程序包,对测试成功的程序包进行生产部署。
11、用户访问上线后的应用。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (30)

1.一种程序生成方法,其特征在于,应用于代码管理服务器,所述方法包括:
获得开发任务信息;
按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息;
接收开发人员基于所述子任务信息编写的代码,生成所述子任务信息对应的程序;
所述按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息,包括:
基于预设编码架构信息,和/或,所述开发任务信息的业务类型,对所述开发任务信息进行划分,得到多个子任务信息;其中,所述预设编码架构信息包括:编码架构的类型、编码架构所包含的编码层次的数量以及每层编码层次的特征信息;所述开发任务信息的业务类型为:所述开发任务信息所涉及的多种业务所对应的业务类型;所述编码架构包括两层架构和三层架构,两层架构包括:用户界面层和业务逻辑层;三层架构包括:表示层、中间层和数据层;
其中,所述基于预设编码架构信息,和,所述开发任务信息的业务类型,对所述开发任务信息进行划分,得到多个子任务信息,包括:
基于预设编码架构信息,对所述开发任务信息进行划分,得到多个目标任务信息;基于每个目标任务信息对应的业务类型,对每个目标任务信息进行划分,得到多个子任务信息。
2.根据权利要求1所述的方法,其特征在于,所述按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息的步骤,包括:
获得预设编码架构信息;
确定所述预设编码架构信息包括的编码层次;
基于所述编码层次,对所述开发任务信息进行划分,得到多个子任务信息,其中,一个编码层次对应一个子任务信息。
3.根据权利要求1所述的方法,其特征在于,所述按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息的步骤,包括:
确定所述开发任务信息对应的业务类型;
基于所述业务类型,对所述开发任务信息进行划分,得到多个子任务信息。
4.根据权利要求3所述的方法,其特征在于,所述基于所述业务类型,对所述开发任务信息进行划分,得到多个子任务信息的步骤,包括:
在业务类型属于单一业务类型的情况下,确定该业务类型对应一个子任务信息;
在业务类型属于多业务类型的情况下,确定该业务类型对应一个子任务信息,或者,确定该业务类型包括的每个业务类型分别对应一个子任务信息,其中,所述多业务类型为业务类型有至少两种。
5.根据权利要求1所述的方法,其特征在于,所述按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息的步骤,包括:
获得预设编码架构信息;
确定所述预设编码架构信息包括的编码层次;
基于所述编码层次,对所述开发任务信息进行划分,得到多个目标任务信息,其中,一个编码层次对应一个目标任务信息;
确定每个目标任务信息对应的业务类型;
基于所确定的业务类型,对每个目标任务信息进行划分,得到多个子任务信息。
6.根据权利要求1所述的方法,其特征在于,在所述生成所述子任务信息对应的程序的步骤之后,所述方法还包括:
接收打包任务指令,从所述子任务信息对应的程序中,确定所述打包任务指令所包含的待打包程序,将所述待打包程序发送至打包服务器,以使所述打包服务器对所述待打包程序进行打包部署。
7.一种程序生成装置,其特征在于,应用于代码管理服务器,所述装置包括:
获得模块,用于获得开发任务信息;
划分模块,用于按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息;
接收模块,用于接收开发人员基于所述子任务信息编写的代码,生成所述子任务信息对应的程序;
所述划分模块,具体用于基于预设编码架构信息,和/或,所述开发任务信息的业务类型,对所述开发任务信息进行划分,得到多个子任务信息;其中,所述预设编码架构信息包括:编码架构的类型、编码架构所包含的编码层次的数量以及每层编码层次的特征信息;所述开发任务信息的业务类型为:所述开发任务信息所涉及的多种业务所对应的业务类型;所述编码架构包括两层架构和三层架构,两层架构包括:用户界面层和业务逻辑层;三层架构包括:表示层、中间层和数据层;
其中,所述划分模块,具体用于基于预设编码架构信息,对所述开发任务信息进行划分,得到多个目标任务信息;基于每个目标任务信息对应的业务类型,对每个目标任务信息进行划分,得到多个子任务信息。
8.根据权利要求7所述的装置,其特征在于,所述划分模块,包括:
第一预设编码架构信息获得单元,用于获得预设编码架构信息;
第一编码层次确定单元,用于确定所述预设编码架构信息包括的编码层次;
第一划分单元,用于基于所述编码层次,对所述开发任务信息进行划分,得到多个子任务信息,其中,一个编码层次对应一个子任务信息。
9.根据权利要求7所述的装置,其特征在于,所述划分模块,包括:
第一业务类型确定单元,用于确定所述开发任务信息对应的业务类型;
第二划分单元,用于基于所述业务类型,对所述开发任务信息进行划分,得到多个子任务信息。
10.根据权利要求9所述的装置,其特征在于,所述第二划分单元,具体用于:
在业务类型属于单一业务类型的情况下,确定该业务类型对应一个子任务信息;
在业务类型属于多业务类型的情况下,确定该业务类型对应一个子任务信息,或者,确定该业务类型包括的每个业务类型分别对应一个子任务信息,其中,所述多业务类型为业务类型有至少两种。
11.根据权利要求7所述的装置,其特征在于,所述划分模块,包括:
第二预设编码架构信息获得单元,用于获得预设编码架构信息;
第二编码层次确定单元,用于确定所述预设编码架构信息包括的编码层次;
第三划分单元,用于基于所述编码层次,对所述开发任务信息进行划分,得到多个目标任务信息,其中,一个编码层次对应一个目标任务信息;
第二业务类型确定单元,用于确定每个目标任务信息对应的业务类型;
第四划分单元,用于基于所确定的业务类型,对每个目标任务信息进行划分,得到多个子任务信息。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
指令接收模块,用于在所述生成程序后,接收打包任务指令,从所述子任务信息对应的程序中,确定所述打包任务指令所包含的待打包程序,将所述待打包程序发送至打包服务器,以使所述打包服务器对所述待打包程序进行打包部署。
13.一种电子设备,其特征在于,包括处理器和存储器;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一所述的方法步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法步骤。
15.一种程序生成系统,其特征在于,包括代码管理服务器和打包服务器;
所述代码管理服务器,用于获得开发任务信息,按照预设划分规则对所述开发任务信息进行划分,得到多个子任务信息,接收开发人员基于所述子任务信息编写的代码,生成所述子任务信息对应的程序,接收打包任务指令,从所述子任务信息对应的程序中,确定所述打包任务指令所包含的待打包程序,将所述待打包程序发送至打包服务器;
所述打包服务器,用于接收所述待打包程序,对所述待打包程序进行打包部署;
所述代码管理服务器,具体用于基于预设编码架构信息,和/或,所述开发任务信息的业务类型,对所述开发任务信息进行划分,得到多个子任务信息;其中,所述预设编码架构信息包括:编码架构的类型、编码架构所包含的编码层次的数量以及每层编码层次的特征信息;所述开发任务信息的业务类型为:所述开发任务信息所涉及的多种业务所对应的业务类型;所述编码架构包括两层架构和三层架构,两层架构包括:用户界面层和业务逻辑层;三层架构包括:表示层、中间层和数据层;
其中,所述代码管理服务器,具体用于基于预设编码架构信息,对所述开发任务信息进行划分,得到多个目标任务信息;基于每个目标任务信息对应的业务类型,对每个目标任务信息进行划分,得到多个子任务信息。
16.根据权利要求15所述的程序生成系统,其特征在于,所述代码管理服务器具体用于:
获得预设编码架构信息;
确定所述预设编码架构信息包括的编码层次;
基于所述编码层次,对所述开发任务信息进行划分,得到多个子任务信息,其中,一个编码层次对应一个子任务信息。
17.根据权利要求15所述的程序生成系统,其特征在于,所述代码管理服务器具体用于:
确定所述开发任务信息对应的业务类型;
基于所述业务类型,对所述开发任务信息进行划分,得到多个子任务信息。
18.根据权利要求17所述的程序生成系统,其特征在于,所述代码管理服务器具体用于:
在业务类型属于单一业务类型的情况下,确定该业务类型对应一个子任务信息;
在业务类型属于多业务类型的情况下,确定该业务类型对应一个子任务信息,或者,确定该业务类型包括的每个业务类型分别对应一个子任务信息,其中,所述多业务类型为业务类型有至少两种。
19.根据权利要求15所述的程序生成系统,其特征在于,所述代码管理服务器具体用于:
获得预设编码架构信息;
确定所述预设编码架构信息包括的编码层次;
基于所述编码层次,对所述开发任务信息进行划分,得到多个目标任务信息,其中,一个编码层次对应一个目标任务信息;
确定每个目标任务信息对应的业务类型;
基于所确定的业务类型,对每个目标任务信息进行划分,得到多个子任务信息。
20.根据权利要求15所述的程序生成系统,其特征在于,还包括测试服务器;
所述打包服务器,具体用于接收所述待打包程序,基于预设打包规则,对所述待打包程序的代码进行打包得到待测试程序包,将所述待测试程序包部署至测试服务器;
所述测试服务器,用于接收所述待测试程序,对所述待测试程序进行测试。
21.根据权利要求20所述的程序生成系统,其特征在于,所述打包服务器,还用于在将所述待测试程序包部署至测试服务器之后,接收所述代码管理服务器发送的待打包任务对应的页面文件,将所述页面文件部署至所述测试服务器;
所述测试服务器,还用于接收所述页面文件,对所述页面文件进行测试。
22.根据权利要求20所述的程序生成系统,其特征在于,所述打包服务器,具体用于确定所述待打包程序的业务类型;
在所述待打包程序的业务类型为单一业务类型的情况下,将所述待打包程序的代码进行整体打包得到待测试程序包;
在所述待打包程序的业务类型为多业务类型的情况下,将所述待打包程序的代码进行整体打包得到目标程序包,基于所述待打包程序包括的业务的业务类型对所述目标程序包进行拆包得到待测试程序包,或者,基于所述待打包程序包括的业务的属性信息对所述目标程序包进行拆包得到待测试程序包。
23.根据权利要求22所述的程序生成系统,其特征在于,所述打包服务器,具体用于确定所述待打包程序包括的每个业务的业务类型,将目标程序包中同一业务类型的业务的代码拆分为一个待测试程序包。
24.根据权利要求23所述的程序生成系统,其特征在于,所述打包服务器,具体用于确定所述待打包程序包括的业务的属性信息,基于所述属性信息,确定各个业务之间的相关性,将目标程序包中相关性大于预设阈值的业务的代码拆分为一个待测试程序包。
25.根据权利要求20所述的程序生成系统,其特征在于,还包括代码库;
所述打包服务器,还用于在获得待打包任务对应的待打包程序的代码后,将所述待打包程序的代码发送至所述代码库;
所述代码库,用于接收所述待打包程序的代码,存储所述待打包程序的代码。
26.根据权利要求15所述的程序生成系统,其特征在于,所述代码管理服务器安装有版本管理SVN系统。
27.根据权利要求20所述的程序生成系统,其特征在于,所述测试服务器为多个;
所述打包服务器,具体用于确定所述待打包程序对应的目标功能,根据功能与测试服务器的预设对应关系,确定所述目标功能对应的测试服务器,将所述待测试程序包部署至所述目标功能对应的测试服务器。
28.根据权利要求20所述的程序生成系统,其特征在于,所述测试服务器包括多个测试服务器集群;
所述打包服务器,具体用于确定所述待测试程序包对应的目标功能,根据功能与测试服务器集群的预设对应关系,确定所述目标功能对应的测试服务器集群,将所述待测试程序包部署至所述目标功能对应的测试服务器集群。
29.根据权利要求20所述的程序生成系统,其特征在于,还包括发布服务器;
所述测试服务器,还用于将测试成功的程序包部署至所述发布服务器;
所述发布服务器,用于接收所述测试成功的程序包,并对所述测试成功的程序包进行生产部署。
30.根据权利要求20所述的程序生成系统,其特征在于,还包括发布服务器;
所述打包服务器,还用于在打包得到待测试程序包后,将所述待测试程序包发送至所述发布服务器;
所述发布服务器,用于接收所述待测试程序包,对所述待测试程序包进行生产部署。
CN201810712583.9A 2018-06-29 2018-06-29 一种程序生成方法、装置、系统、电子设备及存储介质 Active CN108920139B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810712583.9A CN108920139B (zh) 2018-06-29 2018-06-29 一种程序生成方法、装置、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810712583.9A CN108920139B (zh) 2018-06-29 2018-06-29 一种程序生成方法、装置、系统、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN108920139A CN108920139A (zh) 2018-11-30
CN108920139B true CN108920139B (zh) 2023-02-07

Family

ID=64424533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810712583.9A Active CN108920139B (zh) 2018-06-29 2018-06-29 一种程序生成方法、装置、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN108920139B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109800965B (zh) * 2018-12-28 2021-12-17 广州亚信技术有限公司 流程业务处理方法、装置、计算机设备和存储介质
CN111506315A (zh) * 2019-01-31 2020-08-07 广州数控网络科技有限公司 一种柔性数字控制的代码部署方法、及数字控制平台
CN110795143B (zh) * 2019-10-22 2023-11-07 中国工商银行股份有限公司 用于处理功能模块的方法、装置、计算设备以及介质
CN111026371B (zh) * 2019-12-11 2023-09-29 上海米哈游网络科技股份有限公司 一种游戏开发方法、装置、电子设备及存储介质
CN112000316B (zh) * 2020-08-25 2021-08-27 橙色云互联网设计有限公司 一种全要素开放式协同研发系统和方法
CN113778842A (zh) * 2020-08-25 2021-12-10 北京沃东天骏信息技术有限公司 容错测试的方法、装置、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107392766A (zh) * 2017-07-25 2017-11-24 上海壹账通金融科技有限公司 业务处理方法、适配器及计算机可读存储介质
CN107832042A (zh) * 2017-11-16 2018-03-23 南京轩世琪源软件科技有限公司 一种基于嵌入式软件开发方法
CN107943476A (zh) * 2017-11-17 2018-04-20 南京轩世琪源软件科技有限公司 一种基于模型驱动的计算机联锁软件开发方法
CN107992291A (zh) * 2017-11-16 2018-05-04 上海南潮信息科技有限公司 应用于嵌入式应用程序的Ruff OS物联网操作系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590997B2 (en) * 2004-07-30 2009-09-15 Broadband Itv, Inc. System and method for managing, converting and displaying video content on a video-on-demand platform, including ads used for drill-down navigation and consumer-generated classified ads
CN104331294B (zh) * 2014-11-05 2017-12-12 中国建设银行股份有限公司 一种可视化程序生成方法和装置
CN105426197A (zh) * 2015-12-30 2016-03-23 北京迪创伟业科技有限公司 针对嵌入式产品的分层式设计方法
CN105912461A (zh) * 2016-04-05 2016-08-31 浪潮电子信息产业股份有限公司 一种软件敏捷测试方法及系统
CN106445556B (zh) * 2016-10-18 2019-08-30 中国银行股份有限公司 一种可视化代码生成方法及系统
CN107748662A (zh) * 2017-11-17 2018-03-02 深圳市泉眼网络科技有限公司 应用程序开发方法、终端及计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107392766A (zh) * 2017-07-25 2017-11-24 上海壹账通金融科技有限公司 业务处理方法、适配器及计算机可读存储介质
CN107832042A (zh) * 2017-11-16 2018-03-23 南京轩世琪源软件科技有限公司 一种基于嵌入式软件开发方法
CN107992291A (zh) * 2017-11-16 2018-05-04 上海南潮信息科技有限公司 应用于嵌入式应用程序的Ruff OS物联网操作系统
CN107943476A (zh) * 2017-11-17 2018-04-20 南京轩世琪源软件科技有限公司 一种基于模型驱动的计算机联锁软件开发方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A service-oriented exception handling method based on exception classification;YueHua Ding 等;《PROCEEDINGS OF 2013 International Conference on Sensor Network Security Technology and Privacy Communication System》;20130715;第63-68页 *
用电信息采集系统非结构化数据管理设计;祝恩国 等;《电力系统及其自动化学报》;20161015;第28卷(第10期);第123-128页 *

Also Published As

Publication number Publication date
CN108920139A (zh) 2018-11-30

Similar Documents

Publication Publication Date Title
CN108920139B (zh) 一种程序生成方法、装置、系统、电子设备及存储介质
CN108897571B (zh) 程序打包部署方法、装置、系统、电子设备及存储介质
US10817409B2 (en) System and method for testing software applications in a software defined network
CN108415832B (zh) 接口自动化测试方法、装置、设备及存储介质
US9419884B1 (en) Intelligent automated testing method for restful web services
CN108959086B (zh) 程序包测试部署方法、装置、系统、电子设备及存储介质
CN105808437B (zh) 基于测试用例数据表的自动化测试方法及系统
US11366713B2 (en) System and method for automatically identifying and resolving computing errors
CN108897548A (zh) 程序包生产部署方法、装置、系统、电子设备及存储介质
CN110019116B (zh) 数据追溯方法、装置、数据处理设备及计算机存储介质
CN112395196B (zh) 数据作业开发测试方法、装置、设备、系统及存储介质
CN111309734B (zh) 自动生成表数据的方法及系统
US20210224062A1 (en) Systems and Methods for Software Documentation and Code Generation Management
CN111538659A (zh) 业务场景的接口测试方法、系统、电子设备和存储介质
CN117693734A (zh) 前端项目处理方法、装置、设备、管理系统及存储介质
CN106990974B (zh) 一种app应用更新方法、装置及电子设备
CN106843822B (zh) 一种执行代码生成方法及设备
CN117667109A (zh) 一种环境部署方法、装置、电子设备及存储介质
US20220413999A1 (en) Techniques and Architectures for Providing an Isolated Runtime Context in a Shared Environment
CN116860636A (zh) 单元测试代码生成方法、装置、设备及存储介质
CN116719735A (zh) 一种测试用例生成方法及装置
CN115048083A (zh) 组件的可视化方法、装置、存储介质及电子设备
US20220019522A1 (en) Automated sequencing of software tests using dependency information
CN111309297A (zh) 脚本开发系统及方法
US20240027998A1 (en) Resume of failed automates in end-to-end process

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
GR01 Patent grant
GR01 Patent grant