基于领域驱动设计的工程脚手架生成方法、装置和设备制造方法及图纸

技术编号:38712470 阅读:11 留言:0更新日期:2023-09-08 14:55
本发明专利技术提出一种基于领域驱动设计的工程脚手架生成方法、装置和设备,方法包括:通过获取目标微服务系统的系统信息、接口信息、应用服务信息、领域服务信息、领域模型信息和数据模型信息,实现根据目标微服务系统的接口信息,生成目标微服务系统对应的目标工程脚手架的接口包,根据目标微服务系统的应用服务信息,生成目标工程脚手架的应用包,根据目标微服务系统的领域服务信息和领域模型信息,生成目标工程脚手架的领域包,根据接口包、应用包和领域包,生成目标工程脚手架的逻辑实现包,根据目标工程脚手架的系统信息和数据模型信息,生成目标工程脚手架的基础设施包,从而通过新增逻辑实现包,实现业务逻辑与系统设计的分离,便于代码迁移。便于代码迁移。便于代码迁移。

【技术实现步骤摘要】
基于领域驱动设计的工程脚手架生成方法、装置和设备


[0001]本专利技术涉及计算机
,尤其涉及一种基于领域驱动设计的工程脚手架生成方法、装置和设备。

技术介绍

[0002]领域驱动设计(Domain Driven Design,简称DDD)是埃里克.埃文斯(Eric Evans)在2004年发表的《领域驱动设计》(Domain

Driven Design

Tackling Complexity in the Heart of software)著作中提出的一种解决业务复杂性的设计思想。
[0003]相关技术中,可以采用DDD模式设计微服务。如图1所示,采用DDD模式设计的微服务采用四层架构分层,包括:接口层、应用层、领域层和基础设施层。其中,接口层负责向外暴露微服务的接口,提供相关的功能服务;应用层负责提供应用服务和进行接口层和领域层的对象转换;领域层是核心层,所有的业务模型和业务逻辑都被隔离在领域层中;基础设施层负责向其他层提供通用的技术和基础服务,包括图1所示的中间适配器、第三方工具、公共技术组件、数据库适配器、事件总线、南向网关等。
[0004]然而,由于微服务设计是允许迭代更新的,当需要生成新版工程脚手架时,在旧版工程脚手架完成的业务代码就需要对应迁移到新版工程脚手架上,若新版工程脚手架与旧版工程脚手架相比,关于微服务设计变化的内容很多,那么,代码迁移的成本就会很高,代码架构的保鲜就会成为一个降低开发效率、阻碍开发进度的问题,因此,如何实现不同版本工程脚手架之间较为平滑地迁移代码是值得研究的。

技术实现思路

