マジックナンバー単語

マジックナンバー

マジックナンバーとは

  1. プログラム中に突如出現するマジカルミラクルでドリームファンタジーな数字。本稿で解説。
  2. プロ野球において、上位チームが下位チームに対して「上位でシーズンを終了することが確定するまであと何勝しなければいけないか」を表す数字。日本では単に「マジック」と呼ぶことが多い。
  3. 2003年元日発売、KICK THE CAN CREWメジャー2ndアルバム
  4. 荒井チェリー漫画2004年COMICぎゅっと!』(平和出版)に連載、単行本は未刊行。
  5. 2009年に発売された坂本真綾シングルテレビアニメこばと。」OP

概要

コード中になんら説明く「*2」とか「+100」とかいった形で割り込んでくる数字をマジックナンバーという。場合によっては文字列などにも使う。マジックナンバーで値を決め打ちしてコーディングすることをハードコーディングと呼ぶ。

マジックナンバーは、書いた本人には意図が分かっていても読む側にとっては解読に一手間かかる。後から自分で読み返して何の数字だか思い出せないのもよくある話。また、その数字を変更する必要が生じた場合、その数字が複数箇所で使われていると、それらすべてを変更しなければならない。これは手間が掛かるだけではなく、変更し忘れによってバグを埋め込んでしまう可性すら有る。

これらの理由から、一般的にマジックナンバーは使うべきではない。一見してどんなに自明の内容であっても、必ず一端定数に代入するのがプログラミングマナーである。もちろん定数名もちゃんと意味のある内容でなくてはならない。可読性のみならず、バグを出さないという面でも定数代入が推奨される。ちょっとした違いであるが、小さな気遣いが素人と玄人の分かれというやつなのだ。

具体例

例えば、以下に示した消費税を計算する関数consumption_tax擬似コードについて考えてみよう。

function consumption_tax(price) {
  return price * 0.05;
}

この場合、「0.05」がマジックナンバーであり、消費税税率が変わってしまった場合(そして残念ながらそれはきっと実現してしまうだろう)に簡単に対応できなくなってしまう。このコード定数consumption_tax_rateを用いることによって、次のように書き換えられる。

const consumption_tax_rate = 0.05
function consumption_tax(price) {
  return price * consumption_tax_rate;
}

このようにすれば、consumption_tax関数では消費税率を用いて消費税を計算しているということがより明確に示される。また、消費税率が変わってしまった場合には、consumption_tax_rateの値を変えるだけで良い。

関連項目

【スポンサーリンク】

スマホ版URL:
https://dic.nicovideo.jp/t/a/%E3%83%9E%E3%82%B8%E3%83%83%E3%82%AF%E3%83%8A%E3%83%B3%E3%83%90%E3%83%BC

この記事の掲示板に最近描かれたお絵カキコ

お絵カキコがありません

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

マジックナンバー

4 ななしのよっしん
2011/10/30(日) 12:48:00 ID: 82nVbizuNE
とりあえず具体例追加した。追加した後で>>3をよく読んだらバッファ長の話があって、そっちの方が(プログラムへの影や利点が分かりやすいので)例として適切な気もしたけれど面倒なので、気になるならか勝手に変更しといてほしい。
5 ななしのよっしん
2012/03/22(木) 07:39:07 ID: 8OZumMh9gd
#define CHIHAYA 72
#define 宇宙人生全ての答え 42
#define hyde 154
6 ななしのよっしん
2013/10/13(日) 17:10:01 ID: bSYx3N+AdH
マジックナンバー消費税率0.05が変更される時が来るわけだが、はてさて……
7 ななしのよっしん
2014/03/22(土) 20:28:49 ID: Cm9Z8jK8eC
人間が短期的に記憶できるのは7個前後(個人差により±2)っていうのはマジカルナンバーだったか
8 ななしのよっしん
2014/09/21(日) 15:41:42 ID: E9oiozAvHC
原子核が安定化する陽子の数、中性子の数もマジックナンバー
電子軌が安定化する電子数もマジックナンバー
この辺の量子力学的な記述も欲しい。
9 ななしのよっしん
2015/11/12(木) 14:02:55 ID: cjMbthshPw
消費税更新がされてないのな
10 ななしのよっしん
2015/11/19(木) 02:52:57 ID: qvSb34wjvv
消費税率は設定マステーブルの値を更新してくれ。

変更した場合のテスト?してないよ。。。そんなの。。。
11 ななしのよっしん
2016/10/24(月) 15:03:09 ID: ySxVStTPDe
マジックはオマジナイとか呪文とか訳すといい
魔法じゃなくて「他人には意味がわからない」と皮るときの用法

ちなみに消費税アップ20年くらい前に実例があるから
まともな業者ならその時に税率再引上を組み込んでたはず…だけど
あまりに間がきすぎた

そして軽減税率の魔物がおまいらを襲う
12 ななしのよっしん
2017/09/30(土) 19:04:17 ID: Nv/azgk88i
マジックナンバー7±2
実際は4±1らしい
13 ななしのよっしん
2019/03/17(日) 23:10:05 ID: 2odg4Ev2cy
10%来ますね…