2013-01-15 41 views
0

我有一个web服务,通​​过异步方法触发服务器上的一些长操作。每个操作有3种方法:异步操作的命名约定

  • 其中一个开始操作并立即返回一个票号。
  • 其中之一被客户端连续调用;它收到票号并返回一个布尔值,表示操作是否完成。
  • 最后一个只有在操作完成后才会调用;它会收到票号并返回操作结果。

我不知道如何调用这个方法。我想调用的方法是这样的:

  • OperationName_Start
  • OperationName_IsReady
  • OperationName_GetResult

,但我怕我可以重新发明轮子。这种使用模式是否有任何众所周知的命名约定?

+0

那你是怎么和@Doug一起去的? –

回答

1

它是一种耻辱,你无法得到一个答案在第一时间周围。我强烈建议阅读SOA Principles Link以更好地理解Web服务命名的原则和重要性。

这是关键,从消费者和最大化消费性和再使用性的角度记得名。记住当你调用一个服务时,你正在对一个对象执行和操作,也就是有用的,你应该有一个动词和一个名词。还要记住,Web服务与面向对象语言中的函数非常相似,因此它有助于思考Web服务的功能代码是什么样子。

这有助于考虑类似的场景:

  • 如果我改变了Web服务被调用系统会发生什么?
  • 是否有另一种情况可以调用此服务?
  • 该服务应该有多精细?这些决策对性能的影响是什么?

不知道您想要实现的业务环境,我们将假设提交和电子支付的基本示例。

在这种情况下,你可能有:

  • ElectronicPayment_SendPayment(注:使用“发送”保持业务的背景下,没有技术背景;发送可以通过电子邮件,邮寄,web服务。从你'开始'的例子,你是从什么开始的;这里,服务的意图是显而易见的)
  • ElectronicPayment_CheckStatus(注意:这是从消费者的角度来看,很可能检查处理状态是一个通用服务,可能会分开成沿012线的东西
  • ElectronicPayment_RetrieveReciept(注意:具有语义链接的请求/响应模式。保持收款和付款的业务环境)

命名是高度上下文的,上述不完美,但希望它可以帮助自己和其他谁偶然发现这一点。

0

由于缺乏答案,我认为在这个问题上显然没有广泛使用的标准,所以可以推出自己的标准。

我选择了坚持:

  • OperationName_Start
  • OperationName_IsReady
  • OperationName_GetResult