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

代码框架在线生成方法、装置、设备以及计算机存储介质

文献发布时间:2024-01-17 01:20:32


代码框架在线生成方法、装置、设备以及计算机存储介质

技术领域

本发明实施例涉及软件开发技术领域,具体涉及一种代码框架在线生成方法、装置、设备以及计算机存储介质。

背景技术

为了快速启动业务代码的开发,一般软件公司都会根据历史开发经验等沉淀有一套基础代码框架。基础代码框架可以视作对项目中需要复用的代码的封装,如实例化代码、注入代码以及函数调用代码等。在项目启动时,一般在基础代码框架的基础上进行一定修改,从而得到当前需要的目标代码框架。或者,还可以利用现有的如Maven、IntellijIDEA等代码框架生成工具,实现自动化地生成目标代码框架。

发明人在实施现有技术的过程中发现:基于基础代码框架生成目标代码框架时,需要人工查找和获取所需要的基础代码框架,其效率和准确率都较低。而若基于自动化工具生成目标代码框架,则需要在本地额外安装自动化工具对应的组件及环境,一方面自动化工具对开发语言有限制,通用性不强,另一方面,预设的自动化工具的功能较为固定和局限,无法支持一些如循环、判断等自定义逻辑的实现,由此就导致代码框架的可用性较低。

因此,需要一种效率和可用性更高的代码框架生成方法。

发明内容

鉴于上述问题,本发明实施例提供了一种代码框架在线生成方法,用于解决现有技术中存在的代码框架的可用性较低以及生成效率较低的问题。

根据本发明实施例的一个方面,提供了一种代码框架在线生成方法,所述方法包括:

获取第一用户输入的目标编程语言类型以及目标代码框架类型;

获取所述目标代码框架类型所对应的目标代码框架模板,确定所述目标代码框架模板内包含的目标模板参数项;

将所述目标模板参数项展示给所述第一用户,接收所述第一用户基于所述目标模板参数项输入的参数配置信息;

确定所述目标代码框架模板对应的目标代码框架生成脚本;所述目标代码框架生成脚本根据所述目标代码框架模板对应的模板参数替换逻辑以及框架内文件目录生成逻辑中的至少一项生成;

以所述参数配置信息为所述目标代码框架生成脚本的脚本参数,针对所述目标代码框架模板执行所述目标代码框架生成脚本,得到目标代码框架数据;

将所述目标代码框架数据返回至所述第一用户。

在一种可选的方式中,所述方法还包括:

获取第二用户针对所述目标代码框架类型输入的第一代码框架模板配置文件;

对所述第一代码框架模板配置文件进行解析,得到所述目标代码框架类型对应的所述目标代码框架模板以及所述目标模板参数项。

在一种可选的方式中,所述方法还包括:

获取所述第一用户输入的目标编程语言类型;

根据所述目标编程语言类型在预设的框架模板数据库中进行查找,得到所述目标编程语言类型对应的可选代码框架模板;其中,所述框架模板数据库中关联存储有所述目标代码框架模板以及所述目标模板参数项;

将所述可选代码框架模板对所述第一用户进行展示;

根据所述第一用户针对所述可选代码框架模板输入的模板选择信息,确定所述目标代码框架类型。

在一种可选的方式中,所述方法还包括:

向所述第二用户展示预设的代码框架参数配置模板,以接收所述第二用户基于所述代码框架参数配置模板生成的所述目标模板参数项;其中,所述代码框架参数配置模板中包括目标代码框架模板包括的至少一个参数对应的名称配置信息以及参数属性配置信息。

在一种可选的方式中,所述方法还包括:

获取第三用户发送的第二代码框架模板配置文件;

对所述第二代码框架模板配置文件进行解析,得到所述目标代码框架类型对应的所述目标代码框架模板、目标代码框架生成脚本以及目标模板参数项。

在一种可选的方式中,所述目标代码框架生成脚本包括模板参数替换脚本;所述方法还包括:

通过所述模板参数替换脚本根据预设的字段标记对所述目标代码框架模板进行可填参数字段识别,得到待填充字段;

通过所述模板参数替换脚本将所述参数配置信息对应的目标模板参数项与所述待填充字段进行匹配,将所述参数配置信息填充到所匹配到的所述待填充字段下。

在一种可选的方式中,所述目标代码框架生成脚本包括文件目录生成脚本;所述方法还包括:

通过所述文件目录生成脚本对所述参数配置信息进行识别,得到文件目录命名信息;

根据所述目标代码框架模板对应的代码框架开发规范确定文件生成路径以及文件命名规则;

根据所述文件命名规则对所述文件目录命名信息进行转换,在所述文件生成路径下根据进行转换后的所述文件目录命名信息进行文件目录生成。

根据本发明实施例的另一方面,提供了一种代码框架在线生成装置,包括:

第一获取模块,用于获取第一用户输入的目标编程语言类型以及目标代码框架类型;

第二获取模块,用于获取所述目标代码框架类型所对应的目标代码框架模板,确定所述目标代码框架模板内包含的目标模板参数项;

接收模块,用于将所述目标模板参数项展示给所述第一用户,接收所述第一用户基于所述目标模板参数项输入的参数配置信息;

