auの日記

プログラミング初心者の日記。(auはハンドルネームです)

マジックナンバーについて調べてみた

auです。

インターン先でプログラミングをしていると、マジックナンバーを使うなという指示が結構な数飛んできました。ごめんなさい。

マジックナンバーって何?魔法の番号ってなんかかっこいいなーと思ったので調べてみました。

マジックナンバーとは

マジックナンバーとは、ソースコードに直接記述された数値で、その意味、意図が本人以外に分からないものです。

e-words.jp

def price(item):
    return item * 1.08

こんな感じのコードがある時の、1.08マジックナンバーです。計算しているんだなぁということは何となく分かりますが、どのような意図で計算しているのかは、分かる人にしか分かりません。

このコードを完成させた2年後に修正しなくてはならない時が来たとして、本人がこのコードをみても「何の1.08だっけ・・・」となる可能性もあります。

そこで、マジックナンバーはこのように置き換えます。

TAX_RATE = 1.08

def price(item):
    return item * TAX_RATE

これなら、誰がみても「消費税率だな」というのが分かります。

プログラムにいくつものマジックナンバーを使うと思いますが、誰がみてもその数字の意味を理解できるように設計しましょう。