一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于配置文件的代码生成方法及装置与流程

2022-12-20 01:25:51 来源:中国专利 TAG:


1.本技术涉及代码自动生成领域,尤其涉及一种基于配置文件的代码生成方法及装置。


背景技术:

2.随着信息时代的蓬勃发展,各行各业对各种软件的需求量与日俱增,各种软件产品也层出不穷。然而,由于开发人员的开发水平的差异,软件产品质量良莠不齐。面对庞大的市场需求,如何提高开发效率,降低开发的周期与开发成本,成为开发人员乃至整个行业的关注焦点。
3.在相关技术中,可以借助代码自动生成工具缩减软件产品开发过程的周期和所耗费的人力。
4.然而,相关技术中的代码自动生成工具所生成的代码往往需要进行繁琐的配置后才能正常使用,且生成的代码只能针对特定的业务场景,适用性较差。


技术实现要素:

5.本技术的目的是提供一种基于配置文件的代码生成方法及装置,用于提高代码模板的复用度,进而提高代码的生成效率。
6.本技术提供一种基于配置文件的代码生成方法,包括:
7.获取代码模板集合;所述代码模板集合包括至少一个代码模板;根据所述代码模板集合中每个代码模板对应的配置文件,生成目标页面中每个代码模板对应的代码片段;其中,所述代码模板集合为存在关联关系的代码模板;所述代码模板集合用于生成同一页面的不同部分的代码;所述配置文件用于指示对应代码模板所包含的接口的调用规则。
8.可选地,所述配置文件包括以下至少一项:代码模板中可调用的接口,代码模板中可调用接口的调用方式,代码模板中可调用接口的参数信息。
9.可选地,所述获取代码模板集合之前,所述方法还包括:在所述代码模板集合包含一个代码模板的情况下,基于多个页面中各个页面之间的代码差异性,生成所述代码模板集合中的代码模板以及代码模板对应的配置文件。
10.可选地,所述获取代码模板集合之前,所述方法还包括:在所述代码模板集合包含多个代码模板的情况下,基于多个页面中各个页面之间的代码差异性,生成所述代码模板集合中的代码模板、所述代码模板集合中每个代码模板对应的配置文件、以及所述代码模板集合中各个代码模板的调用顺序。
11.可选地,所述根据所述代码模板集合中每个代码模板对应的配置文件,生成目标页面中每个代码模板对应的代码片段,包括:按照所述代码模板集合中代码模板对应的配置文件指示的接口的调用规则,生成所述目标页面中所述代码模板对应的代码片段。
12.可选地,所述根据所述代码模板集合中每个代码模板对应的配置文件,生成目标页面中每个代码模板对应的代码片段,包括:按照所述代码模板集合中各个代码模板的调
用顺序以及每个代码模板对应的配置文件指示的接口的调用规则,生成所述目标页面中每个代码模板对应的代码片段。
13.可选地,所述根据所述代码模板集合中每个代码模板对应的配置文件,生成目标页面中每个代码模板对应的代码片段,包括:根据所述代码模板集合中每个代码模板对应的动态代码占位标识,确定所述每个代码模板在所述目标页面中对应的位置信息;按照所述每个代码模板的位置信息指示的代码位置,生成所述每个代码模板对应的代码片段。
14.本技术还提供一种基于配置文件的代码生成装置,包括:
15.获取模块,用于获取代码模板集合;所述代码模板集合包括至少一个代码模板;代码生成模块,用于根据所述代码模板集合中每个代码模板对应的配置文件,生成目标页面中每个代码模板对应的代码片段;其中,所述代码模板集合为存在关联关系的代码模板;所述代码模板集合用于生成同一页面的不同部分的代码;所述配置文件用于指示对应代码模板所包含的接口的调用规则。
16.可选地,所述配置文件包括以下至少一项:代码模板中可调用的接口,代码模板中可调用接口的调用方式,代码模板中可调用接口的参数信息。
17.可选地,所述装置还包括:模板生成模块;所述模板生成模块,用于在所述代码模板集合包含一个代码模板的情况下,基于多个页面中各个页面之间的代码差异性,生成所述代码模板集合中的代码模板以及代码模板对应的配置文件。
18.可选地,所述模板生成模块,还用于在所述代码模板集合包含多个代码模板的情况下,基于多个页面中各个页面之间的代码差异性,生成所述代码模板集合中的代码模板、所述代码模板集合中每个代码模板对应的配置文件、以及所述代码模板集合中各个代码模板的调用顺序。
19.可选地,所述代码生成模块,具体用于按照所述代码模板集合中所述代码模板对应的配置文件指示的接口的调用规则,生成所述目标页面中所述代码模板对应的代码片段。
20.可选地,所述代码生成模块,具体用于按照所述代码模板集合中各个代码模板的调用顺序以及每个代码模板对应的配置文件指示的接口的调用规则,生成所述目标页面中每个代码模板对应的代码片段。
21.可选地,所述装置还包括:确定模块;所述确定模块,用于根据所述代码模板集合中每个代码模板对应的动态代码占位标识,确定所述每个代码模板在所述目标页面中对应的位置信息;所述代码生成模块,具体用于按照所述每个代码模板的位置信息指示的代码位置,生成所述每个代码模板对应的代码片段。
22.本技术还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上述任一种所述基于配置文件的代码生成方法的步骤。
23.本技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于配置文件的代码生成方法的步骤。
24.本技术还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于配置文件的代码生成方法的步骤。
25.本技术提供的基于配置文件的代码生成方法及装置,在需要生成目标页面的代码
的情况下,获取代码模板集合。之后,根据所述代码模板集合中每个代码模板对应的配置文件,生成目标页面中每个代码模板对应的代码片段。其中,所述代码模板集合为存在关联关系的代码模板;所述代码模板集合用于生成同一页面的不同部分的代码;所述配置文件用于指示对应代码模板所包含的接口的调用规则。如此,能够根据每个代码模板的配置文件,生成代码模板对应的代码,提高代码模板的复用度和代码生成的效率。
附图说明
26.为了更清楚地说明本技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
27.图1是本技术提供的基于配置文件的代码生成方法的流程示意图之一;
28.图2是本技术提供的基于配置文件的代码生成方法的流程示意图之二;
29.图3是本技术提供的基于配置文件的代码生成装置的结构示意图;
30.图4是本技术提供的电子设备的结构示意图。
具体实施方式
31.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术中的附图,对本技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
32.本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
33.在相关技术中,比较流行的代码生成工具包括:基于全球广域网(world wide web,web)开发场景的beetl、freemarker等模版引擎,以及基于c#语言的codesmith模版引擎。以freemarker模版引擎为例,该模板引擎为视图,模型,控制器(model view controller,mvc)框架,即数据由后端代码通过数据模型(model)传递给代码模板,代码模板负责数据的展示(view),二者之间通过控制器(controller)进行控制。
34.上述相关技术中提供的代码生成工具,主要解决的是web开发过程中,页面page数据绑定等问题。其配置的代码模板需要大量的自定义标签,开发和维护成本较高,且代码模版只能针对特定的业务场景,代码模版缺乏复用度。
35.针对相关技术中存在的技术问题,本技术实施例提供了一种基于配置文件的代码生成方法,能够显著提高代码模板的复用度,进而提高代码生成的效率,节省开发时间。
36.下面结合附图,通过具体的实施例及其应用场景对本技术实施例提供的基于配置文件的代码生成方法进行详细地说明。
37.如图1所示,本技术实施例提供的一种基于配置文件的代码生成方法,该方法可以包括下述步骤101和步骤102:
38.步骤101、获取代码模板集合。
39.其中,所述代码模板集合包括至少一个代码模板;所述代码模板集合为存在关联关系的代码模板;所述代码模板集合用于生成同一页面的不同部分的代码。
40.示例性地,上述代码模板为基于多个页面生成的模板。在业务代码开发过程中,尤其是移动端业务代码的开发,多个页面存在较共同的代码(例如,逻辑代码和用户界面(user interface,ui)代码,这些代码可以通过预设规则抽取出一套代码模版,之后,可以通过该代码模板快速生成代码以代替开发者手工编写代码。
41.示例性地,上述代码模板集合可以存储于服务器中,当用户需要时,可以从服务器中获取上述代码模板集合。
42.需要说明的是,本技术实施例中,需要通过一个或者多个代码模板来生成一个页面的代码,且通常情况下,需要多个代码模板生成同一页面的不同部分的代码。
43.步骤102、根据所述代码模板集合中每个代码模板对应的配置文件,生成目标页面中每个代码模板对应的代码片段。
44.其中,所述配置文件用于指示对应代码模板所包含的接口的调用规则。代码模板对应的配置文件可以包含在代码模板集合中,也可以作为单独的文件存在。
45.示例性地,所述配置文件包括以下至少一项:代码模板中可调用的接口,代码模板中可调用接口的调用方式,代码模板中可调用接口的参数信息。
46.示例性地,针对本技术实施例中的代码模板,在生成代码模板的过程中,还会生成对应的配置文件。在使用代码模板生成代码的过程中,可以按照该配置文件指示的调用规则调用代码模板的接口。
47.举例说明,上述配置文件可以以json字符串的形式存储,如下所示:
[0048][0049]
上述json字符串用于指示对应的代码模板中可供外部调用的接口,以及该接口的参数等。其中,参数“type”表示外部调用的方式,包括:调用方法method,构造construction方法;参数“method”表示可以调用的接口,“name”表示接口的名称(即接口名为“request”的接口),“params”表示该接口需要传入的参数以及每个参数的数据类型;参数“call”表示
如何调用“method”中包含的接口。
[0050]
示例性地,上述步骤101之前,本技术实施例提供的基于配置文件的代码生成方法,还可以包括以下步骤103:
[0051]
步骤103、在所述代码模板集合包含一个代码模板的情况下,基于多个页面中各个页面之间的代码差异性,生成所述代码模板集合中的代码模板以及代码模板对应的配置文件。
[0052]
可以理解的是,在上述代码模板集合仅包含一个代码模板的情况下,不需要考虑调用顺序,因此,在生成上述代码模板集合时,不需要生成调用顺序。并且,针对该一个代码模板的生成,可以抽取各个页面的公共部分来作为代码模板的固定代码部分,即静态部分,同时,将各个页面的差异部分作为代码模板的动态代码部分,即动态部分。
[0053]
示例性地,上述步骤101之前,本技术实施例提供的基于配置文件的代码生成方法,还可以包括以下步骤104:
[0054]
步骤104、在所述代码模板集合包含多个代码模板的情况下,基于多个页面中各个页面之间的代码差异性,生成所述代码模板集合中的代码模板、所述代码模板集合中每个代码模板对应的配置文件、以及所述代码模板集合中各个代码模板的调用顺序。
[0055]
可以理解的是,在上述代码模板集合包含多个代码模板的情况下,还需要生成上述代码模板集合中各个代码模板的调用顺序,方便在生成目标页面的代码时,按照调用顺序调用每个代码模板。
[0056]
示例性地,由于上述代码模板集合用于生成同一页面文件,因此,在调用上述代码模板集合中的每个代码模板时,需要按照一定的调用顺序进行调用,否则,在生成代码时可能出现错误。
[0057]
举例说明,以上述代码模板集合包括:模板a和模板b为例,在模板b需要调用模板a中的方法a,若在生成目标页面的过程中,若首先调用了模板b,此时,模板a中的方法a还未初始化,则会出现找不到方法a的错误提示。因此,需要按照生成上述代码模板集合时指定的调用顺序调用上述代码模板集合中的各个代码模板。
[0058]
示例性地,在生成目标页面的过程中,可以按照上述配置文件指示的调用规则调用对应的代码模板。
[0059]
具体地,上述步骤102,可以包括以下步骤102a或者步骤102b:
[0060]
步骤102a、按照所述代码模板集合中所述代码模板对应的配置文件指示的接口的调用规则,生成所述目标页面中所述代码模板对应的代码片段。
[0061]
示例性地,在上述代码模板集合中仅包含一个代码模板的情况下,仅需要按照该代码模板对应的配置文件指示的接口调用规则调用该代码模板即可。
[0062]
步骤102b、按照所述代码模板集合中各个代码模板的调用顺序以及每个代码模板对应的配置文件指示的接口的调用规则,生成所述目标页面中每个代码模板对应的代码片段。
[0063]
示例性地,在上述代码模板集合中包含多个代码模板的情况下,还需要按照上述调用顺序调用各个代码模板。
[0064]
举例说明,按照配置文件指示的接口调用规则调用代码模板,可以参照以下步骤:如上述的json字符串(即配置文件),在调用该配置文件对应的代码模板时,根据该配置文
件的指示,可以调用该代码模板中的“request”接口,调用该接口时,需要传递的参数分别为:“pageno”、“pagesize”以及“id”,上述参数的数据类型分别为:整型“int”、“int”以及字符串“string”。
[0065]
示例性地,由于上述代码模板集合中的每个代码模板,用于生成目标页面中不同部分的代码片段,因此,还需要确定每个代码模板在目标页面中生成代码片段的具体位置。
[0066]
示例性地,上述步骤102中,生成目标页面中每个代码模板对应的代码片段的步骤,具体可以包括以下步骤102c1和步骤102c2:
[0067]
步骤102c1、根据所述代码模板集合中每个代码模板对应的动态代码占位标识,确定所述每个代码模板在所述目标页面中对应的位置信息。
[0068]
需要说明的是,在调用上述代码模板集合中的任一代码模板时,均可以基于该代码模板对应的配置文件指示的调用规则对其进行调用。
[0069]
步骤102c2、按照所述每个代码模板的位置信息指示的代码位置,生成所述每个代码模板对应的代码片段。
[0070]
示例性地,在生成目标页面对应的代码的过程中,可以根据每个代码模板对应的动态代码占位符,确定每个代码模板在目标页面中对应的位置信息。该位置信息用于指示在目标页面中生成的代码片段的位置。
[0071]
示例性地,在确定每个代码模板在目标页面中对应的位置信息后,可以按照每个代码模板的位置信息指示的代码位置,生成每个代码模板对应的代码片段。之后,将生成的所有代码进行组合,得到目标页面对应的代码。
[0072]
示例性地,本技术实施例提供的基于配置文件的代码生成方法,可以包含如图3所示的两个引擎(模板配置引擎和代码生成引擎)。其中,模板配置引擎用于生成代码模板,具体步骤为:s1、基于多个页面生成抽取多个模板;s2、配置每个模板可调用接口的接口定义;s3、关联上述多个模板,并配置各个模板的调用顺序;s4、将生成的模板进行云端存储。代码生成引擎根据代码模板生成目标页面的代码片段的具体步骤包括:s5、代码生成引擎从云端拉取需要用到的模板;s6、获取模板文件,解析各个模板的调用顺序以及每个模板的调用规则;s7、根据调用顺序以及调用规则,在对应的位置生成每个模板对应的代码片段;s8、整合各个代码片段,完成目标页面的代码生成。
[0073]
需要说明的是,开发人员可以通过云端与其他开发人员共享代码模板,以提高开发效率。
[0074]
需要说明的是,如图3所示的代码生成流程,为基于每个代码模板的配置文件实现的。
[0075]
本技术实施例提供的基于配置文件的代码生成方法,在生成目标页面的代码的情况下,从云端获取生成该目标页面所需的代码模板集合。之后,根据代码模板集合中每个代码模板对应的配置文件,生成目标页面中每个代码模板对应的代码片段。如此,能够根据每个代码模板的配置文件,生成代码模板对应的代码,提高代码模板的复用度和代码生成的效率。
[0076]
需要说明的是,本技术实施例提供的基于配置文件的代码生成方法,执行主体可以为基于配置文件的代码生成装置,或者该基于配置文件的代码生成装置中的用于执行基于配置文件的代码生成方法的控制模块。本技术实施例中以基于配置文件的代码生成装置
执行基于配置文件的代码生成方法为例,说明本技术实施例提供的基于配置文件的代码生成装置。
[0077]
需要说明的是,本技术实施例中,上述各个方法附图所示的。基于配置文件的代码生成方法均是以结合本技术实施例中的一个附图为例示例性的说明的。具体实现时,上述各个方法附图所示的基于配置文件的代码生成方法还可以结合上述实施例中示意的其它可以结合的任意附图实现,此处不再赘述。
[0078]
下面对本技术提供的基于配置文件的代码生成装置进行描述,下文描述的与上文描述的基于配置文件的代码生成方法可相互对应参照。
[0079]
图3为本技术一实施例提供的基于配置文件的代码生成装置的结构示意图,如图3所示,具体包括:
[0080]
获取模块301,用于获取代码模板集合;所述代码模板集合包括至少一个代码模板;代码生成模块302,用于根据所述代码模板集合中每个代码模板对应的配置文件,生成目标页面中每个代码模板对应的代码片段;其中,所述代码模板集合为存在关联关系的代码模板;所述代码模板集合用于生成同一页面的不同部分的代码;所述配置文件用于指示对应代码模板所包含的接口的调用规则。
[0081]
可选地,所述配置文件包括以下至少一项:代码模板中可调用的接口,代码模板中可调用接口的调用方式,代码模板中可调用接口的参数信息。
[0082]
可选地,所述装置还包括:模板生成模块;所述模板生成模块,用于在所述代码模板集合包含一个代码模板的情况下,基于多个页面中各个页面之间的代码差异性,生成所述代码模板集合中的代码模板以及代码模板对应的配置文件。
[0083]
可选地,所述模板生成模块,还用于在所述代码模板集合包含多个代码模板的情况下,基于多个页面中各个页面之间的代码差异性,生成所述代码模板集合中的代码模板、所述代码模板集合中每个代码模板对应的配置文件、以及所述代码模板集合中各个代码模板的调用顺序。
[0084]
可选地,所述代码生成模块302,具体用于按照所述代码模板集合中所述代码模板对应的配置文件指示的接口的调用规则,生成所述目标页面中所述代码模板对应的代码片段。
[0085]
可选地,所述代码生成模块302,具体用于按照所述代码模板集合中各个代码模板的调用顺序以及每个代码模板对应的配置文件指示的接口的调用规则,生成所述目标页面中每个代码模板对应的代码片段。
[0086]
可选地,所述装置还包括:确定模块;所述确定模块,用于根据所述代码模板集合中每个代码模板对应的动态代码占位标识,确定所述每个代码模板在所述目标页面中对应的位置信息;所述代码生成模块302,具体用于按照所述每个代码模板的位置信息指示的代码位置,生成所述每个代码模板对应的代码片段。
[0087]
本技术提供的基于配置文件的代码生成装置,在生成目标页面的代码的情况下,从云端获取生成该目标页面所需的代码模板集合。之后,根据代码模板集合中每个代码模板对应的配置文件,生成目标页面中每个代码模板对应的代码片段。如此,能够根据每个代码模板的配置文件,生成代码模板对应的代码,提高代码模板的复用度和代码生成的效率。
[0088]
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处
理器(processor)410、通信接口(communications interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行基于配置文件的代码生成方法,该方法包括:获取代码模板集合;根据所述代码模板集合中每个代码模板对应的配置文件,生成目标页面中每个代码模板对应的代码片段;其中,所述代码模板集合为存在关联关系的代码模板;所述代码模板集合用于生成同一页面的不同部分的代码;所述配置文件用于指示对应代码模板所包含的接口的调用规则。
[0089]
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0090]
另一方面,本技术还提供一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的基于配置文件的代码生成方法,该方法包括:获取代码模板集合;根据所述代码模板集合中每个代码模板对应的配置文件,生成目标页面中每个代码模板对应的代码片段;其中,所述代码模板集合为存在关联关系的代码模板;所述代码模板集合用于生成同一页面的不同部分的代码;所述配置文件用于指示对应代码模板所包含的接口的调用规则。
[0091]
又一方面,本技术还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的基于配置文件的代码生成方法,该方法包括:获取代码模板集合;根据所述代码模板集合中每个代码模板对应的配置文件,生成目标页面中每个代码模板对应的代码片段;其中,所述代码模板集合为存在关联关系的代码模板;所述代码模板集合用于生成同一页面的不同部分的代码;所述配置文件用于指示对应代码模板所包含的接口的调用规则。
[0092]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0093]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0094]
最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献