确定模块,用于确定所述目标代码框架模板对应的目标代码框架生成脚本;所述目标代码框架生成脚本根据所述目标代码框架模板对应的模板参数替换逻辑以及框架内文件目录生成逻辑中的至少一项生成;

执行模块,用于以所述参数配置信息为所述目标代码框架生成脚本的脚本参数,针对所述目标代码框架模板执行所述目标代码框架生成脚本,得到目标代码框架数据;

返回模块,用于将所述目标代码框架数据返回至所述第一用户。

根据本发明实施例的另一方面,提供了一种代码框架在线生成设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如任意一项所述的代码框架在线生成方法实施例的操作。

根据本发明实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使代码框架在线生成设备执行如任意一项所述的代码框架在线生成方法实施例的操作。

本发明实施例通过获取第一用户输入的目标编程语言类型以及目标代码框架类型;获取所述目标代码框架类型所对应的目标代码框架模板,确定所述目标代码框架模板内包含的目标模板参数项;其中,目标代码框架模板用于表征生成目标代码框架的模板,将所述目标模板参数项展示给所述第一用户,接收所述第一用户基于所述目标模板参数项输入的参数配置信息。从而区别于现有需要人工查找和获取所需要的基础代码框架,其效率和准确率都较低的问题,本发明实施例中为第一用户提供在线代码框架生成界面,供其选取目标编程语言类型以及目标代码框架类型,以及基于目标模板参数项输入参数配置信息,通过可视化在线生成的方式,提高用户的代码框架生成效率和准确率。随后,确定所述目标代码框架模板对应的目标代码框架生成脚本;其中,目标代码框架生成脚本是用于生成目标代码框架的脚本,其根据所述目标代码框架模板对应的模板参数替换逻辑以及框架内文件目录生成逻辑中的至少一项生成。从而区别于现有采取预设的代码框架部署工具生成代码框架来自动生成代码框架所存在的语言限制以及不支持扩展功能的问题,本发明实施例以所述参数配置信息为所述目标代码框架生成脚本的脚本参数,针对所述目标代码框架模板执行所述目标代码框架生成脚本,得到目标代码框架数据;将所述目标代码框架数据返回至所述第一用户,能够提高代码框架生成的效率、准确率。综上,本发明实施例能够支持任意编程语言的代码框架生成、适用面更广,完全web化,无需本地安装任何依赖工具,用户体验更佳友好,并且支持定制化的代码框架生成脚本,能按照自定义逻辑生成代码,由此提高了代码框架生成的效率和可用性。

上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的代码框架在线生成方法的流程示意图;

图2示出了本发明再一实施例提供的代码框架在线生成方法中的展示界面的示意图;

图3示出了本发明再一实施例提供的代码框架在线生成方法中的模板详情的展示页面示意图;

图4示出了本发明再一实施例提供的代码框架在线生成方法中的模板参数配置信息的示意图;

图5示出了本发明再一实施例提供的代码框架在线生成方法中的第一代码框架模板文件的文件目录示意图;

图6示出了本发明再一实施例提供的代码框架在线生成方法中的目标代码框架生成脚本所在目录的示意图;

图7示出了本发明再一实施例提供的代码框架在线生成方法中的目标代码框架模板示意图;

图8示出了本发明再一实施例提供的代码框架在线生成方法中的代码框架在线生成的流程示意图;

图9示出了本发明实施例提供的代码框架在线生成装置的结构示意图;

图10示出了本发明实施例提供的代码框架在线生成设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。

图1示出了本发明实施例提供的代码框架在线生成方法的流程图,该方法由计算机处理设备执行。该计算机处理设备可以包括手机、笔记本电脑等。如图1所示,该方法包括以下步骤:

步骤10:获取第一用户输入的目标编程语言类型以及目标代码框架类型。

其中,第一用户可以是需要生成代码框架的用户,目标编程语言类型用于表征第一用户所需生成的代码框架所使用的编程语言类型,如可以是java、C、Python等。具体地,可以展示预设的在线代码框架生成界面,以供用户输入目标编程语言类型。可选的,该在线代码框架生成界面中可以展示有多种预设的可选编程语言类型以供第一用户选择。

目标代码框架类型用于表征第一用户所需生成的代码框架的类型,其可以是预设的开源的可选代码框架类型中的一种,如SpringBootWeb等。进一步地,考虑开源可选代码框架的版本有多种,而不同版本下的代码框架的依赖配置等个性化配置的方式也可以存在区别,因此,目标代码框架类型还可以是基于开源代码框架进行个性化配置后的目标代码框架类型。

考虑到在实际的软件开发过程中,开发人员一般会根据历史项目开发经验以及开发习惯沉淀和提炼出自己所常用的代码框架的框架模板,从而在该框架模板的基础上,基于新的环境进行环境配置等个性化配置,就可以快速得到新环境下所需的代码框架。因此,为了进一步提高代码框架开发的效率,可以通过收集代码框架模板制定者上传的可选代码框架模板文件,确定该可选代码框架模板文件对应的可选代码框架类型以及可选编程语言类型,将可选代码框架类型以及可选编程语言类型对第一用户进行展示,以供第一用户在选取了对应的编程语言类型以及代码框架类型之后能够获取对应的可选代码框架模板,最后基于该对应的可选代码框架模板进行个性化配置后,得到第一用户最终需要的目标代码框架文件,从而一方面实现了基于模板进行代码框架生成的准确、高效,另一方面也实现了代码框架模板在模板制定者和模板需求者之间的在线共享、代码框架的在线生成,进一步提高了软件开发的代码复用性和开发效率及体验。

