代码生成方法、装置、设备、存储介质及计算机程序制造方法及图纸

技术编号:38714153 阅读:12 留言:0更新日期:2023-09-08 14:57
本申请公开了一种代码生成方法、装置、设备、存储介质及计算机程序,属于计算机技术领域。所述方法包括:获取目标应用的业务逻辑代码和目标应用在目标开发框架下的至少一个外观代码,基于该业务逻辑代码,确定目标应用在目标开发框架下的无渲染代码,对该无渲染代码和至少一个外观代码进行组织,以得到目标应用在目标开发框架下的完整代码。由于该至少一个外观代码指示目标应用的至少一种外观,并且该至少一种外观与至少一种终端类型对应,因此,最终得到的完整代码能够在保证目标应用与目标开发框架相适应的同时,还能够保证目标应用的外观能够适应不同的终端设备。的外观能够适应不同的终端设备。的外观能够适应不同的终端设备。

【技术实现步骤摘要】
代码生成方法、装置、设备、存储介质及计算机程序


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

技术介绍

[0002]JavaScript(简称“JS”)是一种具有函数优先的轻量级、解释型或即时编译型的编程语言。该语言被广泛应用于全球广域网(world wide web,Web)应用的开发。
[0003]在Web应用开发过程中,为了提升代码的编写效率,技术人员通常使用基于JS的开发框架对Web应用进行设计,比如,Vue、React等等。然而,在对Web应用进行设计时,技术人员编写的Web应用代码包括业务逻辑代码和外观代码,但由于Web应用通常需要适配手机、电脑等不同的终端设备,而不同的终端设备所对应的Web应用的外观不同。在这种情况下,对于具有相同业务逻辑的Web应用,技术人员需要重复编写针对不同终端的Web应用的代码,使得Web应用具有与终端设备相适应的外观,这会导致技术人员将大量的时间花费在代码的书写上,从而大大增加了人力成本与时间成本。

技术实现思路

[0004]本申请提供了一种代码生成方法、装置、设备、存储介质及计算机程序,可以解决相关技术中应用开发的效率较低的问题。所述技术方案如下:
[0005]第一方面,提供了一种代码生成方法,所述方法包括:获取目标应用的业务逻辑代码和所述目标应用在目标开发框架下的至少一个外观代码,所述业务逻辑代码指示所述目标应用的功能,所述至少一个外观代码指示所述目标应用的至少一种外观,所述至少一种外观与至少一种终端类型对应;基于所述业务逻辑代码,确定所述目标应用在所述目标开发框架下的无渲染代码;对所述无渲染代码和所述至少一个外观代码进行组织,以得到所述目标应用在所述目标开发框架下的完整代码。
[0006]通过获取目标应用的业务逻辑代码和目标应用在目标开发框架下的至少一个外观代码,从而基于该业务逻辑代码和该至少一个外观代码,确定目标应用在目标开发框架下的完整代码。由于该至少一个外观代码指示目标应用的至少一种外观,并且该至少一种外观与至少一种终端类型对应,因此,该完整代码能够在保证目标应用与目标开发框架相适应的同时,还能够保证目标应用的外观能够适应不同的终端设备。换句话说,本申请提供的一种代码生成方法能够自动生成目标应用在目标框架下的完整代码,无需技术人员重复编写针对不同终端和不同开发框架的目标应用的代码,从而大大提升代码编写的效率,有效节约人力成本和时间成本。
[0007]获取目标应用的业务逻辑代码和目标应用在目标开发框架下的至少一个外观代码的实现方式包括多种,接下来对其中的两种方式进行介绍。
[0008]第一种实现方式,云平台能够显示代码编写界面,该代码编写界面用于编写目标应用的业务逻辑代码和目标应用在目标开发框架下的至少一个外观代码,响应于代码编写
完成操作,云平台能够获取目标应用的业务逻辑代码和目标应用在目标开发框架下的至少一个外观代码。
[0009]第二种实现方式,技术人员可以在其他具有代码编写功能的云平台上完成对目标应用的业务逻辑代码和该至少一个外观代码的编写,进而将该目标应用的业务逻辑代码和该至少一个外观代码发送给云平台,云平台接收该目标应用的业务逻辑代码和该至少一个外观代码。
[0010]也就是说,该目标应用的业务逻辑代码和该至少一个外观代码可以是技术人员在云平台上编写后直接得到的,也可以是技术人员在其他具有代码编写功能的云平台编写完成后发送给云平台的。当然,在实际应用中,云平台还可以通过其他的方式获取到目标应用的业务逻辑代码和该至少一个外观代码。
[0011]可选地,上述业务逻辑代码为柯里化函数形式,该业务逻辑代码和该至少一个外观代码为JavaScript语言。
[0012]可以按照下述步骤(1)

