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 プロトコル 404、403、500 などのように、多くのプロトコルがデジタル コードを返すためです。

私の質問は、なぜ彼らが数値を使用するのかということです.文字列は人間の読み取りに適しているのではありませんか? 'FileNotFound' のように 404 を置き換えます。または 'success.cart.order' のように、モジュール 'cart' サブ関数 'order' で操作が成功したことを意味します。

4

3 に答える 3

1

人間の可読性は 1 つの側面にすぎません。ほとんどの場合、操作の結果も処理する必要があります。文字列比較を実行すると、エラーが発生しやすく、不必要にコストがかかります。最近、誰かがリテラルの代わりに定数値を使用することについて尋ねましたが、これが可読性を実現する方法です: すべての戻りコードに適切な名前の定数を使用することによって。私Enumはこのタスクに s を使用するのが好きですが、これはすべてのプログラミング言語で可能というわけではありません。

于 2012-09-12T10:09:03.470 に答える
1

多くの場合、ステータス コードを受け取るのはのコードです。

文字列メッセージを解析する必要がある場合 (言語設定に基づいて、または開発者が後のリリースで言葉遣いを改善することを選択したために異なる場合があります) は、非常に複雑になる場合があります。

また、多くの場合、数値コードメッセージを返すことができます。1 つはコードが消費するためのもので、もう 1 つは人間のためのものです。

于 2012-09-12T10:09:47.603 に答える
1

うーん、決定的な答えはわかりません。ただし、ソフトウェアの場合、数値にはいくつかの利点があります。

  • 整数処理は文字列処理よりも高速であり、数値はメッセージ用に必要なストレージが少なくて済みます (メモリ内またはワイヤ経由の両方)。
  • 数値により、switch/ jump-tables を何十年も使用することができました (処理も高速化されています)。
  • タイプミスは、数字ではそれほど微妙ではありません。FileNotfoundの代わりに を使用するなどの間違いを犯す可能性は低くなりFileNotFoundます。
  • メモリ内文字列は、さまざまな方法で格納される傾向があります。数値も相互運用性の問題を軽減すると思います。
于 2012-09-12T10:12:53.747 に答える