web-services - 设计还是实现?

标签 web-services architecture

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

举个具体的例子: 我们正在开发一些网络服务,将我们的应用程序与另一个集成 我问的问题之一是——我们是否希望两个应用程序之间的集成通过 异步还是同步?

有人建议这是一个实现问题而不是设计。

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

但是,如果我改变了什么——这改变了你使用我的服务的方式——这是一个设计决定。

如果我将我的实现从同步更改为异步 - 我猜测它将影响服务的使用方式 - 因此 - 这是一个设计决策而不是实现

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

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

最佳答案

我想您已经知道答案了,老实说,对于大多数实际用途而言,这是一种不必要的语义区分。话虽如此,如果它影响最终用户/消费者,那就是设计,如果不影响,那就是实现。在您的示例中,它将对使用您的服务的任何客户端的设计产生深远影响,因此它当然是设计。

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

关于web-services - 设计还是实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1888709/

相关文章:

java - 在 webservice 中运行一个线程

java - 如何在HttpRequest中获取源文件以上传文件

java - 通过第二个 Web 服务接收 Java http 响应正文

C# MVC 与 ASP.NET MVC 的区别?

iOS:应用程序中的模型架构

c# - 数据层的异步是否要求整个调用栈也是异步的?

c# - 是否需要设置 NetworkCredential 域?

java - 当服务器出现时间延迟时,如何避免 Android 中的 ANR 响应?

ios - 避免对核心数据(或类似的持久性框架)的全局依赖

c# - EF N 层架构