设计还是实施?

RN.*_*RN. 2 architecture web-services

您如何区分设计决策与实施决策?

举一个具体的例子:我们正在开发一些将我们的应用程序与另一个应用程序集成的Web服务.我问的问题之一是 - 我们是否希望通过异步或同步在两个应用程序之间进行集成?

有人建议它是一个实现问题而不是设计.

我的请求是 - 如果我改变了一些东西而你不需要知道我改变了什么或为什么改变它 - 它的实施决定.

但是,如果我改变某些东西 - 这会改变你如何使用我的服务 - 这是一个设计决定.

如果我将我的实现改为同步的异步 - 我它会影响服务的消耗方式 - 因此 - 它是一个设计决策而不是实现

例如,无论我选择XML用于存储还是数据库 - 只要它不影响其他应用程序 - 它仍然是一种实现选择而不是设计

你同意吗?不同意?想法?

Sim*_*mon 5

我想你已经知道答案了,说实话,对于大多数实际来说,这是一个不必要的语义区别.话虽如此,它的设计是否会影响最终用户/消费者,如果没有,则是实施.在您的示例中,它将对任何使用您的服务的客户端的设计产生深远的影响,因此它肯定是设计的.

而且没有顺序.在实施开始之前,您无法实际完成设计,并且盲目地遵循具有高且不必要的实施成本的设计是非常危险的.考虑到您对成本的了解,您可以选择重新设计实施的一半.