一种业务系统代码自动生成方法及装置

文档序号:189898 发布日期:2021-11-02 浏览:18次 >En<

阅读说明:本技术 一种业务系统代码自动生成方法及装置 (Method and device for automatically generating service system code ) 是由 李家舒 菅海亮 杨亚林 赵雨蒙 于 2021-07-30 设计创作,主要内容包括:本申请提供了业务系统代码自动生成方法及装置,将目标业务系统的业务相关信息作为业务配置信息,同时,将目标业务系统中的代码文件抽象成代码模板文件,其中,代码模板文件中包括不变代码部分和标签,标签替代可变代码部分。当需要生成目标业务系统对应的代码文件时,读取配置信息和代码模板文件,并将代码模板文件中的标签替换为相匹配的代码即可得到目标业务系统对应的目标代码文件。可见,该方案通过一次配置,可以多次生成代码文件,而且,生成的代码文件可以满足实际业务需求。该过程不需要开发人员针对不同的外部系统做大量重复工作,因此提高了代码生成效率。(The application provides a method and a device for automatically generating a service system code, which take service related information of a target service system as service configuration information, and abstract a code file in the target service system into a code template file, wherein the code template file comprises an invariant code part and a tag, and the tag replaces the variable code part. When a code file corresponding to the target service system needs to be generated, the configuration information and the code template file are read, and the label in the code template file is replaced by a matched code, so that the target code file corresponding to the target service system can be obtained. Therefore, the scheme can generate the code file for multiple times through one-time configuration, and the generated code file can meet the actual business requirements. The process does not require developers to do a large amount of repeated work aiming at different external systems, thereby improving the code generation efficiency.)

一种业务系统代码自动生成方法及装置

技术领域

本发明属于计算机技术领域,尤其涉及一种业务系统代码自动生成方法及装置。

背景技术

实际应用中,可能情况都存在重复代码开发的情况,即,不同的系统,包含大量重复代码,而在开发系统时,就面临大量重复开发工作,而且极易出现错误。不同开发人员对业务的理解不一样,代码很难标准化。

在包含接口对接的系统中,需要将外部系统接口发送的信息翻译成标准数据,为业务系统做接口适配。对于具有差异化接口对接需求的系统,由于各个外系统接口功能相似,但接口形态差别较大(如,加密方式、报文结构、接口名称、字段要素等)的外部系统接口,通常需要人工分别针对不同外部系统接口分别开发相应的接口对接系统,此过程中开发人员不仅做了大量重复工作,而且还极易出错。

发明内容

有鉴于此,本发明的目的在于提供一种业务系统代码自动生成方法及装置,以解决无法针对相似功能自动生成系统代码的问题,其公开的技术方案如下:

第一方面,本申请提供了一种业务系统代码自动生成方法,包括:

获取目标业务系统的配置信息,其中,所述配置信息包括系统配置信息、业务配置信息和模板配置信息;

根据目标业务系统对应的模板配置信息,获取与所述目标业务系统相匹配的目标代码模板文件,其中,代码模板文件中保留针对不同外部系统相同的代码部分,且针对不同外部系统变化的代码部分利用标签替代为占位符;

根据所述目标业务系统的业务配置信息、系统配置信息及所述目标代码模板文件,构建所述目标业务系统对应的目标代码模型,所述目标代码模型中包括所述标签与对应的替换代码之间的映射关系;

针对所述目标代码模型中任一标签,将所述标签替换为对应的替换代码,得到所述目标业务系统对应的目标代码文件。

可选地,所述根据目标业务系统对应的模板配置信息,获取与所述目标业务系统相匹配的目标代码模板文件,包括:

获取所述目标业务系统的模板配置信息,所述模板配置信息包括表征所述目标业务系统的目标代码文件与代码模板文件之间的映射关系;

根据所述模板配置信息中的映射关系,获取与所述目标业务系统相匹配的目标代码模板文件。

可选地,所述根据所述目标业务系统的业务配置信息、系统配置信息及所述目标代码模板文件,构建所述目标业务系统对应的目标代码模型,包括:

