“银行核心上云工艺”交流活动目前正在进行中。6月8日,高阳金信技术委员会委员龚彦武先生为大家带来了主题为《DDD领域建模》的精彩分享。
近年来,随着金融科技的快速发展,各商业银行纷纷加快IT架构优化调整,向分布式微服务架构进行转型。进入微服务后, 虽然解决了集中式架构单体应用的很多问题,但新的问题却又随之出现,比如:微服务如何拆分?颗粒度应该多大?边界在哪里?等等。
在这个行业背景下,DDD理论因为兼顾战略与战术建模、易于推导明确的业务边界及符合微服务设计理念的特点而重新进入了大众视野,但真正推行起DDD领域建模的时候,又会发现屏障重重,比如:如何改变开发者的思维方式,从面对过程编程到面对对象编程?团队人员水平差距大,如何去拉齐这个标准,让大家步伐一致的来做事?
针对DDD理论落地难的一系列问题,龚彦武先生为大家分享了DDD领域建模的实践方法:
1.瓶颈与突破口——领域专家的引导。
要进行领域建模,首先需要有领域专家的引导,这样才能够在易变的、定制化的需求中提炼出清晰的边界,稳定的、可复用的领域概念和业务规则,并携手团队成员共同构建出领域模型。而担任领域专家的角色,不仅要熟悉领域建模知识,而且需要对业务和技术足够熟悉,对业务形态有全局的认识。高阳金信有着20多年的银行科技经验,在众多项目过程中培养和积累了许多优秀的金融业务专家和技术专家。专家们能根据客户的实际需求结合业界的发展趋势,提出符合其发展目标的规划和建议,给DDD的推进提供了强有力的保障。
2.细化规则,明确边界——规范指引行动
墨菲定律告诉我们:凡是有可能出问题的地方一定会出问题,只是早晚的问题,所以我们必须要有清晰、细化的规则去指导我们的行动,特别是当团队发展到一定规模,只有强有力的规则,才能保障大家的步伐一致。为此,我司根据DDD的模型规范制定了全套的规范,细化到实际操作的每一点滴,让每一个场景都有规则的指引和具体案例的指导。这一整套的规范,形成了我们的团队的“武功秘籍”。
3.用机控代替人控——配套工具的引入
龚彦武先生指出:没有对规范扫描,DDD就是海市蜃楼。要充分考虑人性的弱点——布置的工作未必做了,做了未必做到,做到未必做好。所以,用工具检核规范的落实情况,是最行之有效的办法。目前我司的配套工具将DDD涉及的全部规则,写入了代码检查工具中,可以自动对输出代码进行包括命名关系、组件关系,调用关系等的全面检查,最终将出现异常的问题和具体代码定位反馈给开发人员,大大的节省了时间,杜绝了人工出错的可能。
最后,龚彦武先生指出,实践证明DDD领域建模对于微服务有很大帮助,主要原因有三点:
1.为微服务的拆分提供重要理论支撑
2.强化了面向对象设计,是面向对象设计的最佳实践
3.从技术维度细分了类的结构,代码有更好的层次及更为清晰的关系
未来,也希望我司的领域建模能力能够服务到客户,帮助客户从设计到落地,实现转型蓝图。