一种代码生成方法以及装置制造方法及图纸

技术编号:24454511 阅读:17 留言:0更新日期:2020-06-10 15:09
本发明专利技术实施例提供一种代码生成方法及装置,所述方法包括:获取输入的任务模型数据;将所述任务模型数据代入预先建立的代码生成器模型进行训练;输出所述任务模型数据对应的代码。利用本发明专利技术实施例实现了基于配置化任务模型数据方式同时生成对象bean,数据访问层、业务访问层等,根据任务模型数据生成适配多种不同框架并且可生成多种程序语言的业务代码。

A code generation method and device

【技术实现步骤摘要】
一种代码生成方法以及装置
本专利技术实施例涉及移动通信的业务支撑
,尤其涉及一种代码生成方法以及装置。
技术介绍
任何一个企业级的web软件项目,代码量一般都在几十万行甚至更多;大部分项目架构师采用MVC架构设计,即表现层、控制层、业务层和数据层进行了分开设计。企业为了缩短项目开发周期、提升产品质量,采用敏捷开发模式进行项目管理。在此背景下,为了提高开发效率以及软件代码的复用率、降低开发成本,同时解决开发人员代码不规范的问题,采用代码生成工具协助项目开发,是众多web软件项目必不可少的工具。目前比较流行的持久层开发框架主要是Hibernate和MyBatis框架,两种框架代码生成器根据业务数据模型自动生成PoJo、dao、server类文件,如图1所示。这两种框架都依赖配置文件,由人工管理维护配置文件。配置内容主要分为:数据库相关环境配置、目标代码配置、业务数据模型配置。数据库相关环境配置包括数据库驱动包、驱动类、URL、用户名、密码。目标代码配置包括:插件类配置、bean代码目录、dao代码目录、数据操作配置文件目录、server代码目录。业务数据模型配置包括表名、表空间等。综上所述,新建项目模块、新增数据表模型时,必须手工修改代码生成器依赖的配置文件,然后再执行代码生成器。由于配置文件的内容较多且复杂,因此,在手工修改代码的时候容易出现配错或是漏配的情况,需要一种可自动生成代码的生成器,避免在配置过程中出现配错或漏配。
技术实现思路
针对现有技术中存在的技术问题,本专利技术实施例提供一种代码生成方法以及装置。第一方面,本专利技术实施例提供一种代码生成方法,包括:获取输入的任务模型数据;将所述任务模型数据代入预先建立的代码生成器模型进行训练;输出所述任务模型数据对应的代码。第二方面,本专利技术实施例提供一种代码生成装置,包括:获取单元,用于获取输入的任务模型数据;训练单元,用于将所述任务模型数据代入预先建立的代码生成器模型进行训练;输出单元,用于输出所述任务模型数据对应的代码。第三方面,本专利技术实施例提供一种代码生成装置,包括:基础管理模块、模型训练模块和服务应用模块,其中,所述服务应用模块包括上述装置所包括的获取单元、训练单元和输出单元。第四方面,本专利技术实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。第五方面,本专利技术实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。本专利技术实施例提供的代码生成方法及装置,通过将输入的任务模型数据代入预先建立的代码生成器进行训练,从而输出所述任务模型数据对应的代码,实现了基于配置化任务模型数据方式同时生成对象bean,数据访问层、业务访问层等,根据任务模型数据生成适配多种不同框架并且可生成多种程序语言的业务代码,并且可自动生成代码,不需要手工进行配置,避免在配置过程中出现配错或漏配。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术的代码框架的结构示意图;图2为本专利技术实施例提供的代码生成方法的流程示意图;图3为本专利技术一实施例提供的代码生成方法的流程示意图;图4为本专利技术实施例提供的代码生成器模型训练过程的示意图;图5为本专利技术实施例提供的代码生成装置的结构示意图;图6为本专利技术实施例提供的代码生成装置的结构示意图;图7为本专利技术实施例提供的电子设备的实体结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图2为本专利技术实施例提供的代码生成方法的流程示意图,如图2所示,所述方法包括:S101、获取输入的任务模型数据;S102、将所述任务模型数据代入预先建立的代码生成器模型进行训练;S103、输出所述任务模型数据对应的代码。本专利技术实施例提供一种代码生成方法,获取输入的任务模型数据,并对所述任务模型数据进行预处理,去除非ASCII字符和标注,其中任务模型数据可以是簇、类或表等;将所述任务模型数据代入到预先建立的代码生成器模型中进行训练,其中,预先建立的代码生成器中预先存储了针对不同任务模型数据的生成器模型;根据不同的任务模型数据,输出所述任务模型数据对应的代码。本专利技术实施例提供的代码生成方法,通过将输入的任务模型数据代入预先建立的代码生成器进行训练,从而输出所述任务模型数据对应的代码,实现了基于配置化任务模型数据方式同时生成对象bean,数据访问层、业务访问层等,根据任务模型数据生成适配多种不同框架并且可生成多种程序语言的业务代码,并且可自动生成代码,不需要手工进行配置,避免在配置过程中出现配错或漏配。具体地,所述将所述任务模型数据代入预先建立的代码生成器模型进行训练,具体为:提取所述任务模型数据的特征数据;根据所述任务模型数据的特征数据判断所述任务模型数据的操作行为;根据所述输入的任务模型数据和所述操作行为,对所述代码生成器模型进行训练。在上述实施例的基础上,所述将所述任务模型数据代入预先建立的代码生成器模型进行训练,具体为:神经网络感知器感知到当前输入的任务模型数据,并对输入的任务模型数据进行特征提取与表示;神经网络控制器根据获取的数据特征判知何种操作,例如对输入的数据需要进行排序等;神经网络行为器对输入的数据记性实际的变换行为,形成中间结果,如此反复,直到神经网络控制器决定终止操作,此时得到的结果就是程序对应输出的结果,并将输出的业务代码存储到代码仓库中。本专利技术实施例提供的代码生成方法,通过将输入的任务模型数据代入预先建立的代码生成器进行训练,从而输出所述任务模型数据对应的代码,实现了基于配置化任务模型数据方式同时生成对象bean,数据访问层、业务访问层等,根据任务模型数据生成适配多种不同框架并且可生成多种程序语言的业务代码,并且可自动生成代码,不需要手工进行配置,避免在配置过程中出现配错或漏配。可选地,所述代码生成器模型采用如下步骤建立:获取标注的训练数据;提取所述训练数据的特征数据;根据所述训练数据的特征数据判断所述训练数据的操作行为;根据所述训练数据和所述操作行为对神经网络编程器进行训练,得到所述本文档来自技高网...

