代码生成方法和装置制造方法及图纸

技术编号:30205425 阅读:23 留言:0更新日期:2021-09-29 09:06
本发明专利技术公开了一种代码生成方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取处在预设的组件操作区域的多个组件的属性配置数据以及所述多个组件之间的位置关系;其中,所述多个组件中的任一组件为预先封装并具有至少一个可配置属性;根据所述属性配置数据和所述位置关系生成配置文件;解析所述配置文件,得到所述多个组件的属性数据和组件关系数据;将得到的属性数据和组件关系数据输入预设模板从而生成目标代码。该实施方式能够对程序代码中经常使用的功能进行组件化封装,并基于组件的属性配置数据和组件之间的位置关系自动生成目标代码。关系自动生成目标代码。关系自动生成目标代码。

【技术实现步骤摘要】
代码生成方法和装置


[0001]本专利技术涉及计算机
,尤其涉及代码生成方法和装置。

技术介绍

[0002]在现有Web(互联网)前端、后端开发过程中,大量前端、后端的程序代码需要开发人员手动编写。例如在Web前端开发过程中需要开发大量的前端页面,这些页面主要由表单、表格等元素组成,需要编写的页面代码可以分为表单、表格等元素的固有代码和业务逻辑代码,目前,上述固有代码和业务逻辑代码一般都需要开发人员手动编写。
[0003]在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:
[0004]1.现有技术中,开发人员往往需要重复编写具有具有类似结构的程序代码,并且需要手动编写固有代码和业务逻辑代码,使得开发效率较低。特别是在代码编写量大、覆盖项目多时更为明显。
[0005]2.由于目前程序代码主要依靠开发人员手动编写,因此完成的代码往往不太规范,出错率高。
[0006]3.实际应用中,大量程序代码包含类似功能,例如大量的前端页面都包含表单、表格等功能,现有技术没有对以上功能进行组件化封装,导致程序代码编写时无法对以上功能进行复用。

技术实现思路

