基于项目组规范自动生成代码的方法及系统与流程

文档序号:36386952发布日期:2023-12-15 01:44阅读:44来源:国知局
基于项目组规范自动生成代码的方法及系统与流程

本发明涉及软件工程,具体地说是一种基于项目组规范自动生成代码的方法及系统。


背景技术:

1、代码生成技术是一种利用程序生成代码的技术,它用程序来编程,致力于解放编码生产力。代码生成的原理是读取工程领域元数据,按照一定的设计模式和规则,结合产生出符合编程规范的源代码。常用的代码生成方法主要有以下几种:

2、(1)基于模板生成代码(目前常用工具有freemarker、velocity、jet等);

3、(2)基于模型生成代码;

4、(3)基于dom生成代码;

5、(4)基于代码注释解析生成代码;

6、(5)基于对象关系生成代码等。

7、目前市面其实存在一些代码自动生成工具,特别是后端工具,比如mybatisgenerator,可以根据标准生成一套基本的后端模块,但生成的这些模块基本都是标准的,无法将项目团队本身的代码标准或者风格植入其中,与项目组开发的业务代码存在比较大的差距,仅可以用在一些通用或者简单的项目上。

8、故如何能够定制化到具体项目上完成代码自动生成,使得生成的代码更贴切项目本身是目前亟待解决的技术问题。


技术实现思路

1、本发明的技术任务是提供一种基于项目组规范自动生成代码的方法及系统,来解决如何能够定制化到具体项目上完成代码自动生成,使得生成的代码更贴切项目本身的问题。

2、本发明的技术任务是按以下方式实现的,一种基于项目组规范自动生成代码的方法,该方法是利用freemarker模板引擎,将一个模块要涉及的文件的公共固定部分全部传抽离出对应的.tpl文件,植入标记上模块本身动态的元素,调用freemarker模板引擎生成最终模块对应的真实文件;具体如下:

3、依据项目组开发规范抽离出.tpl文件;

4、定义.tpl文件中涉及的动态元素;

5、维护动态可变元素的值:启动前端系统,维护动态可变元素的值;

6、根据.tpl文件生成最终的源代码文件:维护完成后,下载整个模块的源代码。

7、作为优选,依据项目组开发规范抽离出.tpl文件具体如下:

8、每个文件编写对应的.tpl文件,将真实业务开发涉及的每个.tpl文件中的固定部分抽离出来,写入到.tpl文件中;对于动态元素用${}方式特殊标记。

9、更优地,对于每个.tpl文件中的固定部分,将固定部分的格式与内容拷贝进去;

10、对于动态元素用${}方式特殊标记具体形式为:${sheetcfg.xx};

11、其中,xx是modulemanagedto中的属性;sheetcfg是在generateandsave中指定modulemanagedto实例的名字,根据项目组开发规范自行修改;模块涉及的每个文件都需要编写对于.tpl文件,比如src\main\resources\template该目录下所有的文件都是依据项目组模块开发规范归纳总结提出文件的固定部分与动态部分。

12、更优地,定义.tpl文件中涉及的动态元素是将${}方式特殊标记中描述的动态元素统一定义在dto(动态数据传输对象)中。

13、更优地,维护.tpl文件中涉及的动态元素具体如下:

14、若模块的动态元素未能完全满足项目的开发要求,则增加或者修改可变元素,同步修改前后端代码并维护同步到数据库;

15、对于已经存在数据库表,通过db(读取数据库表的方式)添加将数据库的指定表的字段全面读取出来。

16、更优地,修改.tpl文件生成规则具体如下:

17、在sheetbusinessgeneratorutil.generatemodule中,修改模板文件的根路径以及模板文件对应的模块文件,通过配置化方式修改继续完善.tpl文件。

18、一种基于项目组规范自动生成代码的系统,该系统包括:

19、抽离单元,用于依据项目组开发规范抽离出.tpl文件;

20、定义单元,用于定义.tpl文件中涉及的动态元素;

