一种代码生成方法、装置、设备及存储介质制造方法及图纸

技术编号:21476812 阅读:23 留言:0更新日期:2019-06-29 04:36
本公开实施例公开了一种代码生成方法、装置、设备及存储介质,其中,该方法包括:当接收到代码生成指令时,获取当前代码片段;从当前代码片段中确定待完善的目标代码片段,目标代码片段中包含代码属性信息;确定与目标代码片段匹配的转换程序;其中,转换程序包括根据属性信息生成代码片段的转换规则;基于转换规则以及目标代码片段包含的代码属性信息,生成目标代码片段对应的完整代码片段。本公开实施例的方案可以提高编写代码的效率。

【技术实现步骤摘要】
一种代码生成方法、装置、设备及存储介质
本公开实施例涉及代码处理
,尤其涉及一种代码生成方法、装置、设备及存储介质。
技术介绍
随着软件行业的不断发展,提高代码的编写效率,成为促进软件版本更新和发布的重要因素。目前,很多代码程序都是由多个代码片段组成,代码片段之间可能存在相似之处,例如,一些代码片段使用相同的代码结构,仅是其中一些变量名称或者赋值发生了改变,在编写这种存在相似性的代码片段时,编程人员往往是通过手动复制粘贴相似的代码片段,再加以修改,得到其他代码片段,或者利用替换规则,对代码片段进行自动修改,得到其他代码片段。使用人工方式处理存在相似性的代码片段时,代码的编写效率明显不高,且一旦在手动修改时发生错误,还会增加后续代码的调试和测试时间,从而降低整个代码的编写效率。利用替换规则自动修改存在相似性的代码片段时,由于替换规则单一且需要编程人员预先完成大量辅助替换规则的代码,代码的编写效率同样得不到显著的提升。
技术实现思路
本公开实施例提供了一种代码生成方法、装置、设备及存储介质,可以提高编写代码的效率。第一方面,本公开实施例提供了一种代码生成方法,包括:当接收到代码生成指令时,获取当前代码片段;从所述当前代码片段中确定待完善的目标代码片段,所述目标代码片段中包含代码属性信息;确定与所述目标代码片段匹配的转换程序;其中,所述转换程序包括根据所述代码属性信息生成代码片段的转换规则;基于所述转换规则以及所述目标代码片段包含的代码属性信息,生成所述目标代码片段对应的完整代码片段。第二方面,本公开实施例还提供了一种代码生成装置,包括:当前代码获取模块,用于当接收到代码生成指令时,获取当前代码片段;目标代码确定模块,用于从所述当前代码片段中确定待完善的目标代码片段,所述目标代码片段中包含代码属性信息;转换程序确定模块,用于确定与所述目标代码片段匹配的转换程序;其中,所述转换程序包括根据所述代码属性信息生成代码片段的转换规则;完整代码生成模块,用于基于所述转换规则以及所述目标代码片段包含的代码属性信息,生成所述目标代码片段对应的完整代码片段。第三方面,本公开实施例还提供了一种设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本公开实施例提供的代码生成方法。第四方面,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开实施例提供的代码生成方法。本公开实施例提供的技术方案,通过获取当前代码片段,从当前代码片段中确定待完善的,包含代码属性信息的目标代码片段,确定与目标代码片段匹配的转换程序,其中,转换程序包括根据代码属性信息生成代码片段的转换规则,基于转换规则以及目标代码片段包含的代码属性信息,生成目标代码片段对应的完整代码片段,即从当前代码片段中确定待完善的目标代码片段,并确定与目标代码片段匹配的转换程序,基于转换程序中的转换规则以及目标代码片段包含的代码属性信息,得到与目标代码片段对应的完整代码片段,解决了使用现有的方式处理存在相似性的代码片段时,代码的编写效率不高,且一旦在手动修改时发生错误,还会增加后续代码的调试和测试时间的问题,提高了代码的编写效率。附图说明图1是本公开实施例提供的一种代码生成方法流程图;图2是本公开实施例提供的一种代码生成方法流程图;图3是本公开实施例提供的一种代码生成方法流程图;图4是本公开实施例提供的一种代码生成装置结构框图;图5是本公开实施例一种设备的结构示意图。具体实施方式下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本公开相关的部分而非全部结构。图1是本公开实施例提供的一种代码生成方法流程图,所述方法由代码生成装置来执行,所述装置可以由软件和/或硬件来实现。所述装置可以配置在终端中。所述终端可以是智能手机、平板电脑等。本实施例可适用于对存在相似性的代码片段进行编写的情况;可选的,所述方法可以应用于编写应用程序中功能模块的代码片段的场景中,或者也可以应用于编写其他相似功能模块的代码的场景中。相关技术中,当代码片段之间存在相似性时,使用的处理方式一般有两种。一种是人工处理的方式,通过手动复制粘贴相似的代码片段,再加以修改,得到其他代码片段,这样处理导致代码的编写效率不高,且一旦在手动修改时发生错误,还会增加后续代码的调试和测试时间,从而降低整个代码的编写效率;另一种是自动修改的方式,利用替换规则,对代码片段进行自动修改,得到其他代码片段,由于替换规则单一且需要编程人员预先完成大量辅助替换规则的代码,代码的编写效率同样得不到显著的提升。本公开实施例提供的方法,通过从当前代码片段中确定待完善的目标代码片段,并确定与目标代码片段匹配的转换程序,基于转换程序中的转换规则以及目标代码片段包含的代码属性信息,得到与目标代码片段对应的完整代码片段,避免了使用现有的方式处理存在相似性的代码片段时,代码的编写效率不高且易发生错误的问题,提高了代码的编写效率。如图1所示,本公开实施例提供的技术方案包括:步骤110、当接收到代码生成指令时,获取当前代码片段。其中,当前代码片段包括至少一个待完善代码片段,当前代码片段可以为用户在当前代码编写界面编写的代码。其中,代码编写界面可以显示用于触发待完善代码片段生成完整代码片段的控件。用户可以根据自己的需要作用该控件。当检测到该控件被作用时,终端可以接收到代码生成指令,获取当前代码片段。需要说明的是,当终端接收到代码生成指令的方式并不局限于上述检测到上述控件被作用的情形,还可以是其他情况。步骤120、从当前代码片段中确定待完善的目标代码片段,目标代码片段中包含代码属性信息。在本公开实施例的一个实施方式中,可选的,从当前代码片段中确定待完善的目标代码片段,包括:扫描当前代码片段;若从当前代码片段中扫描出待完善的代码片段的标识符,将标识符对应的代码片段作为目标代码片段。其中,待完善的代码片段可以设置特定的标识符。当接收到代码生成指令时,获取当前代码片段,可以通过扫描程序对当前代码片段进行扫描,若从当前代码片段中扫描出待完善的代码片段的标识符,通过语法树分析将与标识符关联的代码片段作为该标识符对应的代码片段,即目标代码片段。例如,标识符为特定的函数名称,当扫描到该函数标识符时,利用语法树分析获取与函数标识符关联的函数内容,作为目标代码片段。其中,标识符可以是用户任意设置的标识符,或者标识符也可以是预设的注解信息。扫描程序可以是扫描工具。由此,通过标识符,使目标代码片段与转换程序对应,可以快速匹配到转换程序,提高转换程序的匹配效率其中,目标代码片段包含代码属性信息,目标代码片段可以是至少一个。代码属性信息包括变量名称、变量类型以及注解信息,或者还可以包括其他信息。由此,通过根据代码生成指令,获取当前代码片段中待完善的目标代码片段,用于后续进行代码完善,无需通过人工查找的方式确定每个待完善的目标代码片段,可以减少人工查找的工作量,提高查找待完善的代码片段的效率。步骤130、确定与目标代码片段匹配的转本文档来自技高网...

