使用 DDD 进行系统重构的过程分为以下六步: 讨论当前系统存在的问题,发现问题背后的根源。比如:架构与代码混乱,需求迭代困难,部署麻烦,bug 率逐渐升高;微服务边界不清晰,调用依赖关系复杂,团队职责混乱。 针对问题分析具体原因。比如:微服务 A 太庞大,微服务 B 和 C 职责不清,团队内业务理解不一致,内部代码设计不良,硬编码和耦合太多。 重新梳理业务流程,明确业务术语,进行 DDD 战略设计,具体又可以分为三步。 a. 进行头脑风暴,分析业务现状和期望,构建领域语言; b. 画泳道活动图、结合团队特性设计限界上下文; c. 根据架构方案和非功能需求确定微服务设计。 针对当前系统实现和 DDD 设计不匹配的地方,设计微服务重构方案。比如:哪些微服务需要重新开发,哪些微服务的功能需要从 A 调整到 B,哪些微服务需要分拆。 DDD 技术验证。针对比较重要、问题比较多的微服务进行重构打样,设计聚合根、实体、值对象,重构关键代码,验证设计是否合理以及团队能否驾驭 DDD。 任务分解与持续重构。在尽量不影响业务迭代的前提下,按照重构方案,将重构开发和业务迭代有机融合。
相关推荐
hongweihao2 分钟前
Kafka 消息积压了,同事跑路了00后程序员19 分钟前
App Store 上架 App 的完整指南,从开发准备到 IPA 上传的跨平台实战流程武子康21 分钟前
大数据-156 Apache Druid+Kafka 实时分析实战:JSON 拉平摄取与 SQL 指标全流程华仔啊30 分钟前
MySql 的 VARCHAR 和 TEXT 怎么选?大厂都在用的文本存储方案脉动数据行情33 分钟前
Go语言对接股票、黄金、外汇API实时数据教程kfyty72534 分钟前
loveqq 作为网关框架时如何修改请求体 / 响应体,和 spring 又有什么区别?aiopencode1 小时前
Swift 加密工具推荐,构建可落地的多层安全体系(源码混淆+IPA 加固+动态对抗+映射治理)Moe4881 小时前
合并Pdf、excel、图片、word为单个Pdf文件的工具类(技术点的选择与深度解析)又过一个秋1 小时前
CyberRT Transport传输层设计Java水解1 小时前
20个高级Java开发面试题及答案!