基本情報処理 ハードコードすなって、何をしちゃだめなの?
djangoに限らずですが、たまにこんな文言を見かけませんか?
「ハードコーディングすると、セキュリティリスクが高まるため、見られてはいけない情報は、環境変数とかに書いておくように」
ですが、これ、ハードコーディングってそもそもなんなの?
とりあえず、コードに書いちゃダメっていうのはわかるんですが。
ということで、ハードコーディングの意味調べてみました。
こんな感じです。
ハードコーディング(英:hard coding)とは
別のところに分けておいた方が良いであろう処理や値をソースコード(人間語で書いたプログラムの元ネタ)の中に直接埋め込むこと
です。
まぁ、文章のまんまですね。
ただ、機密うんぬんの話だけじゃなくて、コードとしてのメンテナンス性に優れているかどうかもハードコーディングを推奨されない理由として説明されています。
例えば、買い物をする関数があったとして、消費税率を計算するときにいきなり、コード上に「0.1」と登場させたら、あとあとメンテナンスする際に、「0.1」の意味がわからなくて混乱する場合がありますよね。
それを避けるために、まずはconsume_taxとか適当な変数に一度「0.1」をいれてから、計算すると、わかりやすいといった例が挙げられます。