基于领域驱动的系统优化方法及装置、介质、设备制造方法及图纸

技术编号:37244212 阅读:10 留言:0更新日期:2023-04-20 23:24
本发明专利技术涉及一种基于领域驱动的系统优化方法及装置、介质、设备。方法包括:获取业务需求;根据业务需求确定问题域;针对问题域,确定系统的各个层级;其中,层级包括用户界面层、负责业务实现的领域层、通过调用领域层中的业务逻辑以实现对外服务的应用层以及为其它各层提供技术支持的基础设施层;问题域的业务逻辑均封装在领域层;针对领域层,建立领域模型,以使领域模型用于构建优化的系统;其中,领域模型中包括多个组件,组件中包括实体,每一个实体具有唯一标识,且实体由实体属性和行为数据构成。本发明专利技术将所有业务逻辑封装在领域层,领域层再划分多个组件,实体中事物的属性和行为关联,增强了代码的健壮性和可读性。增强了代码的健壮性和可读性。增强了代码的健壮性和可读性。

【技术实现步骤摘要】
基于领域驱动的系统优化方法及装置、介质、设备


[0001]本专利技术涉及系统优化
,尤其是涉及一种基于领域驱动的系统优化方法及装置、介质、设备。

技术介绍

[0002]随着需求不断增加,系统功能也在不断的新增,系统的迭代更新频繁,系统代码和系统架构越来越臃肿复杂,系统维护和迭代更新的成本也随之越来越大。例如,智汇家系统,随着系统的越来越庞大和复杂,所有的功能杂糅在一起,导致后续功能新增非常困难,需要投入大量时间去分析和整理系统结构,才能准确的做出新功能的开发。
[0003]基于此痛点,智汇家系统做了部分优化,将复杂的系统拆分为了微服务架构,但是任然会面临一个问题,就是微服务架构的智汇家系统内部依旧使用的是传统的MVC贫血模型。所谓贫血模型,即事务脚本模式,将行为和状态是分离到不同的对象中,这种模型带来的一个问题就是一个事务的状态和行为是分离的,不连贯的,开发者不能直观和快速的定位和理解事务所包含的数据和逻辑,需要程序员花费大量时间和精力去研究和梳理,还会造成大量重复性的工作。为了更好地适配微服务架构和提升系统的健壮性,有必要对系统进行进一步优化。

技术实现思路