【技术保护点】
1.一种代码生成方法,其特征在于,包括:当接收到代码生成指令时,获取当前代码片段;从所述当前代码片段中确定待完善的目标代码片段,所述目标代码片段中包含代码属性信息;确定与所述目标代码片段匹配的转换程序;其中,所述转换程序包括根据所述代码属性信息生成代码片段的转换规则;基于所述转换规则以及所述目标代码片段包含的代码属性信息,生成所述目标代码片段对应的完整代码片段。

【技术特征摘要】
1.一种代码生成方法,其特征在于,包括:当接收到代码生成指令时,获取当前代码片段;从所述当前代码片段中确定待完善的目标代码片段,所述目标代码片段中包含代码属性信息;确定与所述目标代码片段匹配的转换程序;其中,所述转换程序包括根据所述代码属性信息生成代码片段的转换规则;基于所述转换规则以及所述目标代码片段包含的代码属性信息,生成所述目标代码片段对应的完整代码片段。2.根据权利要求1所述的方法,其特征在于,所述从所述当前代码片段中确定待完善的目标代码片段,包括:扫描所述当前代码片段;若从所述当前代码片段中扫描出待完善的代码片段的标识符,将所述标识符对应的代码片段作为所述目标代码片段;相应的,所述确定与所述目标代码片段匹配的转换程序,包括:查询与所述目标代码片段的标识符匹配的转换程序,并作为与所述目标代码片段匹配的转换程序。3.根据权利要求1所述的方法,其特征在于,若所述目标代码片段的数量为多个,与多个所述目标代码片段匹配的转换程序均相同,且数量为1个;所述基于所述转换规则以及所述目标代码片段包含的代码属性信息,生成所述目标代码片段对应的完整代码片段,包括:所述匹配的转换程序串行处理多个所述目标代码片段;或者;若所述目标代码片段的数量为多个,与多个所述目标代码片段分别匹配的转换程序均不相同,且数量为多个;所述基于所述转换规则以及所述目标代码片段包含的代码属性信息,生成所述目标代码片段对应的完整代码片段,包括:多个所述匹配的转换程序分别并行处理所述目标代码片段;其中,处理所述目标代码片段包括:基于所述匹配的转换程序中的转换规则以及所述目标代码片段包含的代码属性信息,生成与所述目标代码片段对应的完整代码片段。4.根据权利要求1所述的方法,其特征在于,若所述目标代码片段的总数量为设定数量,且与第一转换程序匹配的目标代码片段的数量为第一数量,以及与第二转换程序匹配的目标代码片段的数量为第二数量;其中,所述第一数量和所述第二数量之和等于所述设定数量,所述第一数量大于1,所述第二数量大于1;所述基于所述转换规则以及所述目标代码片段包含的代码属性信息,生成所述目标代码片段对应的完整代码片段,包括:所述第一转换程序和所述第二转换程序并行处理分别与所述第一转换程序和所述第二转换程序匹配的目标代码片段;所述第一转换程序串行处理与所述第一转换程序匹配的目标代码片段;所述第二转换程序串行处理与所述第二转换程序匹配的目标...

【专利技术属性】
技术研发人员:林志毅
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京,11

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

1