【はーどこーでぃんぐ】
ハードコーディング とは?
💡 値をコードに「直接書き込む」行為、柔軟性がなく変更に弱い
📌 このページのポイント
ハードコーディングって何がダメなの?
じゃあどうすればいいの?
定数はハードコーディングと違うの?
定数(const MAX_RETRY = 3)は「意味があって変わらない値」に名前をつけたもので問題ない。ハードコーディングが問題なのは「環境によって変わるべき値」や「機密情報」をコードに直書きすること。同じ数字でも文脈次第で判断が変わる。
.envファイルって何で.gitignoreに入れるの?
マジックナンバーもハードコーディングの一種なの?
その通り。if (status === 3) の「3」が何を意味するか、書いた本人しかわからない。const STATUS_APPROVED = 3 と名前を付ければ意図が明確になる。ハードコーディングの問題は「変更に弱い」だけじゃなく「読んで理解できない」ことも大きいんだ。コードは書く時間の何倍も読まれるものだから、読みやすさへの投資は必ず報われるよ。
まとめ:ざっくりこれだけ覚えればOK!
ハードコーディングって出てきたら「値をソースコードに直接書き込むこと、変更しにくくセキュリティリスクもある悪習慣」と思えばOK!
📖 おまけ:英語の意味
「Hardcoding(Hard-coding)」 = 固定配線のようにコードに埋め込む
💬 かつての電子機器でスイッチやジャンパ線で設定を「固定(hard-wired)」したことから。ソフトウェアで変更不能なほど固定された値という意味