大型银行组装式应用在数字生态基座落地实践( 四 )
对象工厂、领域事件和仓储 , 我们的理解一定程度上是属于技术实现 , 在技术实现上 , 通过面向对象的设计以及设计模式的引入 , 在对象创建、对象交互上达到灵活解耦 。 对象工厂用于创建对象;领域事件用于对象之间的信息交互和解耦;仓储用于数据交换 , 比如我们在落地时 , 需要引入一些存量应用 , 一个实体可能对应到多张表 , 多张表则需要做一些拆分和整合 , 因此在仓储上会做一些额外的工作内容 。
针对这套DDD标准架构的落地 , 我们会有一个标准工程结构 , 明确工程结构设计 , 设计者可以和代码阅读者交流领域和架构的设计意图 。 围绕这套工程建设 , 我们也有一套配套的工具支撑 , 总结标准应用结构生成、依赖检查工具、标准资产组件/工具推荐等 , 一系列工具资产保证架构落地 。
接下来我们通过一个例子介绍DDD的设计思路落地 。 其实DDD最核心的是一些聚合根和实体对象的抽取 。 我们行内有一套就是业务建模方法与DDD理论一脉相承 , DDD里的事件风暴我们行内称为业务用例 , 就是通过一段话与业务人员讨论业务场景和业务能力 。 主要流程如下:首先找一些名词 , 给这些名词加上属性 , 通过名词之间的关系形成一个实体领域模型 , 我们称为业务对象;其次将实体对象进行聚合形成一个聚合根;最后围绕这些实体模型找一些相关的动作 , 如支付、提交 , 从而形成领域服务、交易服务等能力 。
文章图片
以某代理保险销售应用为例:抽取保险协议的实体和值对象 , 做抽象类的聚合和设计 。 实体分为财险保单和寿险保单两大类 , 值对象指的是保单上的各种属性 , 包括产品信息、公司信息、保单期限、费率信息等 。 未来我们在值对象设计上可能会做一些技术手段 , 通过定制手段自动化地动态展示前台页面等 , 形成了整个聚合根和实体的值对象 , 从事件风暴来讲 , 也就是梳理出用例 , 再进行组装式的开发 。
3、低代码能力
组装式开发离不开近几年一直在谈的低代码能力 , 我们也是通过低代码能力进行落地实践 。
采用低代码能力 , 生成代码符合标准工程代码结构 , 应用可自定义连接不同数据实体 , 基于实体自动生成对应的领域服务等相关PBC积木块内容 , 同是针对多实体聚合可复用DDD设计的聚合根对象预先在数据库创建虚拟实体从而自动生成 。 自动生成有以下几点需要注意:
我们传统针对表 , 实体可能是get、set方法 , 在DDD领域里其实是贫血模型 , 未来我们设计一种充血模型 , 也就是实体还是会带一些方法 , 我们现在已经能够比较好地支持针对于实体的增删改查的能力 , 围绕实体生成对象服务 。
我们在选中实体生成代码时 , 可以进行一定的定制 , 在增删改查的基础上 , 我们平台会更多提供扩展能力的支持 , 比如聚合 , 平台通过类似于DSL等一些脚本的能力对其进行定制 , 读取我们定制的一些内容 , 自动生成这一部分代码 。
文章图片
除了对象服务之外 , 围绕实体也可能会有一些简单的领域服务 , 也就是图中标的业务服务 , 另外 , 我们行内在单元测试方面也是落地比较深的 , 因此所有代码我们都必须有对应的单元测试覆盖 。 我们目前生成的单元测试符合行业要求 , 生成单元测试之后也是按照标准代码结构生成代码 , 图中示例是以某应用中产品信息实体为例 。
针对实体对象生成的能力 , 比如增删改查 , 我们抽取了多个应用进行分析 , 以某应用为例 , 应用中涉及80多张表(占比30%)可以一次性通过低代码平台直接生成 , 加速研发效率 , 剩下的可能需要额外进行组装和定制再生成 。
- https|品牌主机升级内存和SSD不如组装机简单?联想擎天T510实操分享
- 维修电脑很难学么,哪里可以学习电脑维修和组装?
- 本文转自:央广网央广网北京11月11日消息 据银保监会网站消息|信用卡营销不规范 广发银行太原分行被罚30万
- 给综艺节目改个LOGO有多难?来看大型省钱“偷懒”现场
- 液晶显示器|别去网上买那种组装屏组装的液晶显示器—正儿八经的显示器真不贵
- 联动优POS叫板“广发银行”!针对广发信用卡费率上涨万6
- 银行机器人 介绍
- 银行|网红辛巴不满平台设置开屏公告,直播建议对方整改:不是人干的事
- |电脑和手机更新的非常快,2015年新组装的电脑,已经被淘汰了
- 银行|多家银行关闭ATM二维码存款:保护资金安全