读取所述目标业务系统对应的业务配置信息及系统配置信息,所述系统配置信息包括所述目标业务系统以及与所述目标业务系统连接的外部系统之间的映射关系;

根据所述目标代码模板文件构建代码模型;

将所述业务配置信息及所述系统配置信息赋值于所述代码模型,得到所述目标业务系统对应的目标代码模型。

可选地,所述针对所述目标代码模型中任一标签,将所述标签替换为对应的替换代码,得到所述目标业务系统对应的目标代码文件,包括:

获取所述代码模板文件中目标标签对应的标签类型及标签标识;

根据标签与替换代码之间的映射关系,获取与所述目标标签相匹配的目标替换代码文本;

利用所述目标替换代码文本替换所述目标标签,直到所述代码模板文件中的所有标签都替换成相应的替换代码文本,得到所述目标业务系统对应的代码文件。

可选地,所述根据标签与替换代码之间的映射关系,获取与所述目标标签相匹配的目标替换代码文本,包括:

从所述代码模型中获取与所述目标标签的标签标识相匹配的替换代码文本;

确定所述目标标签的标签形态,将所述替换代码文本转换为与所述标签形态相匹配的代码形态,得到所述目标替换代码文本;

其中,所述标签形态包括标签名字的各字符形态。

可选地,所述方法还包括:

将所述目标业务系统划分功能模块,并依次确定与各个所述功能模块相匹配的代码文件;

确定所述代码文件中针对不同外部系统相同的不变代码部分,以及,针对不同外部系统变化的可变代码部分;

生成与所述代码文件中的所述可变代码部分相对应的标签;

保留所述代码文件中的不变代码部分,以及,利用所述标签替换所述代码文件中与所述标签相对应的不变代码部分,得到与所述代码文件相匹配的代码模板文件。

可选地,所述生成与所述代码文件中的所述可变代码部分相对应的标签,包括:

根据所述代码文件中的代码形态,生成与所述不变代码部分相匹配的标签。

第二方面,本申请还提供了一种业务系统代码自动生成装置,包括:

配置信息获取模块,用于获取目标业务系统的配置信息,其中,所述配置信息包括系统配置信息、业务配置信息和模板配置信息;

代码模板文件获取模块,用于根据目标业务系统对应的模板配置信息,获取与所述目标业务系统相匹配的目标代码模板文件,其中,代码模板文件中保留针对不同外部系统相同的代码部分,且针对不同外部系统变化的代码部分利用标签替代为占位符;

代码模型构建模块,用于根据所述目标业务系统的所述业务配置信息、所述系统配置信息及所述目标代码模板文件,构建所述目标业务系统对应的目标代码模型,所述目标代码模型中包括所述标签与对应的替换代码之间的映射关系;

标签替换模块,用于针对所述目标代码模型中任一标签,将所述标签替换为对应的替换代码,得到所述目标业务系统对应的目标代码文件。

可选地,所述装置还包括:

代码文件确定模块,用于将所述目标业务系统划分功能模块,并依次确定与各个所述功能模块相匹配的代码文件;

代码分析模块,用于确定所述代码文件中针对不同外部系统相同的不变代码部分,以及,针对不同外部系统变化的可变代码部分;

标签生成模块,用于生成与所述代码文件中的所述可变代码部分相对应的标签;

代码模板文件生成模块,用于保留所述代码文件中的不变代码部分,以及,利用所述标签替换所述代码文件中与所述标签相对应的不变代码部分,得到与所述代码文件相匹配的代码模板文件。

可选地,所述代码模型构建模块,包括:

配置信息获取子模块,用于读取所述目标业务系统对应的业务配置信息及系统配置信息,所述系统配置信息包括所述目标业务系统以及与所述目标业务系统连接的外部系统之间的映射关系;

构建子模块,用于根据所述目标代码模板文件构建代码模型;

赋值子模块,用于将所述业务配置信息及所述系统配置信息赋值于所述代码模型,得到所述目标业务系统对应的目标代码模型。