(2)确定目标应用在目标开发框架下的无渲染代码。
[0013](1)确定该业务逻辑代码中的至少一个逻辑函数的函数名、至少一个逻辑函数分别对应的至少一个参数的参数名以及该至少一个参数中每个参数的属性名。
[0014]业务逻辑代码包括逻辑代码注释和逻辑代码本体,在这种情况下,可以从逻辑代码本体中获取该至少一个逻辑函数的函数名,从逻辑代码注释中获取至少一个逻辑函数分别对应的至少一个参数的参数名以及每个参数的属性名。
[0015]云平台可以从业务逻辑代码本体中确定第一位置,该第一位置处的代码中包含该至少一个逻辑函数的函数名,从该第一位置处的代码中获取该至少一个逻辑函数的函数名。
[0016]云平台存储有第一字符串,在这种情况下,云平台可以按照相关算法,从业务逻辑代码中搜索第一字符串,将该第一字符串所在的位置确定为第一位置,将该第一位置处的代码中除第一字符串之外的代码作为至少一个逻辑函数的函数名。
[0017]需要说明的是,在实际应用中,该第一字符串还可以通过其他方式确定。比如,技术人员也可以在云平台中输入第一字符串,以使云平台获取到该第一字符串。在技术人员输入第一字符串的情况下,云平台能够显示第一字符串输入界面,响应于第一字符串输入完成操作,获取技术人员输入的第一字符串。
[0018]基于上文描述,该至少一个逻辑函数的函数名可以是云平台自行从业务逻辑代码本体中确定的。在实际应用中,该至少一个逻辑函数的函数名也可以通过其他方式确定。比如,技术人员可以直接在云平台中输入该至少一个逻辑函数的函数名,以使云平台能够获取该至少一个逻辑函数的函数名。
[0019]为了便于云平台对逻辑代码注释进行识别,该逻辑代码注释的格式为目标格式。在这种情况下,云平台中事先存储有目标格式,云平台能够根据该目标格式,按照相关算法,从该逻辑代码注释中确定至少一个逻辑函数分别对应的至少一个参数的参数名以及至少一个参数的属性名。
[0020](2)基于该至少一个逻辑函数的函数名、至少一个参数的参数名、至少一个参数中每个参数的属性名和业务逻辑代码的存储路径,对目标开发框架对应的无渲染模板进行填充,以得到该目标应用在目标开发框架下的无渲染代码。
[0021]目标开发框架对应的无渲染模板包括第一待填充区域,该第一待填充区域包括逻辑函数导入子区域、逻辑代码路径子区域、初始化子区域、API对象创建区域、挂载与更新区域以及API对象已创建区域。在这种情况下,可以将该至少一个逻辑函数的函数名写入逻辑函数导入子区域,将业务逻辑代码的存储路径写入逻辑代码路径子区域,将至少一个参数中具有目标属性名的参数作为第一参数,该目标属性名指示具有该目标属性名的参数为数据模型,基于第一参数对初始化子区域进行填充,将第一参数的参数名以及至少一个逻辑函数中第一逻辑函数的函数名写入API对象创建区域,该第一逻辑函数为不具有目标参数名的逻辑函数,该目标参数名指示具有该目标参数名的逻辑函数为接口函数。若至少一个逻辑函数中存在挂载函数,则将挂载函数的函数名在目标框架下的代码写入挂载与更新区域。将至少一个逻辑函数中除第一逻辑函数之外的逻辑函数的函数名写入API本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码生成方法,其特征在于,所述方法包括:获取目标应用的业务逻辑代码和所述目标应用在目标开发框架下的至少一个外观代码,所述业务逻辑代码指示所述目标应用的功能,所述至少一个外观代码指示所述目标应用的至少一种外观,所述至少一种外观与至少一种终端类型对应;基于所述业务逻辑代码,确定所述目标应用在所述目标开发框架下的无渲染代码;对所述无渲染代码和所述至少一个外观代码进行组织,以得到所述目标应用在所述目标开发框架下的完整代码。2.如权利要求1所述的方法,其特征在于,所述基于所述业务逻辑代码,确定所述目标应用在所述目标开发框架下的无渲染代码,包括:确定所述业务逻辑代码中的至少一个逻辑函数的函数名、所述至少一个逻辑函数分别对应的至少一个参数的参数名以及所述至少一个参数中每个参数的属性名;基于所述至少一个逻辑函数的函数名、所述至少一个参数的参数名、所述每个参数的属性名和所述业务逻辑代码的存储路径,对所述目标开发框架对应的无渲染模板进行填充,以得到所述目标应用在所述目标开发框架下的无渲染代码。3.如权利要求2所述的方法,其特征在于,所述业务逻辑代码包括逻辑代码注释和逻辑代码本体;所述确定所述业务逻辑代码中的至少一个逻辑函数的函数名、所述至少一个逻辑函数分别对应的至少一个参数的参数名以及所述至少一个参数中每个参数的属性名,包括:从所述逻辑代码本体中获取所述至少一个逻辑函数的函数名;从所述逻辑代码注释中获取所述至少一个逻辑函数分别对应的至少一个参数的参数名以及所述每个参数的属性名。4.如权利要求1