[0007]有鉴于此,本专利技术实施例提供一种代码生成方法和装置,能够对程序代码中经常使用的功能进行组件化封装,并基于组件的属性配置数据和组件之间的位置关系自动生成目标代码。
[0008]为实现上述目的,根据本专利技术的一个方面,提供了一种代码生成方法。
[0009]本专利技术实施例的代码生成方法包括:获取处在预设的组件操作区域的多个组件的属性配置数据以及所述多个组件之间的位置关系;其中,所述多个组件中的任一组件为预先封装并具有至少一个可配置属性;根据所述属性配置数据和所述位置关系生成配置文件;解析所述配置文件,得到所述多个组件的属性数据和组件关系数据;将得到的属性数据和组件关系数据输入预设模板从而生成目标代码。
[0010]可选地,所述多个组件的属性数据和组件关系数据都为键值对数据;以及,将得到的属性数据和组件关系数据输入预设模板从而生成目标代码,包括:将所述多个组件的属性数据和组件关系数据中的键提取为全局变量;使用所述多个组件的属性数据和组件关系数据中的值替换所述预设模板中的相应占位符从而生成目标代码。
[0011]可选地,在解析所述配置文件之前,所述方法还包括:校验所述配置文件中的数据格式是否符合预设协议;校验所述配置文件中的属性数据是否符合预设数据类型。
[0012]可选地,所述多个组件之间的位置关系包括层级位置关系和排列位置关系,所述配置文件中的组件关系包括从属关系和先后关系;其中,具有层级位置关系的组件在所述
配置文件中具有从属关系,具有任一排列位置关系的组件在所述配置文件中具有与该排列位置关系对应的先后关系。
[0013]可选地,在将得到的属性数据和组件关系数据输入预设模板之前,所述方法还包括:在保持所述多个组件之间的从属关系不变的情况下,对同一类型组件的属性数据进行集中排列。
[0014]可选地,所述方法还包括:在目标代码的基础上增加业务逻辑代码。
[0015]可选地,所述组件操作区域为可视化区域,所述多个组件之间的位置关系由针对所述多个组件的外部操作确定;其中,所述外部操作包括拖拽操作;所述多个组件的属性配置数据通过可视化界面输入;所述多个组件以及所述预设模板都与预先确定的组件框架对应;所述配置文件为JSON格式文件。
[0016]为实现上述目的,根据本专利技术的另一方面,提供了一种基于所述代码生成方法的前端代码生成方法。
[0017]可选地,所述组件包括以下至少一种:表单组件、表格组件、列表组件、文本输入组件、单选框组件、复选框组件、下拉列表组件、日期选择组件、数字输入组件、级联选择组件、开关组件、对话组件、图像组件;所述组件对应的组件框架包括以下至少一种:电脑端框架、移动端安卓框架、移动端iOS框架。
[0018]为实现上述目的,根据本专利技术的再一方面,提供了一种基于所述代码生成方法的后端代码生成方法。
[0019]可选地,所述组件对应的组件框架包括JAVA框架;所述组件包括以下至少一种:类组件、方法组件、属性组件、入参组件、出参组件、注解组件。
[0020]可选地,所述后端代码生成方法分别用于生成控制层的目标代码、服务层的目标代码和数据访问层的目标代码;其中,生成控制层的目标代码时使用第一配置文件和控制层模板,生成服务层的目标代码时使用第二配置文件和服务层模板,生成数据访问层的目标代码时使用第三配置文件和数据访问层模板;控制层模板中预先建立针对服务层模板和/或数据访问层模板的引用关系,服务层模板中预先建立针对数据访问层模板的引用关系。
[0021]为实现上述目的,根据本专利技术的又一方面,提供了一种代码生成装置。
[0022]本专利技术实施例的代码生成装置可以包括:数据获取单元,用于获取处在预设的组件操作区域的多个组件的属性配置数据以及所述多个组件之间的位置关系;其中,所述多个组件中的任一组件为预先封装并具有至少一个可配置属性;配置生成单元,用于根据所述属性配置数据和所述位置关系生成配置文件;解析单元,用于解析所述配置文件,得到所述多个组件的属性数据和组件关系数据;代码生成单元,用于将得到的属性数据和组件关系数据输入预设模板从而生成目标代码。
[0023]为实现上述目的,根据本专利技术的又一方面,提供了一种电子设备。
[0024]本专利技术的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术所提供的代码生成方法。
[0025]为实现上述目的,根据本专利技术的再一方面,提供了一种计算机可读存储介质。
[0026]本专利技术的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器
执行时实现本专利技术所提供的代码生成方法。
[0027]根据本专利技术的技术方案,上述专利技术中的一个实施例具有如下优点或有益效果:预先将程序代码中经常使用的功能进行组件化封装并向用户提供,当用户通过拖拽等方式选择组件、确定组件之间的位置关系并配置组件的属性数据之后,生成相应的配置文件。接着解析配置文件以得到组件的属性数据和组件关系数据,最后将解析得到的属性数据和组件关系数据输入预设模板即可生成目标代码,在目标代码的基础上增加业务逻辑代码即可以完成代码开发工作,实现预设功能需求。通过以上设置,能够实现代码开发过程中经常使用功能的组件化封装以及复用,使现有技术中构成主要工作量的目标代码编写自动完成,开发人员只需编写具体的业务逻辑代码,从而提高代码开发效率。同时,由于通过本专利技术实施例方法生成的代码根据预先建立的模板、用户通过拖拽等方式形成的组件关系以及用户确定的属性配置数据形成(代码生成过程中可以根据预设规则对属性配置数据进行校验),因此代码较为规范,代码结构较为清晰,出错率极低。此外,本专利技术实施例提供的代码生成方法能够应用于Web前端、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码生成方法,其特征在于,包括:获取处在预设的组件操作区域的多个组件的属性配置数据以及所述多个组件之间的位置关系;其中,所述多个组件中的任一组件为预先封装并具有至少一个可配置属性;根据所述属性配置数据和所述位置关系生成配置文件;解析所述配置文件,得到所述多个组件的属性数据和组件关系数据;将得到的属性数据和组件关系数据输入预设模板从而生成目标代码。2.根据权利要求1所述的方法,其特征在于,所述多个组件的属性数据和组件关系数据都为键值对数据;以及,将得到的属性数据和组件关系数据输入预设模板从而生成目标代码,包括:将所述多个组件的属性数据和组件关系数据中的键提取为全局变量;使用所述多个组件的属性数据和组件关系数据中的值替换所述预设模板中的相应占位符从而生成目标代码。3.根据权利要求1所述的方法,其特征在于,在解析所述配置文件之前,所述方法还包括:校验所述配置文件中的数据格式是否符合预设协议;校验所述配置文件中的属性数据是否符合预设数据类型。4.根据权利要求1所述的方法,其特征在于,所述多个组件之间的位置关系包括层级位置关系和排列位置关系,所述配置文件中的组件关系包括从属关系和先后关系;其中,具有层级位置关系的组件在所述配置文件中具有从属关系,具有任一排列位置关系的组件在所述配置文件中具有与该排列位置关系对应的先后关系。5.根据权利要求4所述的方法,其特征在于,在将得到的属性数据和组件关系数据输入预设模板之前,所述方法还包括:在保持所述多个组件之间的从属关系不变的情况下,对同一类型组件的属性数据进行集中排列。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:在目标代码的基础上增加业务逻辑代码。7.根据权利要求1-6任一所述的方法,其特征在于,所述组件操作区域为可视化区域,所述多个组件之间的位置关系由针对所述多个组件的外部操作确定;其中,所述外部操作包括拖拽操作;所述多个组件的属性配置数据通过可视化界面输入;所述多个组件以及所述预设模板都与预先确定的组件框架对应;所述配置文件为JSON格式文件。8.一种基于权利要求1-7任一所述方法的前端代码生成...

【专利技术属性】
技术研发人员:刘卫程
申请(专利权)人:北京京东世纪贸易有限公司
类型:发明
国别省市:

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

1