本申请提供的业务系统的代码自动生成方法,获取目标业务系统的配置信息;根据模板配置信息获取目标业务系统的目标代码模板文件;其中,代码模板文件是将目标业务系统的代码文件中针对不同外部系统均相同的不变代码部分保留下来,同时,将代码文件中针对不同外部系统变化的可变代码部分利用相应的标签替换得到。进一步,根据目标业务系统的配置信息和目标代码模板文件,构建目标业务系统对应的目标代码模型,该目标代码模型中包括代码模板文件中的标签与对应的替换代码文本之间的映射关系。将目标代码模型中的标签替换为对应的替换代码文本得到目标业务系统对应的目标代码文件。该方案生成目标业务系统的代码模板文件,该代码模板文件能够根据不同外部系统的不同需求生成不同的代码文件,该过程不需要开发人员针对不同的外部系统做大量重复工作,因此提高了代码生成效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本申请实施例提供的一种业务系统与外部系统对接的结构示意图;

图2示出了本申请实施例提供的一种业务系统代码自动生成方法的流程图;

图3示出了本申请实施例提供的另一种业务系统代码自动生成方法的流程图;

图4示出了本申请实施例提供的业务系统代码自动生成系统的示意图;

图5示出了本申请实施例提供的一种生成代码模板文件过程的流程图;

图6示出了本申请实施例提供的一种业务系统代码自动生成装置的结构示意图;

图7示出了本申请实施例提供的另一种业务系统代码自动生成装置的结构示意图。

具体实施方式

本申请提供的代码自动生成方法,提供了一种一次配置,多次生成代码的技术框架,用于自动生成目标业务系统的系统代码,本文中的目标业务系统可以是差异化接口对接的系统,减少了无意义的重复工作,同时又避免了低级错误,极大地提高了开发人员的工作效率。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参见图1,示出了本申请实施例提供的一种业务系统与外部系统对接的结构示意图。

某接口对接业务系统A需要分别与外部的业务系统B~D之间通过接口进行信息交互,而业务系统B~D的接口功能相似,但接口的形态差别较大,如加密方式、报文接口、接口名称、字段要素等不同。因此,如图1所示需要分别开发能够分别与业务系统B、C、D进行交互的系统A1、A2和A3。

相关技术中,需要人工分别针对业务系统B、C、D分别开发A1、A2、A3,而在分别开发A1、A2、A3的过程中开发人员做了大量重复工作,而且极易出错。

请参见图2,示出了本申请实施例提供的一种业务系统代码自动生成方法的流程图,该方法能够自动生成业务系统的代码,如图1所示应用场景中的接口对接业务。如图2所示,该方法可以包括以下步骤:

S110,获取目标业务系统的配置信息。

其中,所述配置信息包括系统配置信息、业务配置信息和模板配置信息。

目标业务系统即需要自动生成系统代码的系统,例如,在一种应用场景中,目标业务系统是银行存款产品对接系统,该对接系统需要与各个银行渠道系统(如,手机银行渠道、网上银行渠道)对接,各个银行渠道系统即外部系统。

其中,模板配置信息包括目标业务系统包含的各个功能模块与代码模板文件之间的映射关系。

在目标业务系统是与外部系统对接的接口对接系统的场景下,需要将外部系统的业务数据映射为目标业务系统的业务参数,因此,需要在数据库中维护目标业务系统的业务相关数据。例如,以业务配置信息的形式维护业务相关数据,通过业务配置信息实现外部系统到目标业务系统的业务映射。其中,业务配置信息包括业务参数配置信息和关键字配置信息。

业务参数配置信息用于配置接口的属性与业务场景;关键字配置信息用于配置目标业务系统对接外部系统时所涉及的核心接口参数,将接口请求和返回参数映射到目标业务系统的标准化参数。

此外,分析目标业务系统的业务系统,针对不同外部系统分别形成不同的系统配置信息,通过系统配置信息实现外部业务系统的业务特征映射到目标业务系统。

S120,根据目标业务系统对应的模板配置信息,获取与目标业务系统相匹配的目标代码模板文件。

代码模板文件是从目标业务系统的代码文件中抽象出来,且局部可被替换的标准文件。

目标业务系统对应的代码文件包括不变代码部分和可变代码部分,其中,不变代码部分是指此部分代码不会因为目标业务系统对接不同外部系统而发生改变;当目标业务系统对接不同外部系统时,目标业务系统中的部分代码会发生变化,此部分代码即可变代码部分。

