2012-09-12 77 views
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. 
... 

但在實際開發中,返回代碼的事情並不順利,隊友必須用字典查代碼的意義是什麼,沒有人記得它們中的任何一個。

所以我想爲什麼我們必須使用數字作爲返回碼?只是因爲在我們的經驗,許多協議返回數字代碼,例如最有名的http協議404403500,等等。

所以我的問題是,爲什麼他們使用多少?是不是字符串是人類閱讀更好? 如'FileNotFound'替換404.或'success.cart.order'這意味着在模塊'cart'中的sub函數'order'操作成功。

回答

1

那麼,我不知道明確的答案。對於軟件,然而,數字有幾個優點:

  • 積分數處理比字符串處理更快和數字需要消息(無論是在存儲器或通過有線)更少的存儲。
  • 數字已允許您使用switch /跳轉表數十年(也可以更快地處理)。
  • 錯別字不太具有數字的優點。你不太可能犯錯像使用FileNotfound而不是FileNotFound
  • 在內存字符串往往存儲在很多不同的方式。我猜數字也會降低互操作性問題。
1

人的可讀性只是一個方面,在大多數情況下您還需要進程運算結果。執行字符串比較很容易出錯,而且不必要地花費很多。最近,有人問到關於using constant values instead of literals,這就是你如何實現可讀性:通過使用所有返回代碼的命名常量。我喜歡使用Enum來完成這項任務,但這在所有的編程語言中都是不可能的。

+0

使用什麼代碼可能真的取決於您使用的語言,在我們的例子中,我們使用python和actionscript,處理文本代碼不是一個大問題,我認爲在大多數現代主流語言中,它會好的。 – Max

+0

枚舉的優點是可以將常量和(可讀的)文本捆綁到一個地方。 –

1

由於頻繁,事接收到狀態代碼是另一個一段代碼。

不必解析字符串消息(也可能基於語言設置,或者因爲開發者選擇以提高在以後的版本中的措詞)可能是相當複雜的。

而且在很多情況下,您可以返回一個數字代碼消息 - 一個用於代碼消耗,另一個用於人類。

+0

我們只是做了你在最後一段中講的內容,但不幸的是你仍然需要字典,因爲這個過程是基於代碼的。 – Max

相關問題