核心问题
系统结构为什么会长得像组织结构?
康威定律说:设计系统的组织,其设计会反映组织的沟通结构。
如果前端、后端、数据、运营互相隔离,API 就容易变成互相甩锅的边界。如果 billing 团队和 course 团队没有清晰协作,支付后的课程访问权就会散在多个地方。
工程映射
- 团队边界会影响服务边界。
- 沟通成本会影响 API 形状。
- 组织冲突会沉积成架构冲突。
- 跨团队依赖会变成系统耦合。
例如课程平台里,如果 billing 负责支付,course-access 负责访问权,双方必须通过明确事件或命令协作:
billing -> purchase.created -> course-access.grantAccessFromPurchase
而不是 billing 直接写访问权表。
小结
你不能长期构建一个和组织沟通结构相反的软件系统。
架构设计不能只画技术图,也要看谁和谁沟通、谁拥有上下文、谁承担事故。