我已经看到几个围绕 SO 主题的问题,但没有一个真正让我满意的答案。
我试图用语言表达我的感受,但我总是无法清楚地表达它们以说服我周围的人。可能是我错了。可能是我的理解不够深入,无法找到合适的论据。
您如何对比根据“面向服务的方法”而不是“传统的”API 方法开发应用程序?
让我们在这里完全清楚,我所说的服务并不一定是指 Web 服务。
以下是我看到的一些差异。如果我错了,请纠正我:
- 根据给定的明确协议,服务是您可以与之交谈的“生物”。服务有自己的运行时,而库使用应用程序的运行时。你可以把那个“活的东西”移动到任何你想要的地方
- 库允许基于代码的集成,而服务传统上使用基于消息的集成(但是,没有什么能真正阻止您编写基于交换消息的库)
- 服务是可发现的
- 合同是明确的并在运行代码“外部”表达
- 服务是自治的(但在这里,您可以编写自治 API,不是吗?)
- 界限是明确的
我在这里想念什么?还有什么真正将服务与高级 API 区分开来?