知识卡片
消费者驱动的契约
内容
消费者驱动的契约是一种原子级的集成适应度函数:由服务的消费者各自写一组测试来表达自己对提供者的期望,提供者承诺让这些测试一直通过,之后提供者可以在不破坏任何消费者契约的前提下自由演进内部实现。这种机制被称为工程安全网——只要能自动化验证契约一致性,就不该靠人工沟通和记忆去维护跨服务的集成稳定性。但它的前提是团队具备足够的工程成熟度,构建长期不稳定的团队用它也没有意义。
参考来源
- 位置:《演进式架构(原书第2版)》第3章《实现增量变更》3.1.3节「消费者驱动的契约」(源文件:_epub-src/EPUB/xhtml/chapter07.xhtml)
- 结论依据:原文明确消费者驱动契约是消费者编写测试、提供者承诺保持通过的机制,称为工程安全网,并指出该实践需要团队工程成熟度,直接支持卡片论点。
- 原始内容:"消费者驱动的契约是原子级的集成架构适应度函数……信息的消费者构建一组封装了对提供者需求的测试,提供给提供者,提供者承诺会保证这些测试一直通过……使用此类适应度函数也被称为工程安全网……如果团队使用了消费者驱动契约,但同时他们的构建偶尔会挂掉好几天,那么就无法保证他们的集成点还是有效的"