代码生成方法、装置、设备、存储介质及计算机程序与流程

文档序号:35344220发布日期:2023-09-07 17:23阅读:20来源:国知局
代码生成方法、装置、设备、存储介质及计算机程序与流程

本技术涉及计算机,特别涉及一种代码生成方法、装置、设备、存储介质及计算机程序。


背景技术:

1、javascript(简称“js”)是一种具有函数优先的轻量级、解释型或即时编译型的编程语言。该语言被广泛应用于全球广域网(world wide web,web)应用的开发。

2、在web应用开发过程中,为了提升代码的编写效率,技术人员通常使用基于js的开发框架对web应用进行设计,比如,vue、react等等。然而,在对web应用进行设计时,技术人员编写的web应用代码包括业务逻辑代码和外观代码,但由于web应用通常需要适配手机、电脑等不同的终端设备,而不同的终端设备所对应的web应用的外观不同。在这种情况下,对于具有相同业务逻辑的web应用,技术人员需要重复编写针对不同终端的web应用的代码,使得web应用具有与终端设备相适应的外观,这会导致技术人员将大量的时间花费在代码的书写上,从而大大增加了人力成本与时间成本。


技术实现思路

1、本技术提供了一种代码生成方法、装置、设备、存储介质及计算机程序,可以解决相关技术中应用开发的效率较低的问题。所述技术方案如下:

2、第一方面,提供了一种代码生成方法,所述方法包括:获取目标应用的业务逻辑代码和所述目标应用在目标开发框架下的至少一个外观代码,所述业务逻辑代码指示所述目标应用的功能,所述至少一个外观代码指示所述目标应用的至少一种外观,所述至少一种外观与至少一种终端类型对应;基于所述业务逻辑代码,确定所述目标应用在所述目标开发框架下的无渲染代码;对所述无渲染代码和所述至少一个外观代码进行组织,以得到所述目标应用在所述目标开发框架下的完整代码。

3、通过获取目标应用的业务逻辑代码和目标应用在目标开发框架下的至少一个外观代码,从而基于该业务逻辑代码和该至少一个外观代码,确定目标应用在目标开发框架下的完整代码。由于该至少一个外观代码指示目标应用的至少一种外观,并且该至少一种外观与至少一种终端类型对应,因此,该完整代码能够在保证目标应用与目标开发框架相适应的同时,还能够保证目标应用的外观能够适应不同的终端设备。换句话说,本技术提供的一种代码生成方法能够自动生成目标应用在目标框架下的完整代码,无需技术人员重复编写针对不同终端和不同开发框架的目标应用的代码,从而大大提升代码编写的效率,有效节约人力成本和时间成本。

4、获取目标应用的业务逻辑代码和目标应用在目标开发框架下的至少一个外观代码的实现方式包括多种,接下来对其中的两种方式进行介绍。

5、第一种实现方式,云平台能够显示代码编写界面,该代码编写界面用于编写目标应用的业务逻辑代码和目标应用在目标开发框架下的至少一个外观代码,响应于代码编写完成操作,云平台能够获取目标应用的业务逻辑代码和目标应用在目标开发框架下的至少一个外观代码。

6、第二种实现方式,技术人员可以在其他具有代码编写功能的云平台上完成对目标应用的业务逻辑代码和该至少一个外观代码的编写,进而将该目标应用的业务逻辑代码和该至少一个外观代码发送给云平台,云平台接收该目标应用的业务逻辑代码和该至少一个外观代码。

7、也就是说,该目标应用的业务逻辑代码和该至少一个外观代码可以是技术人员在云平台上编写后直接得到的,也可以是技术人员在其他具有代码编写功能的云平台编写完成后发送给云平台的。当然,在实际应用中,云平台还可以通过其他的方式获取到目标应用的业务逻辑代码和该至少一个外观代码。

8、可选地,上述业务逻辑代码为柯里化函数形式,该业务逻辑代码和该至少一个外观代码为javascript语言。

