自己記述的で 1 か所でしか使用されない文字列をハード コーディングすることは悪い習慣と見なされますか? ハードコードされた文字列を常に定数変数に置き換えますか? 数字はどうですか?それらは、変数を作成しないほど十分に自己記述的ですか? あなたの意見でマジックナンバーが適切である例を挙げていただけますか?
2 に答える
「1 か所でしか使用されない」ハード コーディング文字列の問題は、次のとおりです。文字列を変更する必要がある場合は、コードを探しに行かなければなりません。プログラムのバージョン番号を取得します。「情報」メニューから呼び出されるダイアログボックスでのみ使用できますが、そこにハードコードすると、バージョン番号を更新するたびに「どこか」という文字列を見つける必要があります。すべての定数文字列を 1 か所に配置すると、作業がはるかに簡単になります。
数値に関しては、時折の定数を固定できる場合があります(たとえば、科学方程式など)。通常、これは整数の場合にのみ当てはまります (ハードコードされた に誰もひるむことはありません2
) circumference = 2 * pi * radius;
。他の定数も 1 か所で定義したほうがよいでしょう - デバッグと保守が容易になります。pi
たとえば、一度だけ定義することを好みます (私の好み: pi = 2 * asin(1.0);
)。e
( )も同様e = exp(1.0);
です。
6 か月後にあなたのコードを見たり使用したりする人のことを考えてみてください。あなたは彼らの生活を楽にしていますか、それとも難しくしていますか? 彼らが別のプラットフォームに移動した場合はどうなりますか? このような質問は、正しい選択をするのに役立ちます。
どの言語で書きたいかはわかりません。それぞれに独自の推奨ソリューションがあるためenum
です。
C++11 の厳密に型指定された列挙型はさらに優れています。