Skip to content

代码优先与API优先

下面的图表展示了代码优先开发与API优先开发之间的区别。我们为什么要考虑API优先设计?

  • 微服务增加了系统复杂性,我们有多个微服务来处理系统不同的功能。虽然这种架构便于解耦和职责分离,但我们需要处理服务之间的各种通信。

在编写代码之前,考虑系统的复杂性并仔细定义服务的边界是最佳实践。

  • 不同的职能团队需要讲同一种语言,而专门的职能团队只需对自己的组件和服务负责。建议组织通过API设计讲同一种语言。

我们可以通过模拟请求和响应来验证API设计,然后再编写代码。

  • API优先设计提高了软件质量和开发者生产力。由于在项目开始时我们已经理清了大部分的不确定性,因此整体开发过程更加顺畅,软件质量得到了极大提高。

开发者们也对这个过程更加满意,因为他们可以专注于功能开发,而不是处理突发的变更。

在项目生命周期结束时出现意外的可能性降低。

由于采用API优先设计,测试可以在代码开发的同时进行。在某种程度上,我们在使用API优先开发时也有测试驱动设计(TDD)。