将目标业务系统的代码文件中可变代码部分利用标签替换为占位符,并保留不变代码部分保留,得到代码模板文件。

其中,标签是代码模板中可被替换的文本,或者,界定可被替换文本范围的文本,包括标签名称和标签标识,如,<<Tag>>。

在本申请的一个实施例中,先读取与目标业务系统相匹配的模板配置信息,再根据该模板配置信息获取目标代码模板文件,其中,模板配置信息配置了目标业务系统的功能模块与代码模板文件之间的映射关系。

其中,一个业务系统按照业务功能通常可以划分为多个功能模块,每个能模块由多个系统代码文件组成。例如,某银行存款类产品对接系统可以拆解为产品交易、对账、挡板等多个功能模块。

S130,根据目标业务系统的业务配置信息、系统配置信息及目标代码模板文件,构建目标业务系统对应的目标代码模型。

目标代码模型中包括标签与对应的替换代码之间的映射关系。

从数据库中读取目标业务系统对应的业务配置信息,以及读取目标业务系统对应的所有代码模板文件,并将业务配置信息赋值到代码模型中。进一步构建与代码模板文件包含的标签相对应的标签映射集合。

下面以目标业务系统是接口对接业务系统为例进行说明,目标业务系统对接外部系统时,需要将外部系统接口映射到目标业务系统的接口,例如,将外部系统B采用的接口b映射到目标业务系统A采用的接口a,即实现接口b到接口a的映射。因此,需要在数据库中维护目标业务系统的接口相关数据,

在本申请的一个实施例中,将外部系统接口映射到目标业务系统的映射过程可以包含如下三层含义:

1)接口参数映射

将外部系统的核心接口参数(如,接口请求参数和返回参数等)映射目标业务系统的标准化参数。

在本申请的一个实施例中,可以利用关键字配置信息维护目标业务系统中与业务相关的核心接口参数,通过该关键字配置将外部系统的接口请求和返回参数等映射到目标业务系统的标准化参数。

2)接口信息映射

将外部系统的接口信息映射到目标业务系统的接口信息,其中,接口信息可以包括接口属性信息、业务场景。

在本申请的一个实施例中,可以利用业务参数配置信息描述接口属性信息和业务场景。

3)业务特征映射

总结目标业务系统的业务特征,以系统配置信息的形式,形成配置文件或界面,供开发人员使用。例如,系统配置信息可以采用yaml文件,其中,yaml是专门用来写配置文件的语言。

对于不同的外部系统,形成不同的系统配置文件,从而实现目标业务系统的代码差异化生成。利用系统配置文件将外部系统的业务特征映射到目标业务系统的业务特征。

通过上述三类配置信息将外部系统的接口映射到目标业务系统的接口。

S140,对于目标代码模型中任一标签,将该标签替换为对应的替换代码,得到目标业务系统对应的目标代码文件。

其中,与标签对应的替换代码事先由开发人员针对目标业务系统的业务需求编写完成。在自动生成目标业务系统的代码时,直接根据标签与代码之间的映射关系自动替换即可。

在本申请的一个实施例中,可以调用代码生成器,同时读取基础文件配置,例如,基础文件配置包括代码模板文件的存储位置、文件名和存储路径等;再将代码模板文件中的标签替换为相应的替换代码,最后格式化保存到目标代码文件,即得到目标业务系统的代码文件。

本实施例提供的业务系统代码自动生成方法,将目标业务系统的业务相关信息作为业务配置信息。以及,将目标业务系统中的代码文件抽象成代码模板文件,其中,代码模板文件中包括不变代码部分和标签,标签替代可变代码部分。同时,通过模板配置信息维护目标业务系统的各个功能模块与代码模板文件之间的映射关系。当需要生成目标业务系统对应的代码文件时,根据模板配置信息确定目标业务系统对应的所有目标代码模板文件,并根据目标代码模板文件构建代码模型。进一步,将目标业务系统对应的业务配置信息及目标代码模板文件,构建目标代码模型。并将目标代码模型中的标签替换为相匹配的代码即可得到目标业务系统对应的目标代码文件。可见,该方案通过一次配置,可以多次生成代码文件,而且,生成的代码文件可以满足实际业务需求。该过程不需要开发人员针对不同的外部系统做大量重复工作,因此提高了代码生成效率。

