「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ハンガリアン記法

pointこの用語のポイント

point変数名とかの付け方だよ

point変数名の最初や最後に目印をつけるよ

point「yenHensuA」や「numHensuA」みたいな書き方だよ

スポンサーリンク

簡単に書くよ

ハンガリアン記法(読:ハンガリアンキホウ 英:Hungarian notation)とは

「変数名(変数の名前)の最初や最後に目印(接頭辞・接尾辞)を付けることで、変数(プログラミングにおける値を入れておく箱)の意味をつかみやすくして間違いを減らそう!」な表記方法のこと
です。


image piyo

詳しく書くよ

たまに変数名の付け方の話で出てきます。

例えば

yenHensuA



numHensuA

のように

名前の最初か最後に決まった目印接頭辞接尾辞を付けることで意味をつかみやすくする表記法

が「ハンガリアン記法」です。

どうでもいい豆知識ですが、このやり方を考えた人がハンガリー出身だから「ハンガリアン記法」と呼ばれているらしいです。
なかなか大雑把な名付け方ですね。

変数には分かりやすい名前を付けるのが基本です。
ちなみに変数は「プログラミング言語における値を入れておく箱」ね。

ハンガリアン記法

それでは、どうすれば分かりやすい名前になるでしょうか?
先人は、いろいろ考えました。

そんな、いろいろ考えて生まれた中のひとつがハンガリアン記法です。
ハンガリアン記法は「おかしい部分が おかしいって分かると いいよね!」なコンセプトで考えられています。

例えば、そうですね。
お客さまに頼まれて、ピヨ太君が経理プログラムを作ったとしましょう。
お客さまの会社は日本とアメリカで事業を展開しています。
それに伴い、扱うお金は円とドルです。

最初、ピヨ太君は以下のような名前の変数を作りました。

・売上_本店
・売上_支部1
・売上_支部2
・経費_本店
・経費_支部1
・経費_支部2


ところがどっこい、扱うお金は円とドルです。
作っている最中で「あれ?これって円?ドル?為替レートって どれに掛ければいいの?」と混乱してしまいました。

ハンガリアン記法2

そこでピヨ太君は変数名を以下のように変更しました。

円_売上_本店
ドル_売上_支部1
ドル_売上_支部2
円_経費_本店
ドル_経費_支部1
ドル_経費_支部2


変数名の最初に「円_」「ドル_」の目印を付けたのです。

このように目印を付けておけば、円とドルが区別できます。
「あれ?これって円?ドル?」と迷うことも なくなるでしょう。

ハンガリアン記法3

このようにしておくと間違いも見つけやすくなります。

例えば、そうですね。
ピヨ太君が以下の処理を書きました。

売上_全体 = 売上_本店 + 売上_支部1 + 売上_支部2

特に おかしいところは なさそうですよね?

それでは、以下の処理は どうでしょう。

円_売上_全体 = 円_売上_本店 + ドル_売上_支部1 + ドル_売上_支部2

ドルと円が混在しています。
きっと、これは間違いでしょう。
ドルの売上に為替レートを掛けて円に換算する必要がありそうです。

ここで、2つの処理を見比べてください。

売上_全体 = 売上_本店 + 売上_支部1 + 売上_支部2



円_売上_全体 = 円_売上_本店 + ドル_売上_支部1 + ドル_売上_支部2

も、やっている処理は同じです。
違いは変数名の付け方だけです。

でも、上は一見正しそうに見える(けど実は間違い)なのに対し、下は明らかに間違っているように見えます。

このような「間違っている部分が間違っているって分かりやすくしよう!」がハンガリアン記法のコンセプトです。

ハンガリアン記法4

もう一例、見てみましょう。

例えば、以下の処理が あったとします。

合計 = 変数1 + 変数2

一見すると、正しく見えますよね?

それでは、今度は どうでしょう。

数字_合計 = 数字_変数1 + 文字_変数2

変数の型を頭にくっつけてみました。

これは明らかに間違った処理ですよね。
数字と文字を足してしまっています。

このような

1.間違いを見つけやすくする目的で
2.変数名の最初や最後に目印を付けることによって
3.変数の中身をより詳しく表現する


書き方がハンガリアン記法です。

なお、意味を考えて目印を付ける書き方を「アプリケーションハンガリアン」と言います。
上で例に挙げた「円_」「ドル_」のような付け方がアプリケーションハンガリアンです。

ハンガリアン記法5

機械的に変数の型を頭に付ける書き方を「システムハンガリアン」と言います。
上で例に挙げた「数字_」「文字_」のような付け方がシステムハンガリアンです。

ハンガリアン記法6

単に「ハンガリアン記法」と言った場合は、システムハンガリアンを指していることが多いと思います。
とはいえ、一応、アプリケーションハンガリアンの存在も覚えておいてあげてください。


image piyo2

一言でまとめるよ

まぁ「ハンガリアン記法」って単語が出てきたら「変数名(変数の名前)の最初や最後に目印をつける表記法なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像027
書籍画像069

おまけ

■訳してみるよ

「Hungarian(ハンガリアン)」の意味は「ハンガリー人」とか「ハンガリー系の人」とか「ハンガリー語」とか「ハンガリーの」とかです。
「記法」は日本語ですね。
何となく くっつけると

ハンガリーの記法

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
エンジニア育成現場の「失敗」集めてみた。 42の失敗事例で学ぶマネジメントのうまい進めかた
インフルエンサー六法 活動開始から情報発信、収益化までに潜むトラブル対策50
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】