3

一旦我建立了一个项目,我需要设置代码来描述返回给客户的操作结果。

所以代码是这样的:

100 'succeed 
200 'failed
201 'failed because the require object doesn't exist
...

或像这些:

43100 'shop buy item succeed
43201 'shop buy item failed because user doesn't have enough money
43202 'shop buy item failed because the item sold out.
...

但是在实际开发中,返回码的事情并不顺利,队友必须用字典查一个code的含义,没有人记得它们。

所以我想为什么我们必须使用数字作为返回码?只是因为根据我们的经验,许多协议都返回数字代码,例如最著名的 http 协议 404,403,500 等。

所以我的问题是他们为什么使用数字?字符串不是更适合人类阅读吗?像 'FileNotFound' 替换 404. 或 'success.cart.order' 这意味着在模块 'cart' 子函数 'order' 中操作是成功的。

4

3 回答 3

1

人类可读性只是一方面,在大多数情况下您还需要处理操作结果。执行字符串比较容易出错并且不必要地昂贵。最近,有人问到如何使用常量值而不是文字,这是实现可读性的方法:通过对所有返回码使用命名良好的常量。我喜欢使用Enums 来完成这项任务,但这在所有编程语言中都是不可能的。

于 2012-09-12T10:09:03.470 回答
1

因为很多时候,收到状态码的东西是一段代码。

必须解析字符串消息(可能因语言设置而异,或者因为开发人员选择在以后的版本中改进措辞)可能非常复杂。

在许多情况下,您可以返回一个数字代码一条消息——一个是供代码使用的,另一个是供人类使用的。

于 2012-09-12T10:09:47.603 回答
1

好吧,我不知道确切的答案。然而,对于软件来说,数字有一些优势:

  • 整数处理比字符串处理更快,并且数字需要更少的消息存储(无论是在内存中还是通过网络)。
  • 几十年来,数字允许您使用switch/跳转表(处理速度也更快)。
  • 错别字与数字不那么微妙。您不太可能犯错误,例如使用FileNotfound而不是FileNotFound.
  • 在内存中,字符串往往以许多不同的方式存储。我猜数字也减少了互操作性问题。
于 2012-09-12T10:12:53.747 回答