因此,在本发明的再一个实施例中,步骤10还包括:

步骤101:获取所述第一用户输入的目标编程语言类型。

目标编程语言类型用于表征第一用户所需生成的代码框架所使用的编程语言类型,如可以是java、C、Python等。具体地,可以展示预设的在线代码框架生成界面,以供用户输入目标编程语言类型。可选的,该在线代码框架生成界面中可以展示有多种预设的可选编程语言类型以供第一用户选择。

可选地,为了提高代码框架生成的用户体验、效率以及准确率,还可以通过预设的展示界面为第一用户展示多个可选编程语言类型,将用户在展示界面中所选取的可选编程语言类型确定为目标编程语言类型。其中,预设的展示界面可以如图2所示,图2中的“语言”字段下可以以下拉框的形式展示多个可选编程语言类型,以供第一用户选取。

步骤102:根据所述目标编程语言类型在预设的框架模板数据库中进行查找,得到所述目标编程语言类型对应的可选代码框架模板;其中,所述框架模板数据库中关联存储有所述目标代码框架模板以及所述目标模板参数项。

其中,框架模板数据库中存储有多个可选编程语言类型下的至少一个可选代码框架模板以及该至少一个可选代码框架模板对应的可选模板参数项。可选代码框架模板是用于生成一种可选的代码框架的模板文件,而其对应的可选模板参数项用于在前述模板文件的基础,通过输入文件名、目录名等个性化参数,对模板文件进行个性化设置,得到最终可用的代码框架文件。而可选代码框架模板可以是根据历史开发项目对应的代码框架数据进行聚类后得到的,或者由其他用户编写后上传的。

对应地,当可选代码框架模板是通过自动化手段根据历史项目开发成果提炼得到时,可选代码框架模板对应的可选模板参数项可以通过对可选代码框架模板中的各个代码行中的字段进行分析得到。而当可选代码框架模板是由其他用户共享时,可选代码框架模板对应的可选模板参数项还可以是共享模板的用户所预先指定的。

步骤103:将所述可选代码框架模板对所述第一用户进行展示。

具体地,可以通过前述步骤中的在线代码框架生成平台对可选代码框架模板进行展示。其中,为了提高第一用户的代码框架的生成体验,便于用户更准确地选取其所需要的代码框架模板,如图2所示,展示内容可以包括可选代码框架模板的概要信息以及具体包含的模板内容,其中,概要信息可以包括可选代码框架模板的名称、描述信息、作者以及更新时间等,如图3所示,模板内容则是可选代码框架模板内包括的所有文件以及目录的信息。具体地,第一用户可以通过点击图2中的“查看详情”,进入图3所示的可选代码框架模板内包括的所有文件以及目录的信息。

步骤104:根据所述第一用户针对所述可选代码框架模板输入的模板选择信息,确定所述目标代码框架类型。

具体地,将第一用户所选取的可选代码框架模板对应的代码框架类型,确定为目标代码框架类型。

步骤20:获取所述目标代码框架类型所对应的目标代码框架模板,确定所述目标代码框架模板内包含的目标模板参数项。

其中,目标代码框架模板可以是根据目标代码框架类型从前述步骤102中的框架模板数据库中获取的。目标模板参数项指的是目标代码框架模板中可填写的模板参数字段,通过对模板参数字段进行字段值配置,能够实现基于目标代码框架模板进行个性化参数配置,从而生成个性化配置后的目标代码框架。具体地,模板参数字段可以包括待开发项目对应的组织名称、项目标识、文件目录名以及数据包名等字段。如,针对利用maven工具创建的项目,组织名称可以是groupID,其表征项目组织唯一的标识码,对应于java的包的结构,是main目录里java的目录结构。而项目标识可以是ArtifactID,其为项目的唯一的标识符,实际对应项目的名称,即项目根目录的名称。对应地,数据包名可以是packageName,而文件目录名可以是Name,其作用在用根据packageName生成源码的src目录下的Java包目录,根据packageName和name生成动引导类。

进一步地,为了充分利用已有的代码开发经验,实现代码框架模板的在线共享,从而提高代码复用率和开发效率,在本发明的再一个实施例中,目标代码框架模板还可以是由第二用户上传的,因此,在步骤20之前,包括:

步骤201:获取第二用户针对所述目标代码框架类型输入的第一代码框架模板配置文件。

其中,第二用户可以是代码框架模板的制定者或提供者。其在输入第一代码框架模板配置文件时,还可以输入该文件对应的描述信息,如模板作者信息、最后更新时间、模板类型信息等。

步骤201包括:向所述第二用户展示预设的代码框架参数配置模板,以接收所述第二用户基于所述代码框架参数配置模板生成的所述目标模板参数项;其中,所述代码框架参数配置模板中包括目标代码框架模板包括的至少一个参数对应的名称配置信息以及参数属性配置信息。

