最近のプロジェクトでは、バイトからキロバイト kibibyteに変換する必要がありました。コードは簡単でした:
var kBval = byteVal / 1024;
それを書いた後、私は機能の残りを動かして、先へ進みました。
しかし、後になって、コードにマジックナンバーを埋め込んだのではないかと思い始めました。私の一部は、数が固定された定数であり、容易に理解されるべきだから、それは大丈夫だと言います。しかし、私の別の部分は、のような定義済み定数にラップされている場合、それは非常に明確だったと思いBYTES_PER_KBYTE
ます。
それで、よく知られた定数である数字は本当に魔法のようなものですか?
関連する質問:
数字はいつ魔法の数字ですか?そして、コード内のすべての数字は「マジックナンバー」と見なされますか?-似ていますが、私が尋ねているものよりもはるかに広範な質問です。私の質問は、よく知られている定数に焦点を当てていますが、これらの質問では取り上げていません。
マジックナンバーの削除:「いいえ」と言うタイミングはいつですか?も関連していますが、定数がマジックナンバーであるかどうかではなく、リファクタリングに焦点を当てています。
1024
そうでない場合は、あなたの開発チームは、それはそれは「キロバイト」または「kibibytes」で天気をについて議論時間ですすべてを過ごすことになりますので、。
#define
KIBI
、1024はMEBI
1024 * 1024 であると考えるかもしれません…
ZERO=0, ONE=1, TWO=2
と、プログラムは他の言語に移植されている(彼らの言語を切り替えるときやプログラマが動作を変更しないでください)あなたもそこに表示されます、あなたがする必要が祈る誰かがそれを変更しないことをONE=2
...
FOUR_HUNDRED_FOUR = 404
。私は、彼らが代わりにリテラルの定数文字列を使用する方法について好戦的だった別のプロジェクトに取り組んで、その彼らが持っていた数十人、ように見えたコードの行DATABASE = "database"