为什么他们总是使用数字作为返回码?

时间:2012-09-12 09:48:53

标签: protocols

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

因此代码如下:

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.
...

但是在实际开发中,返回代码的东西并不顺利,队友必须使用字典来查找代码的含义。没有人记住它们中的任何一个。

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

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

3 个答案:

答案 0 :(得分:1)

人类可读性只是一个方面,在大多数情况下,您还需要处理操作结果。执行字符串比较容易出错且不必要地付出代价。最近,有人询问using constant values instead of literals,这就是你如何实现可读性:通过为所有返回代码使用命名良好的常量。我喜欢使用Enum来完成这项任务,但这在所有编程语言中都是不可能的。

答案 1 :(得分:1)

因为经常收到状态代码的是另一个代码。

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

在许多情况下,你可以返回一个数字代码一条消息 - 一条用于代码消费,另一条用于人类。

答案 2 :(得分:1)

好吧,我不知道明确的答案。但是,对于软件,数字有一些优点:

  • 整数处理比字符串处理更快,数字需要更少的存储空间(包括内存或线路)。
  • 数字允许您使用switch /跳转表数十年(处理速度也更快)。
  • 错字与数字相关性较小。您不太可能犯错误,例如使用FileNotfound代替FileNotFound
  • 在内存字符串中往往以很多不同的方式存储。我猜数字也会减少互操作性问题。