其中,考虑到第二用户在制定代码框架的模板时一般会处于对应框架下的代码开发规范以及自身的开发习惯,因此,为了让第二用户所分享上传的第一代码框架模板配置文件能够更适用于第一用户的个性化使用,可以对第二用户进行代码框架参数配置方式的引导,即让第二用户在上传第一代码框架模板配置文件时,让其对使用第一代码框架模板中的可配置的个性化参数进行设置,以便第一用户在使用第二用户上传的模板文件时,直接根据第二用户所预先指定的目标模板参数项进行填写即可,由此提高第一用户与第二用户间所分享的代码框架模板的可用性。

具体地,如图4所示,代码框架参数配置模板用于对代码框架模板文件的参数的配置方式进行规范化,其中的名称配置信息用于表征待配置的参数的名称(图4中的“name”)、描述信息(图4中的“text”)等,名称,用于在代码对参数进行识别,而描述信息用于展示给第一用户,使其了解参数的内容以及功能含义,如针对“packageName”这一参数,其描述信息可以是“数据包的名称”。参数属性配置信息包括参数的参数类型(图4中的“type”)以及必填属性(图4中的“required”),其中,必填属性用于表征该参数在当前模板中是不是必须填写的,从而避免第一用户的参数输入不规范,导致无法基于模板生成代码框架。

步骤202:对所述第一代码框架模板配置文件进行解析,得到所述目标代码框架类型对应的所述目标代码框架模板以及所述目标模板参数项。

其中,对所述第一代码框架模板配置文件的文件目录进行识别,通过对识别结果进行语义分析,得到文件目录中实际属于目标代码框架模板的第一子文件目录,以及用于对目标模板参数项的信息进行设置的第二子文件目录。语义分析的目标是识别各个文件目录中的代码的功能,考虑到代码开发中一般遵循特定的项目文件命名规范,因此,根据文件目录名的语义可以确定该目录下的文件内容在开发过程中的功能,如是属于基本的代码框架内的,还是新增的用于指示模板配置参数信息的。

举例说明,图5示出了本发明再一实施例中的第一代码框架模板配置文件的文件目录示意图,如图5所示,第二子文件目录包括_config_.json文件,第一代码代码框架模板配置文件中的其他子文件目录,如.mvn、src、target等均属于第一子文件目录。具体地,__config__.json文件文件中包含的即为目标模板参数项的信息,具体可以包括目标参数项的名称、必填属性以及参数值的数据类型等。而第一子文件目录中的各个文件组合得到目标代码框架模板。

步骤30:将所述目标模板参数项展示给所述第一用户,接收所述第一用户基于所述目标模板参数项输入的参数配置信息。

具体地,可以通过预设的展示页面,如前述实施例中的图2所述的展示界面,以输入框的形式对目标模板参数项进行展示,以便于第一用户在输入框中输入各个目标模板参数项对应的参数配置信息,如图2所示,用户在选取了目标编程语言为Java8,以及选取了目标代码框架类型为SpringBootWeb之后,通过对SpringBootWeb对应的代码框架模板文件中的config.json文件进行解析后,得到4个模板配置参数项,分别为groupId、artifactId、name、packageName,并且确定上述模板配置参数项的类型为string类型,参数属性为必填,从而根据解析的结果在图2中的展示页面中动态生成模板参数输入框,即图2中的“模板参数”模块下的“groupId”、“artifactId”、“name”以及“packageName”,这四个模板参数分别对应的输入框。

步骤40:确定所述目标代码框架模板对应的目标代码框架生成脚本;所述目标代码框架生成脚本根据所述目标代码框架模板对应的模板参数替换逻辑以及框架内文件目录生成逻辑中的至少一项生成。

具体地,在确定作为代码框架生成的基础的目标代码框架模板,以及获取到用于对该目标代码框架模板进行个性化配置的第一用户输入的参数配置信息之后,考虑到代码框架本质上可以视作文件以及文件对应的目录的组合,因为在基于模板进行个性化时,一般需要进行的操作包括文件的更新以及目录的更新,其中,文件以及目录的更新在新目录或模板中原有目录中包括写入新文件,而在新建目录或文件时,必然需要对文件、目录进行标识,如命名,以及配置依赖等相关环境等,而这些特定对象的信息的配置都需要传入对应的参数进行替换。在此基础上,现有的代码框架生成工具,如JDK、Maven、IntellijIDEA等只支持预设的有限的配置功能,其无法支持在根据多样化的用户分享的自制模板进行配置时,所可能需要采取的配置逻辑,如在进行参数替换时,需要采用循环逻辑依次读取数组中的各个参数,或者根据判断逻辑判断某参数项下的值是否为空等。并且,代码框架生成工具只适用于对应的语言,对开发人员的学习成本较高。

