ハンガリアン記法
変数名とかの付け方だよ
変数名の最初や最後に目印をつけるよ
「yenHensuA」や「numHensuA」みたいな書き方だよ
簡単に書くよ
ハンガリアン記法(読:ハンガリアンキホウ 英:Hungarian notation)とは
「変数名
(変数の名前)の最初や最後に目印(接頭辞・接尾辞)を付けることで、変数
(プログラミングにおける値を入れておく箱)の意味をつかみやすくして間違いを減らそう!」な表記方法のこと
です。
詳しく書くよ
たまに変数名の付け方の話で出てきます。
例えば
yenHensuA
や
numHensuA
のように
名前の最初か最後に決まった目印(接頭辞・接尾辞)を付けることで意味をつかみやすくする表記法
が「ハンガリアン記法」です。
どうでもいい豆知識ですが、このやり方を考えた人がハンガリー出身だから「ハンガリアン記法」と呼ばれているらしいです。
なかなか大雑把な名付け方ですね。
変数には分かりやすい名前を付けるのが基本です。
ちなみに変数は「プログラミング言語における値を入れておく箱」ね。
それでは、どうすれば分かりやすい名前になるでしょうか?
先人は、いろいろ考えました。
そんな、いろいろ考えて生まれた中のひとつがハンガリアン記法です。
ハンガリアン記法は「おかしい部分が おかしいって分かると いいよね!」なコンセプトで考えられています。
例えば、そうですね。
お客さまに頼まれて、ピヨ太君が経理プログラムを作ったとしましょう。
お客さまの会社は日本とアメリカで事業を展開しています。
それに伴い、扱うお金は円とドルです。
最初、ピヨ太君は以下のような名前の変数を作りました。
・売上_本店
・売上_支部1
・売上_支部2
・経費_本店
・経費_支部1
・経費_支部2
ところがどっこい、扱うお金は円とドルです。
作っている最中で「あれ?これって円?ドル?為替レートって どれに掛ければいいの?」と混乱してしまいました。
そこでピヨ太君は変数名を以下のように変更しました。
・円_売上_本店
・ドル_売上_支部1
・ドル_売上_支部2
・円_経費_本店
・ドル_経費_支部1
・ドル_経費_支部2
変数名の最初に「円_」「ドル_」の目印を付けたのです。
このように目印を付けておけば、円とドルが区別できます。
「あれ?これって円?ドル?」と迷うことも なくなるでしょう。
このようにしておくと間違いも見つけやすくなります。
例えば、そうですね。
ピヨ太君が以下の処理を書きました。
売上_全体 = 売上_本店 + 売上_支部1 + 売上_支部2
特に おかしいところは なさそうですよね?
それでは、以下の処理は どうでしょう。
円_売上_全体 = 円_売上_本店 + ドル_売上_支部1 + ドル_売上_支部2
ドルと円が混在しています。
きっと、これは間違いでしょう。
ドルの売上に為替レートを掛けて円に換算する必要がありそうです。
ここで、2つの処理を見比べてください。
売上_全体 = 売上_本店 + 売上_支部1 + 売上_支部2
も
円_売上_全体 = 円_売上_本店 + ドル_売上_支部1 + ドル_売上_支部2
も、やっている処理は同じです。
違いは変数名の付け方だけです。
でも、上は一見正しそうに見える(けど実は間違い)なのに対し、下は明らかに間違っているように見えます。
このような「間違っている部分が間違っているって分かりやすくしよう!」がハンガリアン記法のコンセプトです。
もう一例、見てみましょう。
例えば、以下の処理が あったとします。
合計 = 変数1 + 変数2
一見すると、正しく見えますよね?
それでは、今度は どうでしょう。
数字_合計 = 数字_変数1 + 文字_変数2
変数の型を頭にくっつけてみました。
これは明らかに間違った処理ですよね。
数字と文字を足してしまっています。
このような
1.間違いを見つけやすくする目的で
2.変数名の最初や最後に目印を付けることによって
3.変数の中身をより詳しく表現する
書き方がハンガリアン記法です。
なお、意味を考えて目印を付ける書き方を「アプリケーションハンガリアン」と言います。
上で例に挙げた「円_」「ドル_」のような付け方がアプリケーションハンガリアンです。
機械的に変数の型を頭に付ける書き方を「システムハンガリアン」と言います。
上で例に挙げた「数字_」「文字_」のような付け方がシステムハンガリアンです。
単に「ハンガリアン記法」と言った場合は、システムハンガリアンを指していることが多いと思います。
とはいえ、一応、アプリケーションハンガリアンの存在も覚えておいてあげてください。
一言でまとめるよ
まぁ「ハンガリアン記法」って単語が出てきたら「変数名
(変数の名前)の最初や最後に目印をつける表記法なんだな~」と お考えください。
おまけ
■訳してみるよ
「Hungarian(ハンガリアン)」の意味は「ハンガリー人」とか「ハンガリー系の人」とか「ハンガリー語」とか「ハンガリーの」とかです。
「記法」は日本語ですね。
何となく くっつけると
ハンガリーの記法
となります。