请参见图3和图4,图3示出了本申请实施例提供的另一种业务系统代码自动生成方法的流程图,图4示出了本申请实施例提供的业务系统代码自动生成系统的示意图。

本实施例将着重介绍构建代码模型的过程,如图3所示,该方法可以包括以下步骤:

S210,读取目标业务系统对应的配置信息。

如图4所示,用于执行代码生成方法的系统先加载系统配置,此处的系统配置包括:配置文件(ConfigFile)、模板配置(FileConfig)、交易配置(TradeConfig)、关键字配置(StoreConfig)。

其中,模板配置即模板配置信息,交易配置即业务参数配置信息,关键字配置即关键字配置信息。

配置文件是外部系统对应的配置信息,不同的外部系统对应不同的配置文件。其中,配置文件定义了外部系统到目标业务系统的映射,以及基础的业务参数,例如,可以包括渠道名称、AppId、格式、交易参数、参数相关控制信息等,通过配置信息实现目标代码的精准控制。

业务配置信息包括业务参数配置信息、关键字配置信息。

模板配置信息包括目标业务系统包含的各个功能模块的系统文件与代码模板文件之间的映射关系,模板配置信息指定了利用哪些代码文件由哪些代码模板文件生成。

代码模板文件与代码文件之间是一对多的映射关系,即,一个代码模板文件可以生成至少一个代码文件。

下面以目标业务系统是某银行存款类产品对接系统,该对接系统拆解为产品交易、对账、挡板等多个功能模块,下面以产品交易为例说明各个配置信息所包含的参数。

其中,模板配置信息的主要参数如表1所示:

表1

编号 名称 含义
01 FC_FileNo 模板编号
02 FC_FileName 模板名称
03 FC_GroupNo 模板组编号
04 FC_SrcDir 模板文件目录
05 FC_SrcFile 模板文件名称
06 FC_DstDir 目标文件目录(可动态替换)
07 FC_DstFile 目标文件名称(可动态替换)
08 FC_Type 模板类型

业务参数配置信息的主要参数如表2所示:

表2

编号 名称 含义
01 TC_TradeNo 交易编号
02 TC_TradeName 交易名称
03 TC_Scene 交易场景
04 TC_NeedNotice 是否需要轮询
05 TC_NeedMock 是否需要挡板
06 TC_Type 交易类型

业务参数中的接口请求和返回参数需要标准化为目标系统关键字(即上述的关键字配置),维护到数据库中,其主要参数如表3所示:

表3

S220,根据模板配置信息,读取目标业务系统对应的目标代码模板文件。

在生成与目标外部系统对接的目标业务系统时,按照生成目标业务系统的代码模板文件时所划分的功能模块,确定各个功能模块应包含的代码文件,并根据模板配置信息中配置的代码文件与代码模板文件之间的映射关系,获取该目标业务系统的各个功能模块所对应的代码模板文件集合,每个代码模板文件集合用来生成该功能模块对应的代码文件。

S230,根据模板配置文件创建代码模型,并将目标业务系统对应的其它配置信息赋值到代码模型。

该步骤是将S210加载的其它配置信息(即,配置文件、交易配置、关键字配置)赋值到代码模型。

代码模型旨在描述代码文件生成要素,将代码中的可变代码部分抽取出来,形成不同层级的抽象,其中,代码模型的主要参数如表4所示:

表4

S240,构建目标代码模板文件包含的标签所对应的标签映射集合。

标签映射集合中维护的是代码模板文件中的标签与代码文本之间的映射关系。其中,与标签对应的代码文本由开发人员针对目标业务系统的业务需求编写完成。

标签根据代码特性分成多种功能标签分别是:单体标签、循环标签、代码片段标签和注解标签。