3任意一项权利要求所述的方法,其特征在于,所述目标应用为Web应用,所述目标开发框架为Vue框架,所述目标应用包括至少一个组件,所述至少一个外观代码指示所述至少一个组件的至少一种外观;所述对所述无渲染代码和所述至少一个外观代码进行组织,以得到所述目标应用在所述目标开发框架下的完整代码,包括:基于所述至少一个外观代码,确定所述至少一个组件中包含的子组件的组件名以及所述至少一个组件的属性名;基于所述至少一个组件的属性名、所述子组件的组件名和所述无渲染代码的存储路径,对所述目标开发框架对应的代码适配模板进行填充,以得到所述目标应用在所述目标开发框架下的完整代码。5.如权利要求4所述的方法,其特征在于,所述至少一个外观代码中每个外观代码包括外观代码注释;所述基于所述至少一个外观代码,确定所述至少一个组件中的子组件的组件名以及所述至少一个组件的属性名,包括:从所述外观代码注释中获取所述子组件的组件名以及所述至少一个组件的属性名。6.如权利要求1

3任意一项权利要求所述的方法,其特征在于,所述目标应用为Web应用,所述目标开发框架为React框架,所述目标应用包括至少一个组件,所述至少一个外观代码指示所述至少一个组件的至少一种外观;所述对所述无渲染代码和所述至少一个外观代码进行组织,以得到所述目标应用在所述目标开发框架下的完整代码,包括:基于所述至少一个外观代码确定所述至少一个组件的属性名;
确定所述业务逻辑代码中的至少一个逻辑函数的函数名;基于所述至少一个组件的属性名、所述至少一个逻辑函数的函数名和所述无渲染代码的存储路径,对所述目标开发框架对应的代码适配模板进行填充,以得到所述目标应用在所述目标开发框架下的完整代码。7.如权利要求6所述的方法,其特征在于,所述至少一个外观代码中每个外观代码包括外观代码本体,或者,包括所述外观代码本体和外观代码注释;所述基于所述至少一个外观代码确定所述至少一个组件的属性名,包括:在所述外观代码包括所述外观代码本体的情况下,从所述外观代码本体中获取所述至少一个组件的属性名;在所述外观代码包括所述外观代码本体和所述外观代码注释的情况下,从所述外观代码本体或者所述外观代码注释中获取所述至少一个组件的属性名。8.如权利要求1

7任意一项权利要求所述的方法,其特征在于,所述业务逻辑代码为柯里化函数形式,所述业务逻辑代码和所述至少一个外观代码为JavaScript语言。9.一种代码生成装置,其特征在于,所述装置包括:获取模块,用于获取目标应用的业务逻辑代码和所述目标应用在目...

【专利技术属性】
技术研发人员:莫春辉
申请(专利权)人:深圳华为云计算技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1