异步操作的命名约定

时间:2013-01-15 22:39:37

标签: web-services naming-conventions

我有一个Web服务,它通过异步方法触发服务器上的一些长时间操作。每个操作有3种方法:

  • 其中一人开始操作并立即返回一个票号。
  • 其中一个是从客户端连续打来的;它接收票号并返回一个布尔值,说明操作是否完成。
  • 只有在操作完成后才调用它们中的最后一个;它接收票号并返回操作结果。

我不确定如何调用此方法。我想调用这样的方法:

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

2 个答案:

答案 0 :(得分:1)

很遗憾你第一次得不到答案。我强烈建议您阅读此SOA Principles Link以更好地了解网络服务命名的原则和重要性。

记住从消费者的角度命名最大限度地提高可消费性和可重用性是关键。记住当你调用一个服务时,你正在对一个对象进行表演和操作,即你应该有一个动词和一个名词。还要记住,Web服务与面向对象语言中的函数非常相似,因此有助于考虑Web服务的功能代码是什么样的。

考虑以下情况会很有帮助:

  • 如果我更改了Web服务正在调用的系统会发生什么?
  • 是否有其他可以调用此服务的方案?
  • 该服务的粒度如何?这些决定对绩效产生了什么影响?

在不了解您想要实现的业务背景的情况下,我们将假设提交和电子支付的基本示例。

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

  • ElectronicPayment_SendPayment (注意:使用'发送'保留业务环境,而不是技术背景;发送可以通过电子邮件,帖子,网络服务。从你的'开始'示例,你是什么开始;在这里,服务的意图很明显)
  • ElectronicPayment_CheckStatus (注意:这是从消费者的角度来看。检查处理状态可能是一般服务,可能会分成CheckProcessingStatus (TicketNumber tN)
  • ElectronicPayment_RetrieveReciept (注:具有语义链接的请求/响应模式。维护收据和付款的业务背景)

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

答案 1 :(得分:0)

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

我选择坚持:

  • OperationName_Start
  • OperationName_IsReady
  • OperationName_GetResult