
高级 Java 与 AI 应用工程(二):DDD、事件与分布式一致性
技术定位
DDD 不是将项目机械分为四个包,而是用统一语言和边界控制复杂性;分布式设计不是追求“最终一致”,而是在不能使用单一事务的地方,明确哪些结果必须立即一致、哪些结果可恢复地异步收敛。
1. DDD 解决的不是“代码分层”
DDD 的价值在于让业务概念和软件模型一致,降低规则散落在 Controller、SQL、定时任务和前端中的风险。先找业务语言,再决定类和表。
1.1 三个必须回答的问题
- 这个系统的核心业务结果是什么?例如“报告已生成”而不是“数据库插入一行”。
- 哪些规则必须始终同时成立?这决定聚合边界和事务。
- 哪些变化可以接受最终一致?这决定事件、任务和补偿的边界。
大约 7 分钟