从六边形到 DDD:一条真正可落地的 Go 渐进演进路线
引言
在软件开发的漫漫长路上,我们总在寻找一种既能应对当前需求,又能优雅拥抱未来变化的架构。六边形架构(Hexagonal Architecture) 和领域驱动设计(Domain-Driven Design, DDD) 无疑是众多开发者心中的“白月光”。然而,许多团队在尝试落地 DDD 时,往往陷入“大爆炸式重构”的泥潭,最终折戟沉沙。
本文提出一条渐进式演进路线:从轻量的六边形架构出发,逐步引入 DDD 的核心概念,每一步都可测试、可回滚,最终构建出一个既能隔离技术细节,又能清晰表达业务模型的系统。我们将使用 Go 语言,通过一个真实的用户注册/登录案例,展示这条路径的每个脚印。
一、六边形架构:整洁的起点
1.1 什么是六边形架构?
六边形架构(又称端口与适配器模式)由 Alistair Cockburn 提出,其核心思想是将业务逻辑置于中心,通过端口与外界通信,而适配器则负责将外部输入转换为领域可理解的请求,或将领域输出转换为外部格式。
领域层(Domain):系统的核心,包含业务实体与规则,零外部依赖。
端口(Ports):定义应用与外界交互的接口,如
UserRepository、EmailSender。