[0005]本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。
[0006]为此,本专利技术的第一个目的在于提出一种基于领域驱动设计的工程脚手架生成方法,以通过在生成的工程脚手架中新增包括接口包、应用包和领域包的逻辑实现包,实现在工程脚手架中的接口包、应用包和领域包中提供相关定义,在逻辑实现包包括的接口包、应用包和领域包内实现业务逻辑,将业务逻辑与系统设计分离,便于不同版本工程脚手架之间较为平滑地迁移代码。
[0007]本专利技术的第二个目的在于提出一种基于领域驱动设计的工程脚手架生成装置。
[0008]本专利技术的第三个目的在于提出一种电子设备。
[0009]本专利技术的第四个目的在于提出一种计算机可读存储介质。
[0010]本专利技术的第五个目的在于提出一种计算机程序产品。
[0011]为达上述目的,本专利技术第一方面实施例提出了一种基于领域驱动设计的工程脚手架生成方法,包括:
[0012]获取目标微服务系统的系统信息、接口信息、应用服务信息、领域服务信息、领域模型信息和数据模型信息;
[0013]根据所述目标微服务系统的接口信息,生成所述目标微服务系统对应的目标工程
脚手架的接口包;其中,所述接口包用于提供所述目标微服务系统的接口定义;
[0014]根据所述目标微服务系统的应用服务信息,生成所述目标工程脚手架的应用包;其中,所述应用包用于提供所述目标微服务系统的应用服务定义;
[0015]根据所述目标微服务系统的领域服务信息和领域模型信息,生成所述目标工程脚手架的领域包;其中,所述领域包用于提供所述目标微服务系统的领域服务定义和领域模型定义;
[0016]根据所述接口包、所述应用包和所述领域包,生成所述目标工程脚手架的逻辑实现包;其中,所述逻辑实现包用于在所述逻辑实现包包括的所述接口包、所述应用包和所述领域包内实现业务逻辑;
[0017]根据所述目标工程脚手架的系统信息和数据模型信息,生成所述目标工程脚手架的基础设施包;其中,所述基础设施包用于提供所述目标微服务系统的系统定义、数据模型定义和实现业务逻辑。
[0018]为达上述目的,本专利技术第二方面实施例提出了一种基于领域驱动设计的工程脚手架生成装置,包括:
[0019]获取模块,用于获取目标微服务系统的系统信息、接口信息、应用服务信息、领域服务信息、领域模型信息和数据模型信息;
[0020]第一生成模块,用于根据所述目标微服务系统的接口信息,生成所述目标微服务系统对应的目标工程脚手架的接口包;其中,所述接口包用于提供所述目标微服务系统的接口定义;
[0021]第二生成模块,用于根据所述目标微服务系统的应用服务信息,生成所述目标工程脚手架的应用包;其中,所述应用包用于提供所述目标微服务系统的应用服务定义;
[0022]第三生成模块,用于根据所述目标微服务系统的领域服务信息和领域模型信息,生成所述目标工程脚手架的领域包;其中,所述领域包用于提供所述目标微服务系统的领域服务定义和领域模型定义;
[0023]第四生成模块,用于根据所述接口包、所述应用包和所述领域包,生成所述目标工程脚手架的逻辑实现包;其中,所述逻辑实现包用于在所述逻辑实现包包括的所述接口包、所述应用包和所述领域包内实现业务逻辑;
[0024]第五生成模块,用于根据所述目标工程脚手架的系统信息和数据模型信息,生成所述目标工程脚手架的基础设施包;其中,所述基础设施包用于提供所述目标微服务系统的系统定义、数据模型定义和实现业务逻辑。
[0025]为达上述目的,本专利技术第三方面实施例提出了一种电子设备,该电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第一方面的基于领域驱动设计的工程脚手架生成方法。
[0026]为了实现上述目的,本专利技术第四方面实施例提出了一种存储有计算机指令的计算机可读存储介质,所述计算机指令用于使所述计算机执行前述第一方面的基于领域驱动设计的工程脚手架生成方法。
[0027]为了实现上述目的,本专利技术第五方面实施例提出了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现前述第一方面的基于领域驱动设计的工
程脚手架生成方法。
[0028]本专利技术实施例所提供的技术方案包含如下的有益效果:
[0029]通过获取目标微服务系统的系统信息、接口信息、应用服务信息、领域服务信息、领域模型信息和数据模型信息,实现根据目标微服务系统的接口信息,生成目标微服务系统对应的目标工程脚手架的接口包,其中,接口包用于提供目标微服务系统的接口定义,根据目标微服务系统的应用服务信息,生成目标工程脚手架的应用包,其中,应用包用于提供目标微服务系统的应用服务定义,根据目标微服务系统的领域服务信息和领域模型信息,生成目标工程脚手架的领域包,其中,领域包用于提供目标微服务系统的领域服务定义和领域模型定义,根据接口包、应用包和领域包,生成目标工程脚手架的逻辑实现包,其中,逻辑实现包用于在逻辑实现包包括的接口包、应用包和领域包内实现业务逻辑,根据目标工程脚手架的系统信息和数据模型信息,生成目标工程脚手架的基础设施包,其中,基础设施包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于领域驱动设计的工程脚手架生成方法,其特征在于,所述方法应用于目标平台,所述目标平台用于设计微服务系统的工程架构;所述方法包括:获取目标微服务系统的系统信息、接口信息、应用服务信息、领域服务信息、领域模型信息和数据模型信息;根据所述目标微服务系统的接口信息,生成所述目标微服务系统对应的目标工程脚手架的接口包;其中,所述接口包用于提供所述目标微服务系统的接口定义;根据所述目标微服务系统的应用服务信息,生成所述目标工程脚手架的应用包;其中,所述应用包用于提供所述目标微服务系统的应用服务定义;根据所述目标微服务系统的领域服务信息和领域模型信息,生成所述目标工程脚手架的领域包;其中,所述领域包用于提供所述目标微服务系统的领域服务定义和领域模型定义;根据所述接口包、所述应用包和所述领域包,生成所述目标工程脚手架的逻辑实现包;其中,所述逻辑实现包用于在所述逻辑实现包包括的所述接口包、所述应用包和所述领域包内实现业务逻辑;根据所述目标工程脚手架的系统信息和数据模型信息,生成所述目标工程脚手架的基础设施包;其中,所述基础设施包用于提供所述目标微服务系统的系统定义、数据模型定义和实现业务逻辑。2.根据权利要求1所述的方法,其特征在于,所述系统信息包括系统名称、系统编码、系统端口、服务框架、groupId前缀、artifactId前缀和包路径;所述获取目标微服务系统的系统信息,包括:响应于用户的新增微服务系统操作,获取所述用户输入的所述目标微服务系统的系统名称、系统端口、groupId前缀、artifactId前缀和包路径,和所述用户选择的所述目标微服务系统的服务框架,以及基于所述用户输入的所述目标微服务系统的系统名称生成的系统编码。3.根据权利要求2所述的方法,其特征在于,所述系统信息还包括系统描述和是否设置数据源,相对应地,在所述用户选择设置数据源的情况下,所述系统信息还包括引用来源;所述获取目标微服务系统的系统信息,还包括:响应于所述用户的新增微服务系统操作,获取所述用户输入的所述目标微服务系统的系统描述,以及在所述用户选择设置数据源的情况下,获取所述用户输入的所述目标微服务系统的引用来源。4.根据权利要求3所述的方法,其特征在于,所述系统信息还包括技术组件和微服务参数,所述技术组件包括数据库驱动和日志组件,所述微服务参数包括接口实现启动检查标志、交易成功响应码、交易成功响应信息、业务日志级别、架构日志级别和日志生成路径;所述获取目标微服务系统的系统信息,还包括:响应于用户对所述目标微服务系统的工程脚手架下载操作,获取所述用户选择的所述目标微服务系统的数据库驱动、日志组件、接口实现启动检查标志、业务日志级别、架构日志级别,以及所述用户输入的所述目标微服务系统的交易成功响应码、交易成功响应信息和日志生成路径。
5.根据权利要求1所述的方法,其特征在于,所述接口信息包括接口类信息和接口类方法信息,所述接口类信息包括接口类名称和接口类标识,所述接口类方法信息包括接口类方法名称和接口类方法标识;所述获取目标微服务系统的接口信息,包括:响应于用户的创建接口类操作,获取所述用户输入的任一接口类的接口类名称和接口类标识;响应于所述用户针对任一目标接口类的创建接口类方法操作,获取所述用户输入的任一接口类方法的接口类方法名称和接口类方法标识。6.根据权利要求5所述的方法,其特征在于,所述接口类信息还包括接口类描述;所述接口类方法信息还包括错误码、接口类方法描述、接口类方法入参类名、接口类方法出参类名、接口类方法输入字段和接口类方法输出字段;所述获取目标微服务系统的接口信息,包括:响应于所述用户的创建接口类操作,获取所述用户输入的任一接口类的接口类名称、接口类标识和接口类描述;响应于所述用户针对任一目标接口类的创建接口类方法操作,获取所述用户输入的任一接口类方法的接口类方法名称、接口类方法标识、错误码、接口类方法描述、接口类方法入参类名和接口类方法出参类名,以及所述用户选择的所述任一接口类方法的接口类方法输入字段和接口类方法输出字段。7.根据权利要求1所述的方法,其特征在于,所述应用服务信息包括应用服务类信息和应用服务类方法信息,所述应用服务类信息包括应用服务类名称和应用服务类标识,所述应用服务类方法信息包括应用服务类方法名称和应用服务类方法标识;所述获取目标微服务系统的应用服务信息,包括:响应于用户的创建应用服务类操作,获取所述用户输入的任一应用服务类的应用服务类名称和应用服务类标识;响应于所述用户针对任一目标应用服务类的创建应用服务类方法操作,获取所述用户输入的任一应用服务类方法的应用服务类方法名称和应用服务类方法标识。8.根据权利要求7所述的方法,其特征在于,所述应用服务类信息还包括应用服务类描述;所述应用服务类方法信息还包括是否记录流水、应用服务类方法描述、是否使用接口类方法输入输出、应用服务类方法输入字段和应用服务类方法输出字段;所述获取目标微服务系统的应用服务信息,包括:响应于所述用户的创建应用服务类操作,获取所述用户输入的任一应用服务类的应用服务类名称、应用服务类标识和应用服务类描述;响应于所述用户针对任一目标应用服务类的创建应用服务类方法操作,获取所述用户输入的任一应用服务类方法的应用服务类方法名称、应用服务类方法标识、应用服务类方法描述,以及所述用户选择的所述任一应用服务类方法的是否记录流水、是否使用接口类方法输入输出,并在所述用户选择不使用接口类方法输入输出的情况下,获取所述用户选择的所述任一应用服务类方法的应用服务类方法输入字段和应用服务类方法输出字段。9.根据权利要求1所述的方法,其特征在于,所述领域服务信息包括领域服务类信息和领域服务类方法信息,所述领域服务类信息包括领域服务类名称和领域服务类标识,所述
领域服务类方法信息包括领域服务类方法名称和领域服务类方法标识;所述获取目标微服务系统的领域服务信息,包括:响应于用户的创建领域服务类操作,获取所述用户输入的任一领域服务类的领...

【专利技术属性】
技术研发人员:李欢甘霖
申请(专利权)人:中电金信软件有限公司
类型:发明
国别省市:

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

1