若生成代码不依赖于标签形态,替换用原文本替换,使用原始标签<<origin.tag>>。如有多个相同形态的代码,使用循环标签<<loop.tag>>。如果使用代码插片,实现大范围的代码替换,使用代码片段标签<<codeSeg.tag>>。如果小范围生成的代码依赖于某些复杂条件,使用注解标签<<noteSeg.tag>>。普通替换的标签,使用单体标签<<tag>>。

构建各个标签对应的标签集合,以标签的功能分别建立各功能标签对应的标签集合。

如果目标代码模板文件中包含单体标签,构建单体标签映射集合,即代码模板文件中的各个单体标签与相应的代码文件之间的映射关系。

在本申请的一个实施例中,映射关系中的代码文本可以是该代码文本的存储路径,在根据生成代码模板文件生成代码文件时,根据该映射关系中的代码文本存储路径读取相应的代码文件,并该代码文本替换代码模板文件中相对应的标签。

如果目标代码模板文件中包含循环标签,构建循环标签映射集合,即建立目标代码模板文件中的各循环标签与相匹配的代码文件之间的映射关系。

如果目标代码模板文件中包含代码片段标签,构建代码片段标签映射集合,即针对目标代码模板文件中的各个代码片段标签,根据规则引擎选取相匹配代码片段,并建立代码片段与相匹配的标签之间的映射关系。

其中,规则引擎(TacticService),旨在解决标签与代码片段(CodeSeg)、注解片段(NoteSeg)的关系。规则引擎定义了一组规则体系,在接口对接系统中,大部分规则根据外部系统的接口是否包含目标业务系统关键字,或者外部系统自定义配置进行组建。

例如,规则引擎中的规则是:根据外部系统的接口是否有匹配到目标业务系统的关键字,选择不同的代码片段。

如果目标代码模板文件中包含注解标签,则构建注解标签映射集合,针对目标代码模板文件中的各注解标签,根据规则引擎分别选择与各注解标签相匹配的注解代码片段,并建立各注解代码片段与相匹配的注解标签之间的映射关系。

例如,规则引擎中的规则是:通过配置文件中渠道日期的格式,设置注解片段的值。

在本申请的一个实施例中,上述的S230和S240步骤可以通过组装代码模型的服务实现。该组装代码模型的服务用于对单体标签和循环标签进行赋值,对代码/注解片段,根据规则引擎进行选取相应代码片段构建相应的标签映射集合。

S250,将目标代码模型中任一标签,替换为任一标签对应的替换代码,得到目标业务系统对应的目标代码文件。

如图4所示,代码生成过程,根据代码模型,获取代码模板文件,在代码模板文件中插入代码片段和注解片段,再替换单体标签和循环标签,最后格式化保存到目标代码文件。

本申请的一个实施例中,利用标签服务将代码模板文件中的标签替换为相应的代码文本。标签服务(TagService),定义了模板中的标签文本以及替换规则,并实现了代码插片和标签替换方法。

本实施例提供业务系统代码自动生成方法,将目标业务系统的业务相关信息作为配置信息,同时,将目标业务系统中的代码文件抽象成代码模板文件,其中,代码模板文件中包括不变代码部分和标签,标签替代可变代码部分。当需要生成目标业务系统对应的代码文件时,读取配置信息和代码模板文件,并将代码模板文件中的标签替换为相匹配的代码即可得到目标业务系统对应的目标代码文件。由上述内容可知,该方案通过一次配置,可以多次生成代码文件,而且,生成的代码文件可以满足实际业务需求。该过程不需要开发人员针对不同的外部系统做大量重复工作,因此提高了代码生成效率。

请参见图5,示出了本申请实施例提供的一种生成代码模板文件过程的流程图,该过程主要包括:

S310,将目标业务系统划分功能模块,并依次确定与各个所述功能模块相匹配的代码文件。

拆解目标业务系统,划分功能模块,确定出各个功能模块相对应的代码文件,将各代码文件分类,根据功能划分为文件组,每组文件对应使用一组代码文件模板。

S320,确定代码文件中针对不同外部系统相同的不变代码部分,以及,针对不同外部系统变化的可变代码部分。