因此,在本发明的一个实施例中,为了基于模板实现自动化生成代码框架,提高代码框架生成的效率,以及将代码框架生成逻辑与特定的开发语言解耦,考虑到脚本语言的编写的灵活性,更适合实现自定义逻辑,并且脚本中的代码框架生成逻辑的实现与代码框架所实际采用的语言无关,可以根据目标代码框架模板对应的模板参数替换逻辑以及框架内文件目录生成逻辑中的至少一项生成所述目标代码框架模板对应的目标代码框架生成脚本。其中,模板参数替换逻辑用于对目标代码框架模板中的可填充参数进行参数替换,如groupId、artifactId等标识信息。框架内文件目录生成逻辑用于在目标代码框架模板中生成新的文件或目录,如在src目录下生成新的Java包目录。

可以理解的是,可以根据模板参数替换逻辑以及框架内文件目录生成逻辑自动化生成目标代码框架生成脚本,在此基础上,还可以人工对目标代码框架生成脚本进行功能测试,提高可用性。可选地,考虑到目标代码框架生成脚本是与目标代码框架模板文件配合使用的,而目标代码框架模板文件可以是用户共享的,因此,目标代码框架生成脚本也可以是第三用户自身根据开发经验编写后上传共享的,因此,在本发明的再一个实施例中,步骤40还包括:

步骤401:获取第三用户发送的第二代码框架模板配置文件。

具体地,第三用户可以和第二用户是同一用户,即目标代码框架模板与该目标代码框架模板对应的目标代码框架生成脚本都由一个用户上传,从而提高代码框架模板的共享效率,提高代码开发效率。

步骤402:对所述第二代码框架模板配置文件进行解析,得到所述目标代码框架类型对应的所述目标代码框架模板、目标代码框架生成脚本以及目标模板参数项。

其中,类似于前述步骤202中的解析过程,可以对第二代码框架模板配置文件的文件目录进行识别,通过对识别结果进行语义分析,得到文件目录中实际属于目标代码框架模板的第一子文件目录,以及用于对目标模板参数项的信息进行设置的第二子文件目录、以及属于目标代码框架生成脚本的第三子文件目录。语义分析的目标是识别各个文件目录中的代码的功能,考虑到代码开发中一般遵循特定的项目问价命名规范,因此,根据文件目录名的语义可以确定该目录下的文件内容在开发过程中的功能,如是属于基本的代码框架内的,还是新增的用于指示模板配置参数信息的。

继续参考图5,图5中的文件目录中还包括有一_init_文件目录,该文件目录下的如图6所示,如图6所示,_init_文件目录中包括init.py,init.py即为目标代码框架生成脚本。

本发明实施例通过可视化界面,实现第一用户对于其所使用的编程语言下的代码框架模板的选取,并且第一用户只需要输入该模板所需的参数,由此实现在线代码框架的高效生成,在提升用户体验的同时,实现了代码框架模板以及代码框架生成脚本的在线共享。还可以对用户共享的代码框架模板以及代码框架生成脚本进行版本管理和更新维护,以保证第一用户查询和获取到的是最新版本的模板文件。

步骤50:以所述参数配置信息为所述目标代码框架生成脚本的脚本参数,针对所述目标代码框架模板执行所述目标代码框架生成脚本,得到目标代码框架数据。

其中,将参数配置信息传递进目标代码框架生成脚本,并执行参数传递后的目标代码框架生成脚本,脚本执行的结果即为输出目标代码框架数据。由于目标代码框架生成脚本是根据目标代码框架模板对应的模板参数替换逻辑以及框架内文件目录生成逻辑中的至少一项生成的,因此目标代码框架生成脚本可以根据输入的参数配置信息进行对应字段下的参数的替换和填充,或/和根据输入的参数配置信息生成文件以及目录。

具体地,目标代码框架脚本在进行参数替换时的逻辑包括:首先需要对目标代码框架模板进行可填充字段的识别,然后,将参数配置信息填充到对应的可填充字段下。

因此,在本发明的再一个实施例中,所述目标代码框架生成脚本包括模板参数替换脚本。其中,模板参数替换脚本用于对目标代码框架模板进行可填参数的填充。步骤50还包括:

步骤501:通过所述模板参数替换脚本根据预设的字段标记对所述目标代码框架模板进行可填参数字段识别,得到待填充字段。

其中,预设的字段标记是指代码框架模板中用于指示可填充字段的标记,如“#”或“$”、“*”等用于代码语言中进行特殊标记的字符串。可以理解的是,代码框架模板中所采取的用于标记可替换、可填充字段的字段标记可以根据代码框架模板才采用的开发语言确定,如当代码框架模板为Springboot web,其采用的编程语言为Java,则预设的字段标记为“$”。举例说明,图7示出了本发明再一实施例中的目标代码框架模板示意图,如图7所示,根据${groupId}、${artifactId}以及${name}前的预设的字段标记“$”,可以识别得到对应地待填充字段如下:“groupID”、“artifactID”以及“name”。

步骤502:通过所述模板参数替换脚本将所述参数配置信息对应的目标模板参数项与所述待填充字段进行匹配,将所述参数配置信息填充到所匹配到的所述待填充字段下。

其中,将参数配置信息中包括的目标模板参数项下的配置参数值,填充到与该目标模板参数项匹配的待填充字段下。举例说明,目标模板参数项可以是“groupID”,则将参数配置信息中的“groupID”下的配置参数值“0011”填充到待填充字段“groupID”下。

