【プログラミング】hogeはNG! メタ構文変数はわかりやすく!

はじめに:hoge反対派

どうも! 高杉 皆為(@MinatameT)です。

まず、プログラミング関連のサイトでよく見かける「hoge」や「foo」などのメタ構文変数には、私は反対の立場です。

その一番の理由は、初心者が見たときにわかりにくい(つまり、初心者に不親切だから)です。

次の項目では、これについて、もう少し詳しく述べていきます。

hogeやfooは初心者に不親切

初心者は「疑問だらけ」。

私がプログラミング初心者の頃、hogeやfooをネットで見かけて「なんだこれ?」という印象を持ちました。

その後、メタ構文変数(氏名で言うところの「山田太郎」、「ジョン・スミス」ですね。)であることを理解できたのは良いですが、「これって初心者に厳しい表現では?」という感想を持ったわけです。

実際に、ある学校のプログラミングの授業で、教師が「hoge(ホゲ)」と発言すると、学生側は「ホゲってなんだろう?」となった事例があります。

学生にとって、hogeはよくわからない「難しい何か」なのです。hogeに混乱しているのです。

ですから、「hoge」や「foo」を使うのなら、事前にメタ構文変数の説明をしておくべきです。これで、混乱を予防してください。

読者は初心者かもしれません。hogeなどのメタ構文変数を使うときは、しっかりと説明してください。

メタ構文変数を使うときは「わかりやすく」

クリアーになれ!

メタ構文変数を使うとき

それでは、hogeやfooをどうしても使いたい場合、どうすれば良いのでしょうか。

もちろん、hogeなどを使わないことが一番良いのですが、これらを使う場合は「メタ構文変数」についての説明をしてください。

ちなみに、私はメタ構文変数として、a、b、x、y、i、jあたりをよく使っています。これなら、初心者が見ても「メタ構文変数」だと直感的に理解できると思います。

メタ構文変数が使えないとき

ただ、なんでもa、bにすれば良いわけではなく、プログラマーとしては、「その変数の役割」が推測しやすい変数名をつけるように心がける必要があります。

これができなければ、一流のプログラマーにはなれないと思っています。これは、三流プログラマーの私でもわかることです。

例えば、体重の変数にhogeを使うのはバカか勉強不足の人です。そうではなくて、weightを使うとわかりやすいですよね。

そもそも、意味のない変数名がメタ構文変数ですから、体重の意味がある変数には、メタ構文変数を使ってはいけません

ソースコードで理解する:初心者向けのメタ構文変数

それでは、次のソースコード(一部)を見てください。文法はC言語を想定しています。

int hoge,piyo;
double foo,bar;

初心者がこれを見たとき、「intのhogeってなんだ?!」となるかもしれません。同様に、「doubleのfooってなんだ?!」となるかもしれません。

ですから、次のようにコメントを入れると親切なソースコードになります。

int hoge,piyo; //int型の変数hogeとpiyo
double foo,bar; //double型の変数fooとbar

これなら、初心者にもわかってもらえると思います。いかがでしょうか?

これでも不安なら、

int a;
int b;
double x;
double y;

と記述しておくと良いですね。個人的には、これが一番わかりやすいです。

私がhogeやfooの使用を反対している理由は、わかっていただけたと思います。

プログラミングの記事で多いのが、初心者への配慮が見られないことです。これは残念なことです。

確かに、「int型とは?」や「if文とは?」などと、いちいち説明していると本題になかなかたどり着きませんから、ある程度の省略は必要です。

しかし、hogeやfooを、aやbに置き換える程度なら、誰でもできますよね。

こういった細かな配慮は、とても大切だと考えています。

おまけ:発音について

hogeは「ホゲ」、piyoは「ピヨ」、fugaは「フガ」と(一般的に)読みます。しかし、個人的に

  • Hello! I am たかすぎみなため.
  • I can do it. あなたもdo itできるよ.

のような「英文の中に日本語が混ざっている気持ち悪さ」があるため、あえて、次のように読んでいます。

  • hoge:ホウジ
  • piyo:パイヨ
  • fuga:フューガ

発音記号についてはよくわかりませんので書きませんが、英語っぽい発音になりそうですよね。英語に詳しい方は「こういう発音のほうが英語に近いよ!」と思っていらっしゃるかもしれませんが……。

どのような発音であっても、私はhogeやfugaを使いませんが、読むときはこのように読んでいる……という個人的なお話でした(笑)。


 

みなためじゃんけん

 

このコーナーは、私と擬似的にじゃんけんできるコーナーです。

みなためじゃんけん、じゃんけんぽん!

 

私が出したのは……





 

グーでした! パーの勝利です!



この記事をSNSでシェアする

プログラミングカテゴリーの最新記事(5件)

最新記事(10件)

管理人のTwitter

内部リンク集