0

自己記述的で 1 か所でしか使用されない文字列をハード コーディングすることは悪い習慣と見なされますか? ハードコードされた文字列を常に定数変数に置き換えますか? 数字はどうですか?それらは、変数を作成しないほど十分に自己記述的ですか? あなたの意見でマジックナンバーが適切である例を挙げていただけますか?

4

2 に答える 2

3

「1 か所でしか使用されない」ハード コーディング文字列の問題は、次のとおりです。文字列を変更する必要がある場合は、コードを探しに行かなければなりません。プログラムのバージョン番号を取得します。「情報」メニューから呼び出されるダイアログボックスでのみ使用できますが、そこにハードコードすると、バージョン番号を更新するたびに「どこか」という文字列を見つける必要があります。すべての定数文字列を 1 か所に配置すると、作業がはるかに簡単になります。

数値に関しては、時折の定数を固定できる場合があります(たとえば、科学方程式など)。通常、これは整数の場合にのみ当てはまります (ハードコードされた に誰もひるむことはありません2) circumference = 2 * pi * radius;。他の定数も 1 か所で定義したほうがよいでしょう - デバッグと保守が容易になります。piたとえば、一度だけ定義することを好みます (私の好み: pi = 2 * asin(1.0);)。e( )も同様e = exp(1.0);です。

6 か月後にあなたのコードを見たり使用したりする人のことを考えてみてください。あなたは彼らの生活を楽にしていますか、それとも難しくしていますか? 彼らが別のプラットフォームに移動した場合はどうなりますか? このような質問は、正しい選択をするのに役立ちます。

于 2013-08-02T01:55:52.607 に答える
0

どの言語で書きたいかはわかりません。それぞれに独自の推奨ソリューションがあるためenumです。

C++11 の厳密に型指定された列挙型はさらに優れています。

于 2013-08-02T01:49:07.533 に答える