【技术实现步骤摘要】
基于领域模型的代码生成方法、装置、设备、介质及产品
[0001]本申请实施例涉及软件开发
,特别涉及一种基于领域模型的代码生成方法、装置、设备、介质及产品。
技术介绍
[0002]在项目开发过程中,需要编程人员编写大量的代码以实现项目中的业务运行逻辑。
[0003]为了提高代码编写工作的效率,相关技术中,采用代码生成工具协助项目开发,从而解决代码编写效率低的问题。目前代码生成工具生成代码的步骤主要是获取领域模型对应的结构化描述信息,将结构化描述信息写入至代码生成工具中的代码模板中直接生成代码。
[0004]但代码生成工具中的代码模板都已预定义,且基于领域模型解析得到的结构化描述信息生成的代码可能不符合团队规范,或在生成代码后依然需要大量的人力去进行优化调整,因此,如何在保证生成代码质量的前提下提高代码生成效率,是亟待解决的重要问题。
技术实现思路
[0005]本申请提供了一种基于领域模型的代码生成方法、装置、设备、介质及产品,所述技术方案如下。
[0006]根据本申请的一方面,提供了一种基于领域模型的代码生成方法,所述方法包括以下步骤。
[0007]对领域模型进行数据解析,得到所述领域模型对应的结构化描述信息,所述领域模型是指包括领域内的至少两个类以及所述至少两个类之间的关联关系,所述结构化描述信息包括以实例形式描述所述领域模型的格式化语句。
[0008]基于预训练深度学习模型对所述结构化描述信息进行数据配置,得到领域特定语言DSL,所述DSL包括对所述结 ...
【技术保护点】
【技术特征摘要】
1.一种基于领域模型的代码生成方法,其特征在于,所述方法包括:对领域模型进行数据解析,得到所述领域模型对应的结构化描述信息,所述领域模型用于表示领域内的至少两个类以及所述至少两个类之间的关联关系,所述结构化描述信息包括以实例形式描述所述领域模型的格式化语句;基于预训练深度学习模型对所述结构化描述信息进行数据配置,得到领域特定语言DSL,所述DSL包括对所述结构化描述信息进行数据配置后得到的受限于所述领域的语言;基于所述DSL进行代码生成,得到所述领域模型对应的第一代码。2.根据权利要求1所述的方法,其特征在于,所述基于预训练深度学习模型对所述结构化描述信息进行数据配置,得到领域特定语言DSL,包括:基于所述预训练深度学习模型对所述结构化描述信息进行所述数据配置,得到所述结构化描述信息对应的配置信息,所述配置信息是指对所述结构化描述信息进行补充的信息;将所述配置信息嵌入至所述结构化描述信息中,得到所述DSL。3.根据权利要求2所述的方法,其特征在于,所述结构化描述信息包括实体类信息,所述配置信息包括类配置信息;所述基于所述预训练深度学习模型对所述结构化描述信息进行所述数据配置,得到所述结构化描述对应的配置信息,包括:基于所述预训练深度学习模型对所述实体类信息中的变量进行所述数据配置,得到所述实体类信息对应的所述类配置信息。4.根据权利要求3所述的方法,其特征在于,所述实体类信息中的变量包括实体类变量名称,所述类配置信息包括实体类变量翻译名称;所述基于所述预训练深度学习模型对所述实体类信息中的变量进行所述数据配置,得到所述实体类信息对应的所述类配置信息,包括:基于所述预训练深度学习模型对所述实体类变量名称进行翻译,得到所述实体类变量名称对应的所述实体类变量翻译名称。5.根据权利要求4所述的方法,其特征在于,所述将所述配置信息嵌入至所述结构化描述信息中,得到所述DSL,包括:将所述实体类变量翻译名称替换所述结构化描述信息中的所述实体类变量名称,得到所述DSL。6.根据权利要求3所述的方法,其特征在于,所述实体类信息中的变量包括实体类变量类型,所述类配置信息包括实体类变量配置类型;所述基于所述预训练深度学习模型对所述实体类信息中的变量进行所述数据配置,得到所述实体类信息对应的所述类配置信息,包括:基于所述预训练深度学习模型对所述实体类变量类型进行补充或修改,得到所述实体类变量类型对应的所述实体类变量配置类型;其中,所述实体类变量类型是指实体类变量对应的数据类型;所述实体类变量配置类型是指所述实体类在所述预训练深度学习模型补充或修改后对应的数据类型。7.根据权利要求6所述的方法,其特征在于,所述将所述配置信息嵌入至所述结构化描述信息中,得到所述DSL,包括:
将所述实体类变量配置类型补充或替换所述结构化描述信息中的所述实体类变量类型,得到所述DSL。8.根据权利要求2所述的方法,其特征在于,所述结构化描述信息包括函数信息,所述配置信息包括函数配置信息;所述基于所述预训练深度学习模型对所述结构化描述信息进行所述数据配置,得到所述结构化描述对应的配置信息,包括:基于所述预训练深度学习模型对所述函数信息中的变量进行所述数据配置,得到所述函数信息对应的所述函数配置信息。9.根据权利要求8所述的方法,其特征在于,所述函数信息中的变量包括函数名称,所述函数配置信息包括函数翻译名称;所述基于所述预训练深度学习模型对所述函数信息中的变量进行所述数据配置,得到所述函数信息对应的所述函...
【专利技术属性】
技术研发人员:邬俊杰,张晋铭,王少鸣,郭润增,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。