对应地,在本发明的再一个实施例中,所述目标代码框架生成脚本包括文件目录生成脚本;其中,文本目录生成脚本用于根据参数配置信息在目标代码框架模板中生成新的文件目录。步骤50还包括:

步骤510:通过所述文件目录生成脚本对所述参数配置信息进行识别,得到文件目录命名信息。

其中,考虑到文本目录的命名一般都采取预设的规则,如起始字段为表征框架类型、组织名称或语言类型等的预设字段,目录的不同层级之间用预设符号分割,如“.”或“\”,因此根据根据预设的目录命名规则对对所述参数配置信息进行识别,得到文件目录命名信息,如“com.xxxx.platform.demo”,

步骤511:根据所述目标代码框架模板对应的代码框架开发规范确定文件生成路径以及文件命名规则。

其中,代码框架开发规范用于规范在目标类型的代码框架下,文件生成的规范,包括文件的生成路径以及命名规则等。

步骤512:根据所述文件命名规则对所述文件目录命名信息进行转换,在所述文件生成路径下根据进行转换后的所述文件目录命名信息进行文件目录生成。

其中,转换的过程可以是分隔符的替换,将文件目录命名信息中的关键信息进行提取,并根据文件命名规则,如文件XX之间采取“\”分割,举例说明,将文件目录命名信息“com.company.platform.demo”转换为“com\company\platform\demo”。而文件生成路径用于表征命名转化后,新生成的文件目录所存放的路径,如,在SpringBootJava源码的src目录下,根据packageName生成新的Java包目录,而根据packageName和name生成SpringBootJava启动引导类。

步骤60:将所述目标代码框架数据返回至所述第一用户。

具体地,可以将目标代码框架数据打包为预设数据格式,如zip包格式,供第一用户下载到本地使用,从而能够有效提高代码框架生成的效率和准确率。

下面结合图8对本发明再一实施例中的代码框架生成的全生命周期的过程进行说明。代码框架在线生成的服务可以基于一代码框架在线生成平台,该代码框架在线生成平台包括代码框架生成器以及代码框架模板库。其中,如图8所示,一方面,平台接收模板开发者上传的模板文件,将该模板文件存储到代码框架模板库中,具体地,在存储时,可以对模板文件进行预处理,分析得到模板文件的编程语言类型以及对应的代码框架的类型,进行关联存储,便于后续查询。

另一方面,代码框架生成器接收模板使用者输入的代码框架生成请求,代码框架生成请求包括编程语言类型、代码框架模板类型以及对应的模板参数配置信息,具体地,模板使用者可以在展示界面中的模板参数输入框里面填入相关的参数值,点击生成按钮提交生成请求。举例说明,编程语言类型、代码框架模板类型以及对应的模板参数配置信息可以分别为Java8、Spring BootWeb以及“groupId、artifactId、packageName、name”下的具体信息。代码框架生成器接收到上述请求数据后,下载SpringBootWeb代码框架模板到本地临时目录,将4个参数值传递到Jython脚本中并执行脚本生成代码框架。该模板的Jython脚本实现了如下的生成逻辑:根据groupId、artifactId和name参数替换目录里面的pom.xml(其中,pom指projectobjectmodel)文件的maven坐标配置,根据packageName生成SpringBootJava源码的src目录下的Java包目录,根据packageName和name生成SpringBootJava启动引导类。最后,代码框架数据生成完毕后,代码框架生成器压缩代码框架数据为Zip包,并写回浏览器自动下载到模板使用者的本地。

本发明实施例通过获取第一用户输入的目标编程语言类型以及目标代码框架类型;获取所述目标代码框架类型所对应的目标代码框架模板,确定所述目标代码框架模板内包含的目标模板参数项;其中,目标代码框架模板用于表征生成目标代码框架的模板,将所述目标模板参数项展示给所述第一用户,接收所述第一用户基于所述目标模板参数项输入的参数配置信息。从而区别于现有需要人工查找和获取所需要的基础代码框架,其效率和准确率都较低的问题,本发明实施例中为第一用户提供在线代码框架生成界面,供其选取目标编程语言类型以及目标代码框架类型,以及基于目标模板参数项输入参数配置信息,通过可视化在线生成的方式,提高用户的代码框架生成效率和准确率。随后,确定所述目标代码框架模板对应的目标代码框架生成脚本;其中,目标代码框架生成脚本是用于生成目标代码框架的脚本,其根据所述目标代码框架模板对应的模板参数替换逻辑以及框架内文件目录生成逻辑中的至少一项生成。从而区别于现有采取预设的代码框架部署工具生成代码框架来自动生成代码框架所存在的语言限制以及不支持扩展功能的问题,本发明实施例以所述参数配置信息为所述目标代码框架生成脚本的脚本参数,针对所述目标代码框架模板执行所述目标代码框架生成脚本,得到目标代码框架数据;将所述目标代码框架数据返回至所述第一用户,能够提高代码框架生成的效率、准确率。综上,本发明实施例能够支持任意编程语言的代码框架生成、适用面更广,完全web化,无需本地安装任何依赖工具,用户体验更佳友好,并且支持定制化的代码框架生成脚本,能按照自定义逻辑生成代码,由此提高了代码框架生成的效率和可用性。