【技术保护点】
1.一种代码生成方法,其特征在于,包括:/n获取输入的任务模型数据;/n将所述任务模型数据代入预先建立的代码生成器模型进行训练;/n输出所述任务模型数据对应的代码。/n

【技术特征摘要】
1.一种代码生成方法,其特征在于,包括:
获取输入的任务模型数据;
将所述任务模型数据代入预先建立的代码生成器模型进行训练;
输出所述任务模型数据对应的代码。


2.根据权利要求1所述的方法,其特征在于,所述将所述任务模型数据代入预先建立的代码生成器模型进行训练,具体为:
提取所述任务模型数据的特征数据;
根据所述任务模型数据的特征数据判断所述任务模型数据的操作行为;
根据所述输入的任务模型数据和所述操作行为,对所述代码生成器模型进行训练。


3.根据权利要求1所述的方法,其特征在于,所述代码生成器模型采用如下步骤建立:
获取标注的训练数据;
提取所述训练数据的特征数据;
根据所述训练数据的特征数据判断所述训练数据的操作行为;
根据所述训练数据和所述操作行为对神经网络编程器进行训练,得到所述代码生成器模型。


4.根据权利要求3所述的方法,其特征在于,所述根据所述训练数据和所述操作行为对神经网络编程器进行训练,得到所述代码生成器模型,具体为:
所述根据所述训练数据和所述操作行为对长期记忆神经网络的网络参数进行训练,得到所述代码生长器模型。


5.一种代码生成装置,其特征在于,包括:
获取单元,用于获取输入的任务模型数据;
训练单元,用于将所述任...

【专利技术属性】
技术研发人员:穆铁马郭岳方炜李海传李伟郑海朋严昱超马恺琳
申请(专利权)人:中国移动通信集团浙江有限公司中国移动通信集团有限公司
类型:发明
国别省市:浙江;33

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

1