对于代码文件中的代码部分,确定出针对不同外部系统相同的代码部分,即不变代码部分,以及,针对不同外部系统变化的代码部分,即可变代码部分。对于可变代码部分,使用标签替换为占位符。其中,占位符就是先占住一个固定的位置,等待替换为其他内容的符号。

S330,生成与代码文件中的可变代码部分相对应的标签。

保留代码文件中的不变代码部分,以及,将可变代码部分利用相应的标签替换,得到代码文件对应的代码模板文件。

其中,标签是模板中可被替换的文本或者界定可被替换文本范围的文本。由标签名和标签标识组成。

标签标识:结对符号;界定标签的文本范围。例如为<<和>>。

标签层级:通过标记形成有父子关系的标签树,可以进行标签组处理。形如:<<tag.subTag>>。

标签序号:用于同一个标签名的多次出现,用于实现多体标签。形如:<<codeSeg.getRequestUrl:1>>,<<codeSeg.getRequestUrl:2>>。

标签边界:结对符号。定义了模板中被标签定义的可替换文本的边界。形如:<<loop.reqAttr:beg>>,<<loop.reqAttr:end>>。

标签根据代码特性分成多种功能标签,如单体标签、循环标签、代码片段标签和注解标签。

上述标签会在标签替换服务中根据其功能特性使用不同的替换规则。

此外,标签替换服务根据代码形态对代码模型中除原始标签之外的其他标签做形态扩展,标签的形态可以定义为如下六种:

xx:首字母小写,其他字母小写。

XX:首字母大写,其他字母也大写。

xs:首字母小写,其他字母随意。

Xs:首字母大写,其他字符随意。

X_X:所有字母大写,除首字母,其他字母根据单词划分附加前缀下划线。

_X_X:所有字母大写,并根据单词划分附加前缀下划线。

对标签形态进行扩展的过程就是将标签名扩展为上述六种标签形态中的任意一种,在将标签替换为相应的代码文本时,按照标签形态生成代码形态。

例如,标签形态为首字母小写,其他字母也小写的形态,则在替换该标签时,如果与该标签相匹配的替换代码的所有字母不均为小写,则将替换代码的所有字母均转换为小写后再替换该标签。

通过设定标签形态可以直接生成不同代码形态的代码文件,不需要开发人员重复开发不同代码形态的代码模板文件,降低了开发人员的工作量,提高了代码生成效率。

S340,保留代码文件中的不变代码部分,以及,利用标签替换代码文件中与标签相对应的不变代码部分,得到与代码文件相匹配的代码模板文件。

本实施例提供的代码模板文件生成过程,将目标业务系统对应的代码文件抽象生成通用的模板文件,针对不同的业务需求,通过将模板文件中的标签替换为对应的代码文本即可,不需要开发人员针对不同业务需求重复编写代码文件,提高了代码生成效率。

相应于上述的业务系统代码自动生成方法实施例,本申请实施例还提供了一种业务系统代码自动生成装置实施例。

请参见图6,示出了本申请实施例提供的一种业务系统代码自动生成装置的结构示意图,如图6所示,该装置包括:

配置信息获取模块110,用于获取目标业务系统的配置信息,其中,所述配置信息包括系统配置信息、业务配置信息和模板配置信息。

代码模板文件获取模块120,用于根据目标业务系统对应的模板配置信息,获取与所述目标业务系统相匹配的目标代码模板文件。

其中,代码模板文件中保留针对不同外部系统相同的代码部分,且针对不同外部系统变化的代码部分利用标签替代为占位符。

在本申请的一个实施例中,代码模板文件获取模块120具体用于:

获取所述目标业务系统的模板配置信息,所述模板配置信息包括表征所述目标业务系统的目标代码文件与代码模板文件之间的映射关系。

根据所述模板配置信息中的映射关系,获取与所述目标业务系统相匹配的目标代码模板文件。

代码模型构建模块130,用于根据所述目标业务系统的所述业务配置信息、所述系统配置信息及所述目标代码模板文件,构建所述目标业务系统对应的目标代码模型,所述目标代码模型中包括所述标签与对应的替换代码之间的映射关系。

在一个实施例中,代码模型构建模块130,包括:

配置信息获取子模块,用于读取所述目标业务系统对应的业务配置信息及系统配置信息,所述系统配置信息包括所述目标业务系统以及与所述目标业务系统连接的外部系统之间的映射关系;

构建子模块,用于根据所述目标代码模板文件构建代码模型;

赋值子模块,用于将所述业务配置信息及所述系统配置信息赋值于所述代码模型,得到所述目标业务系统对应的目标代码模型。

标签替换模块140,用于针对所述目标代码模型中任一标签,将所述标签替换为对应的替换代码,得到所述目标业务系统对应的目标代码文件。

在一个实施例中,标签替换模块140具体用于:

获取所述代码模板文件中目标标签对应的标签类型及标签标识;

根据标签与替换代码之间的映射关系,获取与所述目标标签相匹配的目标替换代码文本;

利用所述目标替换代码文本替换所述目标标签,直到所述代码模板文件中的所有标签都替换成相应的替换代码文本,得到所述目标业务系统对应的代码文件。

在一种可能的实现方式中,根据标签与替换代码之间的映射关系,获取与所述目标标签相匹配的目标替换代码文本,包括:

从所述代码模型中获取与所述目标标签的标签标识相匹配的替换代码文本;

确定所述目标标签的标签形态,将所述替换代码文本转换为与所述标签形态相匹配的代码形态,得到所述目标替换代码文本;

其中,所述标签形态包括标签名字的各字符形态。

本实施例提供的业务系统代码自动生成装置,将目标业务系统的业务相关信息作为业务配置信息。以及,将目标业务系统中的代码文件抽象成代码模板文件,其中,代码模板文件中包括不变代码部分和标签,标签替代可变代码部分。同时,通过模板配置信息维护目标业务系统的各个功能模块与代码模板文件之间的映射关系。当需要生成目标业务系统对应的代码文件时,根据模板配置信息确定目标业务系统对应的所有目标代码模板文件,并根据目标代码模板文件构建代码模型。进一步,将目标业务系统对应的业务配置信息及目标代码模板文件,构建目标代码模型。并将目标代码模型中的标签替换为相匹配的代码即可得到目标业务系统对应的目标代码文件。可见,该方案通过一次配置,可以多次生成代码文件,而且,生成的代码文件可以满足实际业务需求。该过程不需要开发人员针对不同的外部系统做大量重复工作,因此提高了代码生成效率。

请参见图7,示出了本申请实施例提供的另一种业务系统代码自动生成装置的结构示意图,该装置在图6所示实施例的基础上还可以包括:

代码文件确定模块210,用于将所述目标业务系统划分功能模块,并依次确定与各个所述功能模块相匹配的代码文件。

代码分析模块220,用于确定所述代码文件中针对不同外部系统相同的不变代码部分,以及,针对不同外部系统变化的可变代码部分。

标签生成模块230,用于生成与所述代码文件中的所述可变代码部分相对应的标签。

在一个实施例中,标签生成模块具体用于:根据所述代码文件中的代码形态,生成与所述不变代码部分相匹配的标签。

代码模板文件生成模块240,用于保留所述代码文件中的不变代码部分,以及,利用所述标签替换所述代码文件中与所述标签相对应的不变代码部分,得到与所述代码文件相匹配的代码模板文件。

本实施例提供的业务系统代码自动生成装置,将目标业务系统对应的代码文件抽象生成通用的模板文件,针对不同的业务需求,通过将模板文件中的标签替换为对应的代码文本即可,不需要开发人员针对不同业务需求重复编写代码文件,提高了代码生成效率。

本申请提供了一种电子设备,该电子设备包括处理器和存储器,该存储器内存储有可在处理器上运行的程序。该处理器运行存储器内存储的该程序时实现上述任一种业务系统代码自动生成方法。本文中的设备可以是服务器、PC等。

本申请还提供了一种计算机可读的存储介质,该存储介质中存储有程序,该程序由计算设备执行时实现上述的业务系统代码自动生成方法。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

需要说明的是,本说明书中的各个实施例记载的技术特征可以相互替代或组合,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本申请各实施例中的装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。

本申请所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种在OA系统中基于BS模式非嵌入式使用Office的方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!