Mistake #02 : Magic Numbers

魔法の数字
(マジックナンバー)

`if (user_type == 1)` ... 1って何?管理者?一般?
`price = price * 1.10` ... 1.10って何?消費税?
コードの中に直接書かれた「謎の数字」。
それは、書いた本人には魔法のように機能しますが、後を引き継ぐ者には呪いとなります。

🧙‍♂️ 黒魔術診断
  • コードのあちこちに「1.08」「1.10」が散らばっている
  • ステータス管理が `status = 9` のように数字で行われている
  • 「1が男、2が女」というルールが、ドキュメントにしか書いてない
  • 上限値 `limit = 100` がなぜ100なのか、誰も知らない
⚠️ 警告:あなたのコードは「時限爆弾」です。
消費税率が変わった日、あなたのシステムは広範囲で計算ミスを起こします。

01. 名前をつける、ただそれだけ

🎩
const TAX_RATE = 0.10;

解決策は驚くほど簡単です。定数(Constant)に名前をつけるだけです。
`1.10` と書く代わりに `TAX_RATE` と書く。
`1` と書く代わりに `USER_TYPE_ADMIN` と書く。
たったこれだけで、コードは「暗号」から「文章」に変わります。
変更が必要な時も、定数の定義を1箇所変えるだけで済みます。

数字に語らせるな。
名前に語らせろ。

02. ドメイン知識のコード化

マジックナンバーは、ビジネスルール(ドメイン知識)がコードに埋め込まれている証拠です。
「送料が500円」というのは、宇宙の真理ではなく、ビジネス上の決定です。
これらをコードの奥深くにハードコードせず、設定ファイルやDB、
あるいは明確な定数クラスとして切り出してください。

03. Enum(列挙型)の活用

ステータス管理には、単なる定数よりも `Enum` を使いましょう。
`Status.PENDING`、`Status.APPROVED` のように、
とりうる値を制限することで、ありえない数字(`status = 999`)が入るバグをコンパイル段階で防げます。
型安全性は、最強のドキュメントです。

執筆:リード・プログラマー

コードの清掃人。
「DRY(Don't Repeat Yourself)」原則を徹底し、変更に強いしなやかなコードベースを維持する。