图9示出了本发明实施例提供的代码框架在线生成装置的结构示意图。如图9所示,该装置70包括:第一获取模块701、第二获取模块702、接收模块703、确定模块704、执行模块705和返回模块70。

其中,第一获取模块701,用于获取第一用户输入的目标编程语言类型以及目标代码框架类型;

第二获取模块702,用于获取所述目标代码框架类型所对应的目标代码框架模板,确定所述目标代码框架模板内包含的目标模板参数项;

接收模块703,用于将所述目标模板参数项展示给所述第一用户,接收所述第一用户基于所述目标模板参数项输入的参数配置信息;

确定模块704,用于确定所述目标代码框架模板对应的目标代码框架生成脚本;所述目标代码框架生成脚本根据所述目标代码框架模板对应的模板参数替换逻辑以及框架内文件目录生成逻辑中的至少一项生成;

执行模块705,用于以所述参数配置信息为所述目标代码框架生成脚本的脚本参数,针对所述目标代码框架模板执行所述目标代码框架生成脚本,得到目标代码框架数据;

返回模块706,用于将所述目标代码框架数据返回至所述第一用户。

本发明实施例提供的在线代码框架生成装置的操作过程与前述方法实施例大致相同,不再赘述。

本发明实施例提供的在线代码框架生成装置通过获取第一用户输入的目标编程语言类型以及目标代码框架类型;获取所述目标代码框架类型所对应的目标代码框架模板,确定所述目标代码框架模板内包含的目标模板参数项;其中,目标代码框架模板用于表征生成目标代码框架的模板,将所述目标模板参数项展示给所述第一用户,接收所述第一用户基于所述目标模板参数项输入的参数配置信息。从而区别于现有需要人工查找和获取所需要的基础代码框架,其效率和准确率都较低的问题,本发明实施例提供的在线代码框架生成装置为第一用户提供在线代码框架生成界面,供其选取目标编程语言类型以及目标代码框架类型,以及基于目标模板参数项输入参数配置信息,通过可视化在线生成的方式,提高用户的代码框架生成效率和准确率。随后,确定所述目标代码框架模板对应的目标代码框架生成脚本;其中,目标代码框架生成脚本是用于生成目标代码框架的脚本,其根据所述目标代码框架模板对应的模板参数替换逻辑以及框架内文件目录生成逻辑中的至少一项生成。从而区别于现有采取预设的代码框架部署工具生成代码框架来自动生成代码框架所存在的语言限制以及不支持扩展功能的问题,本发明实施例提供的在线代码框架生成装置以所述参数配置信息为所述目标代码框架生成脚本的脚本参数,针对所述目标代码框架模板执行所述目标代码框架生成脚本,得到目标代码框架数据;将所述目标代码框架数据返回至所述第一用户,能够提高代码框架生成的效率、准确率。综上,本发明实施例提供的在线代码框架生成装置能够支持任意编程语言的代码框架生成、适用面更广,完全web化,无需本地安装任何依赖工具,用户体验更佳友好,并且支持定制化的代码框架生成脚本,能按照自定义逻辑生成代码,由此提高了代码框架生成的效率和可用性。

图10示出了本发明实施例提供的代码框架在线生成设备的结构示意图,本发明具体实施例并不对代码框架在线生成设备的具体实现做限定。

如图10所示,该代码框架在线生成设备可以包括:处理器(processor)802、通信接口(CommunicationsInterface)804、存储器(memory)806、以及通信总线808。

其中:处理器802、通信接口804、以及存储器806通过通信总线808完成相互间的通信。通信接口804,用于与其它设备比如客户端或其它服务器等的网元通信。处理器802,用于执行程序810,具体可以执行上述用于代码框架在线生成方法实施例中的相关步骤。

具体地,程序810可以包括程序代码,该程序代码包括计算机可执行指令。

处理器802可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。代码框架在线生成设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。

存储器806,用于存放程序810。存储器806可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序810具体可以被处理器802调用使代码框架在线生成设备执行以下操作:

获取第一用户输入的目标编程语言类型以及目标代码框架类型;

获取所述目标代码框架类型所对应的目标代码框架模板,确定所述目标代码框架模板内包含的目标模板参数项;

将所述目标模板参数项展示给所述第一用户,接收所述第一用户基于所述目标模板参数项输入的参数配置信息;

确定所述目标代码框架模板对应的目标代码框架生成脚本;所述目标代码框架生成脚本根据所述目标代码框架模板对应的模板参数替换逻辑以及框架内文件目录生成逻辑中的至少一项生成;

以所述参数配置信息为所述目标代码框架生成脚本的脚本参数,针对所述目标代码框架模板执行所述目标代码框架生成脚本,得到目标代码框架数据;

将所述目标代码框架数据返回至所述第一用户。

本发明实施例提供的在线代码框架生成设备的操作过程与前述方法实施例大致相同,不再赘述。