[0004]为了解决上述技术问题或者至少部分地解决上述技术问题,本专利技术提供了一种基于领域驱动的系统优化方法及装置、介质、设备。
[0005]第一方面,本专利技术实施例提供一种基于领域驱动的系统优化方法,包括:
[0006]获取业务需求;
[0007]根据所述业务需求确定问题域;
[0008]针对所述问题域,确定系统的各个层级;其中,所述层级包括用户界面层、负责业务实现的领域层、通过调用所述领域层中的业务逻辑以实现对外服务的应用层以及为其它各层提供技术支持的基础设施层;所述问题域的业务逻辑均封装在所述领域层;
[0009]针对所述领域层,建立领域模型,以使所述领域模型用于构建优化的系统;其中,所述领域模型中包括多个组件,所述组件中包括实体,每一个实体具有唯一标识,且所述实体由实体属性和行为数据构成。
[0010]第二方面,本专利技术实施例提供一种基于领域驱动的系统优化装置,包括:
[0011]需求获取模块,用于获取业务需求;
[0012]领域确定模块,用于根据所述业务需求确定问题域;
[0013]层级确定模块,用于针对所述问题域,确定系统的各个层级;其中,所述层级包括用户界面层、负责业务实现的领域层、通过调用所述领域层中的业务逻辑以实现对外服务的应用层以及为其它各层提供技术支持的基础设施层;所述问题域的业务逻辑均封装在所述领域层;
[0014]模型建立模块,用于针对所述领域层,建立领域模型,以使所述领域模型用于构建优化的系统;其中,所述领域模型中包括多个组件,所述组件中包括实体,每一个实体具有唯一标识,且所述实体由实体属性和行为数据构成。
[0015]第三方面,本专利技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面提供的方法。
[0016]第四方面,本专利技术实施例提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面提供的所述的方法。
[0017]本专利技术实施例提供的基于领域驱动的系统优化方法及装置、介质、设备,各自组合后具有如下有益效果:本专利技术实施例基于领域驱动设计将MVC贫血模型替换为充血模型,将所有业务逻辑封装在领域层,领域层再划分实体等组件,在实体中事物的属性和行为关联,既增强了代码的健壮性和可读性,使代码功能和业务逻辑一目了然,也降低了维护成本,能够根据问题快速定位和解决问题。
附图说明
[0018]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。
[0019]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0020]图1为本专利技术一个实施例中基于领域驱动的系统优化方法的流程示意图。
具体实施方式
[0021]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0022]本专利技术实施例提供一种基于领域驱动的系统优化方法,参见图1,该方法包括如下步骤S110~S140:
[0023]S110、获取业务需求;
[0024]其中,业务需求为系统所提供的服务上的任一业务需求。
[0025]S120、根据所述业务需求确定问题域;
[0026]其中,问题域即领域,也可以称为界限上下文。不同的业务需求对应不同的领域,在得知业务需求后,可以根据业务需求确定对应的领域即问题域。
[0027]其中,问题域可以分为设备域、用户域等。每个领域都有各自的边界,所有领域内的业务不会超出领域边界,领域中又可根据具体业务划分出核心域和子域。例如,核心域分为设备绑定域、解绑域,子域分为蓝牙设备域、WiFi设备域等。
[0028]S130、针对所述问题域,确定系统的各个层级;其中,所述层级包括用户界面层、负责业务实现的领域层、通过调用所述领域层中的业务逻辑以实现对外服务的应用层以及为其它各层提供技术支持的基础设施层;所述问题域的业务逻辑均封装在所述领域层;
[0029]可理解的是,用户界面层负责向用户展现信息以及解释用户命令;应用层负责定义业务,对外提供业务功能,对内负责调用领域层中的业务逻辑,应用层中不包括业务的具体逻辑;领域层负责具体业务实现,为领域驱动设计的核心层;基础设施层负责为其它层提供通用技术支持、数据持久化、提供层间通信能力等。
[0030]可理解的是,不同的问题域对应的领域层中的具体逻辑不同,领域层中的具体业务逻辑为实现该问题域的各个业务功能的业务逻辑。
[0031]S140、针对所述领域层,建立领域模型,以使所述领域模型用于构建优化的系统;其中,所述领域模型中包括多个组件,所述组件中包括实体,每一个实体具有唯一标识,且所述实体由实体属性和行为数据构成。
[0032]其中,每一个实体具有唯一的标识,且实体只包含实体属性和行为数据,例如,设备实体中只有设备独有的基本属性(如物料码、型号等)和设备的固有行为(设备入网、设备绑定等),与设备相关的业务逻辑均在设备实体中实现。例如,用户实体,用户实体中包含用户固有属性(如姓名、年龄、籍贯等)和用户的固有行为(如新增、修改、删除等);将与事物相关的属性和行为(即业务逻辑)放在一起,可以增强代码可读性和可维护性。...

【技术保护点】

【技术特征摘要】
1.一种基于领域驱动的系统优化方法,其特征在于,包括:获取业务需求;根据所述业务需求确定问题域;针对所述问题域,确定系统的各个层级;其中,所述层级包括用户界面层、负责业务实现的领域层、通过调用所述领域层中的业务逻辑以实现对外服务的应用层以及为其它各层提供技术支持的基础设施层;所述问题域的业务逻辑均封装在所述领域层;针对所述领域层,建立领域模型,以使所述领域模型用于构建优化的系统;其中,所述领域模型中包括多个组件,所述组件中包括实体,每一个实体具有唯一标识,且所述实体由实体属性和行为数据构成。2.根据权利要求1所述的方法,其特征在于,所述组件中还包括针对不需要唯一标识的事务所创建的值对象。3.根据权利要求1所述的方法,其特征在于,所述组件中还包括领域服务,所述领域服务中包括需要多个领域对象共同完成的操作。4.根据权利要求1所述的方法,其特征在于,所述组件中还包括基于业务所创建的仓储,所述仓储用于存储对象数据,所述应用层通过仓储接口从所述仓储中获取和存储领域对象。5.根据权利要求1所述的方法,其特征在于,所述组件中还包括工厂,所述工厂用于:创建领域对象,将所述领域对象进行封装,并将封装好的领域对象提供至应用层。6.根据权利要求1所述的方法,其特征在于,所述组件中还包括基于所述实体创建的聚合模块,所述聚合...

【专利技术属性】
技术研发人员:陈海陈良
申请(专利权)人:四川虹美智能科技有限公司
类型:发明
国别省市:

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

1