9、可以按照下述步骤(1)-(2)确定目标应用在目标开发框架下的无渲染代码。

10、(1)确定该业务逻辑代码中的至少一个逻辑函数的函数名、至少一个逻辑函数分别对应的至少一个参数的参数名以及该至少一个参数中每个参数的属性名。

11、业务逻辑代码包括逻辑代码注释和逻辑代码本体,在这种情况下,可以从逻辑代码本体中获取该至少一个逻辑函数的函数名,从逻辑代码注释中获取至少一个逻辑函数分别对应的至少一个参数的参数名以及每个参数的属性名。

12、云平台可以从业务逻辑代码本体中确定第一位置,该第一位置处的代码中包含该至少一个逻辑函数的函数名,从该第一位置处的代码中获取该至少一个逻辑函数的函数名。

13、云平台存储有第一字符串,在这种情况下,云平台可以按照相关算法,从业务逻辑代码中搜索第一字符串,将该第一字符串所在的位置确定为第一位置,将该第一位置处的代码中除第一字符串之外的代码作为至少一个逻辑函数的函数名。

14、需要说明的是,在实际应用中,该第一字符串还可以通过其他方式确定。比如,技术人员也可以在云平台中输入第一字符串,以使云平台获取到该第一字符串。在技术人员输入第一字符串的情况下,云平台能够显示第一字符串输入界面,响应于第一字符串输入完成操作,获取技术人员输入的第一字符串。

15、基于上文描述,该至少一个逻辑函数的函数名可以是云平台自行从业务逻辑代码本体中确定的。在实际应用中,该至少一个逻辑函数的函数名也可以通过其他方式确定。比如,技术人员可以直接在云平台中输入该至少一个逻辑函数的函数名,以使云平台能够获取该至少一个逻辑函数的函数名。

16、为了便于云平台对逻辑代码注释进行识别,该逻辑代码注释的格式为目标格式。在这种情况下,云平台中事先存储有目标格式,云平台能够根据该目标格式,按照相关算法,从该逻辑代码注释中确定至少一个逻辑函数分别对应的至少一个参数的参数名以及至少一个参数的属性名。

17、(2)基于该至少一个逻辑函数的函数名、至少一个参数的参数名、至少一个参数中每个参数的属性名和业务逻辑代码的存储路径,对目标开发框架对应的无渲染模板进行填充,以得到该目标应用在目标开发框架下的无渲染代码。

18、目标开发框架对应的无渲染模板包括第一待填充区域,该第一待填充区域包括逻辑函数导入子区域、逻辑代码路径子区域、初始化子区域、api对象创建区域、挂载与更新区域以及api对象已创建区域。在这种情况下,可以将该至少一个逻辑函数的函数名写入逻辑函数导入子区域,将业务逻辑代码的存储路径写入逻辑代码路径子区域,将至少一个参数中具有目标属性名的参数作为第一参数,该目标属性名指示具有该目标属性名的参数为数据模型,基于第一参数对初始化子区域进行填充,将第一参数的参数名以及至少一个逻辑函数中第一逻辑函数的函数名写入api对象创建区域,该第一逻辑函数为不具有目标参数名的逻辑函数,该目标参数名指示具有该目标参数名的逻辑函数为接口函数。若至少一个逻辑函数中存在挂载函数,则将挂载函数的函数名在目标框架下的代码写入挂载与更新区域。将至少一个逻辑函数中除第一逻辑函数之外的逻辑函数的函数名写入api对象已创建区域,以实现对目标开发框架对应的无渲染模板进行填充。

19、基于第一参数对初始化子区域进行填充的实现过程包括:确定该第一参数在目标框架下的初始化代码,将该初始化代码写入初始化子区域。

20、云平台中存储有目标属性名与目标框架下的初始化代码的对应关系,基于该第一参数包括的属性名中与目标属性名相同的属性名,从目标属性名与目标框架下的初始化代码的对应关系中,能够确定第一参数在目标框架下的初始化代码。