本发明实施例提供的在线代码框架生成设备通过获取第一用户输入的目标编程语言类型以及目标代码框架类型;获取所述目标代码框架类型所对应的目标代码框架模板,确定所述目标代码框架模板内包含的目标模板参数项;其中,目标代码框架模板用于表征生成目标代码框架的模板,将所述目标模板参数项展示给所述第一用户,接收所述第一用户基于所述目标模板参数项输入的参数配置信息。从而区别于现有需要人工查找和获取所需要的基础代码框架,其效率和准确率都较低的问题,本发明实施例提供的在线代码框架生成设备为第一用户提供在线代码框架生成界面,供其选取目标编程语言类型以及目标代码框架类型,以及基于目标模板参数项输入参数配置信息,通过可视化在线生成的方式,提高用户的代码框架生成效率和准确率。随后,确定所述目标代码框架模板对应的目标代码框架生成脚本;其中,目标代码框架生成脚本是用于生成目标代码框架的脚本,其根据所述目标代码框架模板对应的模板参数替换逻辑以及框架内文件目录生成逻辑中的至少一项生成。从而区别于现有采取预设的代码框架部署工具生成代码框架来自动生成代码框架所存在的语言限制以及不支持扩展功能的问题,本发明实施例提供的在线代码框架生成设备以所述参数配置信息为所述目标代码框架生成脚本的脚本参数,针对所述目标代码框架模板执行所述目标代码框架生成脚本,得到目标代码框架数据;将所述目标代码框架数据返回至所述第一用户,能够提高代码框架生成的效率、准确率。综上,本发明实施例提供的在线代码框架生成设备能够支持任意编程语言的代码框架生成、适用面更广,完全web化,无需本地安装任何依赖工具,用户体验更佳友好,并且支持定制化的代码框架生成脚本,能按照自定义逻辑生成代码,由此提高了代码框架生成的效率和可用性。

本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一可执行指令,该可执行指令在代码框架在线生成设备上运行时,使得所述代码框架在线生成设备执行上述任意方法实施例中的代码框架在线生成方法。

可执行指令具体可以用于使得代码框架在线生成设备执行以下操作:

获取第一用户输入的目标编程语言类型以及目标代码框架类型;

获取所述目标代码框架类型所对应的目标代码框架模板,确定所述目标代码框架模板内包含的目标模板参数项;

将所述目标模板参数项展示给所述第一用户,接收所述第一用户基于所述目标模板参数项输入的参数配置信息;

确定所述目标代码框架模板对应的目标代码框架生成脚本;所述目标代码框架生成脚本根据所述目标代码框架模板对应的模板参数替换逻辑以及框架内文件目录生成逻辑中的至少一项生成;

以所述参数配置信息为所述目标代码框架生成脚本的脚本参数,针对所述目标代码框架模板执行所述目标代码框架生成脚本,得到目标代码框架数据;

将所述目标代码框架数据返回至所述第一用户。

本发明实施例提供的计算机存储介质存储的可执行指令的操作过程与前述方法实施例大致相同,不再赘述。

本发明实施例提供的计算机存储介质存储的可执行指令通过获取第一用户输入的目标编程语言类型以及目标代码框架类型;获取所述目标代码框架类型所对应的目标代码框架模板,确定所述目标代码框架模板内包含的目标模板参数项;其中,目标代码框架模板用于表征生成目标代码框架的模板,将所述目标模板参数项展示给所述第一用户,接收所述第一用户基于所述目标模板参数项输入的参数配置信息。从而区别于现有需要人工查找和获取所需要的基础代码框架,其效率和准确率都较低的问题,本发明实施例提供的计算机存储介质存储的可执行指令为第一用户提供在线代码框架生成界面,供其选取目标编程语言类型以及目标代码框架类型,以及基于目标模板参数项输入参数配置信息,通过可视化在线生成的方式,提高用户的代码框架生成效率和准确率。随后,确定所述目标代码框架模板对应的目标代码框架生成脚本;其中,目标代码框架生成脚本是用于生成目标代码框架的脚本,其根据所述目标代码框架模板对应的模板参数替换逻辑以及框架内文件目录生成逻辑中的至少一项生成。从而区别于现有采取预设的代码框架部署工具生成代码框架来自动生成代码框架所存在的语言限制以及不支持扩展功能的问题,本发明实施例提供的计算机存储介质存储的可执行指令以所述参数配置信息为所述目标代码框架生成脚本的脚本参数,针对所述目标代码框架模板执行所述目标代码框架生成脚本,得到目标代码框架数据;将所述目标代码框架数据返回至所述第一用户,能够提高代码框架生成的效率、准确率。综上,本发明实施例提供的计算机存储介质存储的可执行指令能够支持任意编程语言的代码框架生成、适用面更广,完全web化,无需本地安装任何依赖工具,用户体验更佳友好,并且支持定制化的代码框架生成脚本,能按照自定义逻辑生成代码,由此提高了代码框架生成的效率和可用性。

本发明实施例提供一种代码框架在线生成装置,用于执行上述代码框架在线生成方法。

本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使代码框架在线生成设备执行上述任意方法实施例中的代码框架在线生成方法。

本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令在计算机上运行时,使得所述计算机执行上述任意方法实施例中的代码框架在线生成方法。

在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。

本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

技术分类

06120116141089