一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种软件工程代码生成方法及装置与流程

2022-07-01 23:06:27 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,特别是涉及一种软件工程代码生成方法及装置。


背景技术:

2.现有的软件项目开发编码是由开发团队技术负责人根据项目的特性进行技术评估后,进行团队评审确定最终选型。对新技术选型后需要在团队内培训,培训方法及内容存在临时性、非标准性。开发过程中几乎依赖于个人经验实现代码重用或是无意识的不考虑重用,临时发现问题临时思考解决方案及技术实现。
3.然而,现有的可用技术框架选型繁多,选择或试错成本高,不同人不同处理习惯导致出现不同的方案,缺乏标准化的开发规范,导致开发过程时间成本高。


技术实现要素:

4.基于此,本发明的目的在于,提供一种软件工程代码生成方法及装置,其具有避免框架选型不当带来的风险,提供统一标准化开发规范,提高开发时效的优点。
5.为了实现上述目的,本发明的第一方面是提供一种软件工程代码生成方法,包括项目骨架代码生成方法和功能模块代码生成方法;
6.所述项目骨架代码生成方法包括:
7.客户端工具发送项目创建指令给云服务平台,其中,所述云服务平台中存储有预先编写的项目骨架模板;
8.所述云服务平台根据所述项目创建指令,匹配所述项目骨架模板,对匹配获得的所述项目骨架模板渲染得到项目骨架代码;
9.判断所述项目骨架模板是否渲染成功;
10.若所述项目骨架模板渲染成功,则把第一状态码及所述项目骨架代码压缩打包成第一压缩包,返回给所述客户端工具;
11.所述客户端工具接收所述云服务平台返回的第一压缩包,对第一状态码进行分析;
12.判断所述第一状态码是否响应为成功;
13.若所述第一状态码响应为成功,则将所述第一压缩包解压到本地工作目录下;
14.所述功能模块代码生成方法包括:
15.在所述云服务平台创建功能模块模板和数据表;
16.所述客户端工具发送功能模块代码生成指令给所述云服务平台;
17.所述云服务平台根据所述功能模块代码生成指令,对所述数据表进行查找;
18.判断是否有所述功能模块代码生成指令相应的数据表;
19.若有相应的数据表,将相应的所述数据表根据功能模块模板渲染生成功能模块代码;
20.判断所述功能模块模板是否渲染成功;
21.若所述功能模块模板渲染成功,则把第二状态码以及所述功能模块代码压缩打包成第二压缩包,返回给所述客户端工具;
22.所述客户端工具接收所述云服务平台返回的第二压缩包,对第二状态码进行分析;
23.判断所述第二状态码是否响应为成功;
24.若所述第二状态码响应为成功,则将第二压缩包解压到所述本地目录下的项目源代码目录。
25.进一步地,所述项目创建指令包括项目名称和项目类型识别码,所述云服务平台根据所述项目类型识别码匹配所述项目骨架模板。
26.进一步地,所述功能模块代码生成指令包括项目名称和数据表名称,所述云服务平台根据所述数据表名称查找数据表。
27.进一步地,所述云服务平台接收所述项目创建指令,当所述项目类型识别码表示为后端或大数据时,将所述项目名称转为小写字符并以此为数据库名称和登录所述数据库的账号名称,随机生成不小于8位长度的不规则密码,进行数据库创建。
28.进一步地,把数据库名称、账号名称和密码进行加密保存到资源分配表,所述云服务平台对所述资源分配表进行资源分配。
29.进一步地,请求所述资源分配表中的nacos接口进行服务配置创建,并将所述数据库的账号和密码写入开发和测试命名空间。
30.进一步地,所述项目骨架模板包括前端、后端、大数据以及小程序骨架模板。
31.进一步地,所述功能模块代码包括控制类、逻辑类、数据类以及数据操作代码。
32.本发明的第二方面提供一种软件工程代码生成装置,包括项目骨架代码生成装置和功能模块代码生成装置;
33.所述项目骨架代码生成装置包括:
34.项目指令创建单元,客户端工具发送项目创建指令给云服务平台,其中,所述云服务平台中存储有预先编写的项目骨架模板;
35.项目骨架代码生成单元,所述云服务平台根据所述项目创建指令,匹配所述项目骨架模板,对匹配获得的所述项目骨架模板渲染得到项目骨架代码;
36.第一判断单元,判断所述项目骨架模板是否渲染成功;
37.项目骨架代码下载单元,若所述项目骨架模板渲染成功,则把第一状态码及所述项目骨架代码压缩打包成第一压缩包,返回给所述客户端工具;
38.第一状态码分析单元,所述客户端工具接收所述云服务平台返回的第一压缩包,对第一状态码进行分析;
39.第二判断单元,判断所述第一状态码是否响应为成功;
40.第一解压单元,若所述第一状态码响应为成功,则将所述第一压缩包解压到本地工作目录下;
41.所述功能模块代码生成装置包括:
42.模板和数据表创建单元,在所述云服务平台创建功能模块模板和数据表;
43.指令发送单元,所述客户端工具发送功能模块代码生成指令给所述云服务平台;
44.数据表查找单元,所述云服务平台根据所述功能模块代码生成指令,对所述数据
表进行查找;
45.第三判断单元,判断是否有所述功能模块代码生成指令相应的数据表;
46.功能模块代码生成单元,若有相应的数据表,将相应的所述数据表根据功能模块模板渲染生成功能模块代码;
47.第四判断单元,判断所述功能模块模板是否渲染成功;
48.功能模块代码下载单元,若所述功能模块模板渲染成功,则把第二状态码以及所述功能模块代码压缩打包成第二压缩包,返回给所述客户端工具;
49.第二状态码分析单元,所述客户端工具接收所述云服务平台返回的第二压缩包,对第二状态码进行分析;
50.第五判断单元,判断所述第二状态码是否响应为成功;
51.第二解压单元,若所述第二状态码响应为成功,则将第二压缩包解压到所述本地目录下的项目源代码目录。
52.与现有技术相比,本实用新型的有益效果如下:本发明提供了一种软件工程代码生成方法及装置,通过项目骨架模板和功能模块模板预先编写以及数据表的预先创建,开发人员通过客户端工具发送项目创建指令和功能模块代码生成指令后,所述云服务平台根据所述项目创建指令和功能模块代码生成指令渲染项目骨架模板和以及基于功能模块模板渲染数据表得到代码,并将代码自动解压复制到工作目录下,从而统一了开发规范,提高了开发时效。
附图说明
53.图1为本发明项目骨架代码生成方法的流程示意图;
54.图2为本发明功能模块代码生成方法的流程示意图;
55.图3为本发明项目骨架代码生成装置的结构框图;
56.图4为本发明功能模块代码生成装置的结构框图。
具体实施方式
57.为了更好地理解和实施,下面结合附图详细说明本发明。
58.请参阅图1和图2,本发明实施例提供一种软件工程代码生成方法包括项目骨架代码生成方法和功能模块代码生成方法,
59.所述项目骨架代码生成方法包括的步骤如下:
60.s101.客户端工具发送项目创建指令给云服务平台,其中,所述云服务平台中存储有预先编写的项目骨架模板。
61.项目骨架为标准工程布局,包含注册与发现接入,配置中心数据接入、单元测试能力、启动服务、停止服务、打包脚本、部署配置脚本等能力,会随着技术的不断演进有所调整或增加或减少。在本实施例中,项目骨架由专人负责维护并提交到指定的git代码仓库,因为项目骨架变动频繁,外置到git仓库便于进行版本管理。所述项目骨架模板是指定开发模式下的项目骨架代码模板。技术负责人根据项目类型编写所述项目骨架模板,并上传到云服务平台,其中所述项目类型包括前端、后端、大数据以及小程序。对于每一种项目类型,在所述云服务平台中存储有对应的项目骨架代码模板。
62.所述客户端工具发送的项目创建指令包括项目名称和项目类型识别码,所述项目类型识别码根据所述项目类型设定。具体的,所述前端的项目识别码是front,所述后端的项目识别码是service,所述大数据的项目识别码是data,所述小程序的项目识别码是micro。
63.s102.所述云服务平台根据所述项目创建指令,匹配所述项目骨架模板,对匹配获得的所述项目骨架模板渲染得到项目骨架代码。
64.具体的,所述云服务平台根据所述项目创建指令的项目类型识别码对项目骨架模板进行匹配,匹配到所述项目骨架模板后,所述云服务平台从nacos配置参数中读取访问git代码仓库的地址、账号及密码,通过git的clone命令拉取并存放到初始准备好的目录/tmp/随机目录命名,模板引擎通过目标渲染文件列表中指定的路径以文件流方式读取。
65.s103.判断所述项目骨架模板是否渲染成功。
66.当所述项目骨架模板渲染之后,借助模板引擎来判断是否渲染成功。所述模板引擎是根据引擎规范定义模板文件,在需要解析渲染模板前把模板需要的变量依实际场景组合后与模板文件同时传给模板引擎,由它对模板中的变量换成实现的内容,返回给调用逻辑。如果解析渲染过程中有错误,引擎会抛出异常信息,由调用逻辑进行捕获并视为解析渲染失败。具体地,本发明中的模板引擎为velocity模板引擎,所述velocity模板引擎是一个基于java的模板引擎,它允许任何人仅仅简单的使用模板语言来引用由java代码定义的对象。
67.s104.若所述项目骨架模板渲染成功,则把第一状态码及所述项目骨架代码压缩打包成第一压缩包,返回给所述客户端工具。
68.s105.所述客户端工具接收所述云服务平台返回的第一压缩包,对第一状态码进行分析。
69.s106.判断所述第一状态码是否响应为成功。
70.状态码是所述云服务平台接收每个所述客户端工具请求时分配的代码,不同的状态码表示不同的响应状态。所述第一状态码是所述云服务平台在接收到所述客户端工具发送的项目创建指令后生成的状态码,200表示响应成功,非200表示响应失败。
71.s107.若所述第一状态码响应为成功,则将所述第一压缩包解压到本地工作目录下。
72.所述功能模块代码生成方法包括的步骤如下:
73.s201.在所述云服务平台创建功能模块模板和数据表。
74.功能模块或是传统的函数功能或算法定义,或是某个系统中的业务模块或具体功能,根据业务分析后具体定义划分出来的一个组模块单元。在一个实施例中,所述功能模块模板是根据具体的业务需求分析后具体定义划分出来的一个组模块单元对应的功能模块代码模板,由专人负责维护并提交到云服务平台代码中的模板目录vm,因为功能模块代码模板变动少,所以直接内置在云服务平台工程的模板目录,所述数据表能插入、删除、查询和修改数据。
75.s202.所述客户端工具发送功能模块代码生成指令给所述云服务平台。
76.s203.所述云服务平台根据所述功能模块代码生成指令,对所述数据表进行查找。
77.s204.判断是否有所述功能模块代码生成指令相应的数据表。
78.s205.若有相应的数据表,将相应的所述数据表根据功能模块模板渲染生成功能模块代码。
79.所述功能模块代码生成指令包括项目名称和数据表名称,所述云服务平台根据所述数据表名称在数据库资源中查找数据表。当查找到所述数据表名称相应的数据表时,将相应的所述数据表根据功能模块模板渲染生成所述功能模块代码。具体地,模板引擎通过目标渲染文件列表中指定的路径以文件流方式读取存储在所述云服务平台代码中的模板目录(vm)的功能模块模板代码。其中,所述项目名称与项目创建指令中的项目名称相同,所述功能模块代码包括控制类、逻辑类、数据类以及数据操作代码。
80.s206.判断所述功能模块模板是否渲染成功。
81.当所述功能模块模板渲染之后,借助模板引擎来判断是否渲染成功。所述模板引擎与判断所述项目骨架模板是否渲染成功借助的模板引擎为同一引擎。
82.s207.若所述功能模块模板渲染成功,则把第二状态码以及所述功能模块代码压缩打包成第二压缩包,返回给所述客户端工具。
83.s208.所述客户端工具接收所述云服务平台返回的第二压缩包,对第二状态码进行分析;
84.s209.判断所述第二状态码是否响应为成功;
85.s210.若所述第二状态码响应为成功,则将第二压缩包解压到所述本地目录下的项目源代码目录。
86.所述第二状态码是所述云服务平台在接收到所述客户端工具发送的功能模块代码生成指令后生成的状态码,200表示响应成功,非200表示响应失败。
87.所述云服务平台接收所述项目创建指令,当所述项目类型识别码表示为后端或大数据时,将所述项目名称转为小写字符并以此为数据库名称和登录所述数据库的账号名称,随机生成不小于8位长度的不规则密码,进行数据库创建。
88.把数据库名称、账号名称和密码进行加密保存到资源分配表,所述云服务平台对所述资源分配表进行资源分配。请求所述资源分配表中的nacos接口进行服务配置创建,并将所述数据库的账号和密码写入开发和测试命名空间。其中,所述开发和测试命名空间是所述云服务平台约定开发和测试并且结合nacos接口来命名的,将数据库的账号和密码写入开发和测试命名空间,开发人员无需使用数据库账号和密码即可访问数据库数据,同时也便于数据库账号和密码的更换和维护。
89.应用本发明实施例,通过项目骨架模板和功能模块模板预先编写以及数据表的预先创建,开发人员通过客户端工具发送项目创建指令和功能模块代码生成指令后,所述云服务平台根据所述项目创建指令和功能模块代码生成指令渲染项目骨架模板和以及基于功能模块模板渲染数据表得到代码,并将代码自动解压复制到工作目录下,从而统一了开发规范,提高了开发时效。
90.相应于上述方法实施例,本发明实施例提供一种软件工程代码生成装置,包括项目骨架代码生成装置300和功能模块代码生成装置400;
91.所述项目骨架代码生成装置包括:
92.项目指令创建单元301,客户端工具发送项目创建指令给云服务平台,其中,所述云服务平台中存储有预先编写的项目骨架模板;
93.项目骨架代码生成单元302,所述云服务平台根据所述项目创建指令,匹配所述项目骨架模板,对匹配获得的所述项目骨架模板渲染得到项目骨架代码;
94.第一判断单元303,判断所述项目骨架模板是否渲染成功;
95.项目骨架代码下载单元304,若所述项目骨架模板渲染成功,则把第一状态码及所述项目骨架代码压缩打包成第一压缩包,返回给所述客户端工具;
96.第一状态码分析单元305,所述客户端工具接收所述云服务平台返回的第一压缩包,对第一状态码进行分析;
97.第二判断单元306,判断所述第一状态码是否响应为成功;
98.第一解压单元307,若所述第一状态码响应为成功,则将所述第一压缩包解压到本地工作目录下;
99.所述功能模块代码生成装置400包括:
100.模板和数据表创建单元401,在所述云服务平台创建功能模块模板和数据表;
101.指令发送单元402,所述客户端工具发送功能模块代码生成指令给所述云服务平台;
102.数据表查找单元403,所述云服务平台根据所述功能模块代码生成指令,对所述数据表进行查找;
103.第三判断单元404,判断是否有所述功能模块代码生成指令相应的数据表;
104.功能模块代码生成单元405,若有相应的数据表,将相应的所述数据表根据功能模块模板渲染生成功能模块代码;
105.第四判断单元406,判断所述功能模块模板是否渲染成功;
106.功能模块代码下载单元407,若所述功能模块模板渲染成功,则把第二状态码以及所述功能模块代码压缩打包成第二压缩包,返回给所述客户端工具;
107.第二状态码分析单元408,所述客户端工具接收所述云服务平台返回的第二压缩包,对第二状态码进行分析;
108.第五判断单元409,判断所述第二状态码是否响应为成功;
109.第二解压单元410,若所述第二状态码响应为成功,则将第二压缩包解压到所述本地目录下的项目源代码目录。
110.应用本发明实施例,通过项目骨架模板和功能模块模板预先编写以及数据表的预先创建,开发人员通过客户端工具发送项目创建指令和功能模块代码生成指令后,所述云服务平台根据所述项目创建指令和功能模块代码生成指令渲染项目骨架模板和以及基于功能模块模板渲染数据表得到代码,并将代码自动解压复制到工作目录下,从而统一了开发规范,提高了开发时效。
111.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,则本发明也意图包含这些改动和变形。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献