知识卡片

不必要的耦合,最终会让系统丧失被单独测试的能力

专业/工作

内容

“混乱大都市”的模块之间是双向耦合的——组件A会伸手进组件B内部完成任务,组件B又反过来硬编码调用组件A,导致系统没有清晰的分层,也没有真正独立的底层。这种紧耦合的直接后果不只是”改一处影响多处”,更致命的是:想启动系统的最小骨架都必须把所有组件一起拉起来,单个组件根本无法被孤立测试,组件级的集成测试也无从谈起。这提示一个衡量架构健康度的实用指标:不是问”这个模块耦合多不多”,而是直接问”我能不能把这个模块单独拎出来测试,而不用启动其他一切”——答不出来,说明耦合已经越界了。

参考来源

《架构之美》第2章《两个系统的故事:现代软件神话》