21、维护单元,用于启动前端系统,维护动态可变元素的值;

22、生成单元,用于根据.tpl文件生成最终的源代码文件。

23、作为优选,所述抽离单元中每个文件编写对应的.tpl文件,将真实业务开发涉及的每个.tpl文件中的固定部分抽离出来,写入到.tpl文件中;对于动态元素用${}方式特殊标记;

24、对于每个.tpl文件中的固定部分,将固定部分的格式与内容拷贝进去;

25、对于动态元素用${}方式特殊标记具体形式为:${sheetcfg.xx};

26、其中,xx是modulemanagedto中的属性;sheetcfg是在generateandsave中指定modulemanagedto实例的名字,根据项目组开发规范自行修改;模块涉及的每个文件都需要编写对于.tpl文件,比如src\main\resources\template该目录下所有的文件都是依据项目组模块开发规范归纳总结提出文件的固定部分与动态部分;

27、所述定义单元是将${}方式特殊标记中描述的动态元素统一定义在dto(动态数据传输对象)中;

28、所述维护单元中若模块的动态元素未能完全满足项目的开发要求,则增加或者修改可变元素,同步修改前后端代码并维护同步到数据库;

29、对于已经存在数据库表,通过db(读取数据库表的方式)添加将数据库的指定表的字段全面读取出来。

30、一种电子设备,包括:存储器和至少一个处理器;

31、其中,所述存储器上存储有计算机程序;

32、所述至少一个处理器执行所述存储器存储的计算机程序,使得所述至少一个处理器执行如上述的基于项目组规范自动生成代码的方法。

33、一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序可被处理器执行以实现如上述的基于项目组规范自动生成代码的方法。

34、本发明的基于项目组规范自动生成代码的方法及系统具有以下优点:

35、(一)本发明解决了业务模块公共部分的重复开发,使开发人员将更多的精力专注到业务本身上来;而传统的生成工具无法根据项目的自身的规范要求定制化生成源码,该工具最大程度使模块文件动静结合;通过抽离编写项目组内部功能模块开发的公共文件,通过工具前端页面定制维护动态化数据,生成最终模块对应的文件;

36、(二)本发明主要用freemarker模块引擎,将一个模块要涉及的文件的公共固定部分全部传抽离出对应的.tpl文件,植入标记上模块本身动态的元素,调用模板引擎生成最终模块对应的真实文件;

37、(三)对于不同的项目团队需要定制化抽离模板,因为每个项目团队开发标准与规范是不一样的,那么就需要对这套引擎工具有一定的了解与认识,才能开发适合项目组自己的模板;

38、(四)在项目开发过程中,关注点更多是在业务功能的开发及保证业务流程的正确性上,对于重复性的代码编写占据了研发人员大量的时间和精力,而这些代码往往都是具有规律的;就如controller、service、servicelmpl、dao、daolmpl、model、vue的结构,许多模块都有类似的结构;针对这部分代码,本发明可以依据项目组开发规范抽离出这些文件的公共部分,加上自己定义的变量,动态组装生成这些文件,然后再次基础之上来添加我们个性化业务控制与功能,大大减少研发人员对基础功能的调试与研发;

39、(五)本发明用到目前所使用的后端技术架构是ssm+freemarker,前端是vue.js;目前本发明已经编写好并存在的两套模板是某某省eoms团队项目组的流程工单与非流程工单模块的模板,如果是该团队后续开发所有的业务模块,那么直接通过前端对模块动态元素进入录入与维护,即可以生成适合项目组功能模块开发的源代码,点击页面的下载按钮即可下载该模块涉及的所有代码与脚本;

40、(六)本发明大大解放了研发人员业务开发过程中对公共功能的编写与调试,从一定程度避免通用功能的bug率,并且为后续系统改造与版本升级也提供了很大的便利性;在使用本发明前,一般带业务流程功能前后端研发需要3天左右,使用后1天就能将模块涉及的模型、前后端代码、数据脚本全部生成,缩短了模块开发周期。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1