inBuilder 低代码平台特性推荐系列 - 第三期
各位 InfoQ 的友友们,大家好~今天来给大家带来的是 inBuilder 低代码平台特性推荐系列第三期——领域驱动设计!
领域驱动设计是一种通过将软件实现与核心业务概念的演进紧密相连从而实现复杂需求的软件开发方法。浪潮海岳低代码平台 inBuilder 遵循 DDD 领域驱动设计理念,针对领域模型、限界上下文,使用关键应用和微服务概念来承载领域和子域,然后抽象业务对象概念,描述领域模型中最细粒度的业务功能;在业务对象内部,通过封装表单、服务、视图模型、业务实体和数据库对象等元数据模型来应对领域驱动设计分层架构的不同层次。表单元数据属于用户接口层,视图模型描述应用层,业务实体描述领域层,服务和数据库对象描述数据库等基础设施层。在应用层,视图模型能够发布成不同的服务应对不同的表单或者其他第三方微服务调用,数据库对象提供对于不同数据库类型的适配器,有效地避免了应用层和领域层与其他层次代码交互的问题。
如下图所示:
浪潮海岳低代码平台 inBuilder 采用模型驱动开发设计理念,基于业务应用开发模式提炼、沉淀,内置提供 40 种以上开发模型(DSL 语言描述的领域元模型)的可视化开发、建模工具,全面覆盖应用系统开发所需的用户界面、API 服务、业务领域逻辑、实体数据结构、业务流程、打印、查询等开发内容要素,平台内置大量的可重用技术构件、业务构件、开发模板等软件资产库。低代码开发平台中在对应的逻辑层次抽象、识别了支撑各逻辑层次功能开发、运行的各类元数据,主要元数据及层次对应关系如下图所示。
上图中,软件领域模型描述方法,将业务应用划分为如下层次,每一层都提供面向不同应用场景的领域模型:
1)持久化层:负责业务数据的持久化处理(增删改查),可支持关系型数据库等不同的持久化实现;
2)领域服务层:负责领域核心的模型结构和业务逻辑描述,它与业务规则保持同步,只要业务规则不变,本层逻辑就是稳定的,不受具体业务应用的影响;
3)业务流程层:负责单据间、单据内部的业务数据的流转、数据映射等;
4)BFF 层:作为服务于前端的后端,属于业务应用层,负责特定应用场景的业务规则,既能包含某个领域层实体的部分能力,也能组装、编排多个领域层;
5)API 层:业务系统中的资源与能力进行封装后,提供外部调用的接口,包括给展现层、第三方系统调用的外部 API 和微服务之间调用的内部 API;
6)UI 层:用户展现层,通过 API 层,将业务数据展现给最终用户,与用户交互,并将用户交互的内容提交给服务器。
如上图所示,基于领域驱动设计的移动开发框架,为开发人员提供了面向对象的开发骨架,屏蔽开发过程中重复的工作,开发人员只需要在骨架的基础上补充少量逻辑代码,即可完成功能的开发。
若想解锁更多内容,可点击inBuilder社区,免费下载安装 inBuilder 开源社区版!
评论