21、需要说明的是,上述目标属性名、目标参数名和挂载函数的函数名是事先设置的。该目标属性名可以设置为model,该目标参数名可以设置为api,挂载函数的函数名可以设置为mounted。当然,在实际应用中,还可以将目标属性名、目标参数名和挂载函数的函数名设置为其他名称。

22、在实际应用中,在对目标开发框架对应的无渲染模板进行填充之前,云平台需要确定目标开发框架。在这种情况下,云平台可以显示开发框架选择界面,该开发框架选择界面用于选择目标开发框架,响应于开发框架选择完成操作,云平台能够确定目标开发框架。也就是说,云平台在显示开发框架选择界面之后,技术人员能够在该开发框架选择界面选择一个开发框架作为目标开发框架,在选择完成之后,技术人员可以触发开发框架选择完成操作。云平台响应于开发框架选择完成操作,确定目标开发框架。

23、由于存在多个开发框架,在不同的开发框架下,得到目标应用在目标开发框架下的完整代码方式不同,接下来对其中的两种开发框架对应的实现方式进行介绍。

24、第一种情况,目标开发框架为vue框架,目标应用为web应用,该目标应用包括至少一个组件,该至少一个外观代码指示该至少一个组件的至少一种外观。在这种情况下,可以基于该至少一个外观代码,确定至少一个组件中包含的子组件的组件名以及该至少一个组件的属性名,基于至少一个组件的属性名、该子组件的组件名和无渲染代码的存储路径,对目标开发框架对应的代码适配模板进行填充,以得到目标应用在目标开发框架下的完整代码。

25、该至少一个外观代码中每个外观代码包括外观代码注释,在这种情况下,可以从该外观代码注释中获取至少一个组件中的子组件的组件名以及该至少一个组件的属性名。

26、为了便于云平台对外观代码注释进行识别,该外观代码注释的格式为目标格式。在这种情况下,云平台中事先存储有目标格式,云平台能够根据该目标格式,按照相关算法,从该外观代码注释中确定至少一个组件中的子组件的组件名以及该至少一个组件的属性名。

27、可选地,该目标格式为jsdoc格式。当然,该逻辑代码注释的格式还可以是其他类型的格式。

28、目标开发框架对应的代码适配模板包括第二待填充区域,该第二待填充区域包括无渲染代码路径子区域、组件属性子区域和子组件子区域。在这种情况下,基于至少一个组件的属性名、至少一个组件中包含的子组件的组件名和无渲染代码的存储路径,对目标开发框架对应的代码适配模板进行填充的实现过程包括:将无渲染代码的存储路径写入无渲染代码路径子区域,将至少一个组件的属性名写入组件属性子区域,基于至少一个组件中包含的子组件的组件名,对子组件子区进行填充。

29、可选地,云平台中存储有子组件填充代码模板,该子组件填充代码模板包括名称区域和路径区域。在这种情况下,基于至少一个组件中包含的子组件的组件名,对子组件子区进行填充的实现过程包括:对于至少一个组件中包含的任意一个子组件来说,将该子组件的组件名写入子组件填充代码模板的名称区域,将该子组件完整代码的存储路径写入子组件填充代码模板的路径区域,以得到该子组件对应的填充代码。对至少一个组件中包含的每个子组件都按照相同的方式,能够得到每个子组件对应的填充代码,将该每个子组件对应的填充代码写入子组件子区域,以实现对子组件子区域的填充。

30、为了便于技术人员提高应用的开发效率和代码质量,目标开发框架还具有相应的工具库代码。在这种情况下,目标开发框架对应的代码适配模板还包括工具库路径子区域,云平台能够将目标开发框架对应的工具库代码的存储路径写入工具库路径子区。

31、第二种情况,目标开发框架为react框架,目标应用为web应用,该目标应用包括至少一个组件,该至少一个外观代码指示该至少一个组件的至少一种外观。在这种情况下,可以基于该至少一个外观代码确定该至少一个组件的属性名,确定业务逻辑代码中的至少一个逻辑函数的函数名,基于该至少一个组件的属性名、至少一个逻辑函数的函数名和无渲染代码的存储路径,对目标开发框架对应的代码适配模板进行填充,以得到目标应用在目标开发框架下的完整代码。

32、该至少一个外观代码中每个外观代码包括外观代码本体,或者,包括外观代码本体和外观代码注释。在外观代码包括外观代码本体的情况下,从该外观代码本体中获取至少一个组件的属性名,在外观代码包括外观代码本体和外观代码注释的情况下,从该外观代码本体或者该外观代码注释中获取至少一个组件的属性名。

33、云平台可以从外观代码本体中确定第二位置,该第二位置处的代码中包含该至少一个组件的属性名,从该第一位置处的代码中获取该至少一个组件的属性名。

34、可选地,云平台存储有第二字符串,在这种情况下,云平台可以按照相关算法,从外观代码本体中搜索第二字符串,将该第二字符串所在的位置确定为第二位置,将该第二位置处的代码中除第二字符串之外的代码作为至少一个组件的属性名。

35、需要说明的是,在实际应用中,该第二字符串还可以通过其他方式确定。比如,技术人员也可以在云平台中输入第二字符串,以使云平台获取到该第二字符串。在技术人员输入第二字符串的情况下,云平台能够显示第二字符串输入界面,响应于第二字符串输入完成操作,获取技术人员输入的第二字符串。比如,云平台能够显示第二字符串指定界面,技术人员能够在该第二字符串指定界面输入第二字符串,在输入完成之后,技术人员能够触发第二字符串输入完成操作。云平台响应于技术人员触发的第二字符串输入完成操作,获取技术人员输入的第二字符串。

36、基于上文描述,该至少一个组件的属性名可以是云平台自行从外观代码本体中确定的。在实际应用中,该至少一个组件的属性名也可以通过其他方式确定。比如,技术人员可以直接在云平台中输入该至少一个组件的属性名,以使云平台能够获取该至少一个组件的属性名。

37、react开发框架对应的代码适配模板包括第三待填充区域,该第三待填充区域包括无渲染代码路径子区域、组件属性子区域和逻辑函数子区域。在这种情况下,基于该至少一个组件的属性名、至少一个逻辑函数的函数名和无渲染代码的存储路径,对目标开发框架对应的代码适配模板进行填充的实现过程包括:将无渲染代码的存储路径写入无渲染代码路径子区域,将至少一个组件的属性名写入组件属性子区域,将至少一个逻辑函数的函数名写入逻辑函数子区域。

38、为了便于技术人员提高应用的开发效率和代码质量,目标开发框架还具有相应的工具库代码。在这种情况下,目标开发框架对应的代码适配模板还包括工具库路径子区域,云平台能够将目标开发框架对应的工具库代码的存储路径写入工具库路径子区。

39、第二方面,提供了一种代码生成装置,所述代码生成装置具有实现上述第一方面中代码生成方法行为的功能。所述代码生成装置包括至少一个模块,该至少一个模块用于实现上述第一方面所提供的代码生成方法。

40、第三方面,提供了一种计算设备集群,所述计算设备集群包括至少一个计算设备,每个计算设备包括处理器和存储器,所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行上述第一方面所提供的代码生成方法。

41、可选地,每个计算设备还可以包括通信总线,该通信总线用于每个计算设备的处理器与存储器之间建立连接。

42、第四方面,提供了一种计算机可读存储介质,所述存储介质内存储有指令,当所述指令在计算设备集群上运行时,使得计算设备集群执行上述第一方面所述的代码生成方法的步骤。

43、第五方面,提供了一种包含指令的计算机程序产品,当所述指令在计算设备集群上运行时,使得计算设备集群执行上述第一方面所述的代码生成方法的步骤。

44、上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1