ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

変数の命名規約の変遷について。

2006-06-04 15:14:40 | Weblog

 intのcのcは、itochanさん(コメントありがとうございます)のおっしゃるとおり、characterのcって、私は教わりました(カーニハンリッチにあるのかな?ないのかな?今、確認しようと思ったら、手元にないのだよ ^^;)。

 ハンガリアン記法で、ふつうならint i;と書くべきところを、characterが入るので、それを明示するためにcって書きます。




 って、最近は、習わない(^^;)

 う、年齢がばれる(^^;;)

 専門学校生なんかが、90年代、これを教わると、自慢げにいっていたので、そこで、エヴァで取り上げられたんだと思います。

 ちなみに、教わった当時、「intのc」っていうのは、文字の取り方だけをさしているというよりかは、そのあとの一連の
int c;
while((c = getc(fp) ) != EOF )
{
/*  やりたいことをかく */
}
の処理をさしている言葉だったと思います。

 この処理のほうが、プログラムが早く書ける場合もあるんだけど。。まあ、それはあんまり興味ない(気が向いて覚えていたら、今度書く)と思うので、今日は、かーるい話題で、上に出てきた、ハンガリアン記法とか、変数名の変遷について!まとめてみますかにょ。



■変数の命名の変遷について

こんな感じ?

・コンササイスコード
・ハンガリアン記法
・番号による命名
・Javaの命名方法

なんつーところですかね。

じゃ、順次説明
なお、ウィリアムのいたずらの独断と偏見で書いていますので、間違いはあるかも。あと、意見は、偏ってます。




■コンササイスコード
 COBOLでよく使われた命名方法
 得意先をローマ字にすると
TOKUISAKIとなって長いので、TKSKと子音字をのこして、変数名とするもの
 もちろん、このやり方だと重なってしまうことがある。
 なので、各プロジェクトごとに、子音字、母音字をのこす残し方とか、この後に番号をつけるとか、いろいろあるみたい。

 コンササイスコード、コンササイズコード、コンセサイズコード、コンセサイズコード、コンサイズコード、いろいろ、聞いたことがあるけど、どれが正しいか、今ひとつわからん。

 なお、意味的には、「concise」から、多分きてるんじゃないかなあ。。と思ってるけど??




■ハンガリアン記法

 Cなどでの命名方法。
 変数名の前に、その変数の型を書く。
 よく、ポインタの変数で、pMgrとか頭にpをつけるのがこれ。
 くわしくは、 ここ http://www.biwa.ne.jp/~s-sakata/hungary.txt

 さっきのintのcでいうと、Cでは、ハンガリアン記法を採用されることが多いので、本来は、i、実際、ループで変数を取るときは int i;ってとると思う。

 だけど、内容的には、文字なので、c、なんで、ここはint cととる。
(っていうかですね、これを説明するとき、はじめに char c;ってかくと、EOFがとれませんねー。じゃあ、ここをintにしましょう。int c;って説明する)


Javaが隆盛をきわめるにつれ、クラスをどーすんだ?ってことになったりして、今では、Cでは使われるので、Cの人には教えるが、Javaをやることになった人には教えない。なので、最近は忘れられかけている。




■番号による名前付け

 モジュール名やクラス名などに番号を振ってしまい、その名前をあたまにつける。
 たとえば、ピッキングリスト出力モジュール名は
 M0301
 などのようなカタチ。

 この場合、大分類、中分類、小分類とかにわけていることも多い。
 たとえば、上記の例で言うと
 01--受注
 02--発注
 03--物流
 などと分けてある。

 この場合、M0301とみただけで、ピッキングという言葉は知らなくても、物流関係だな!と一発でわかることができる。

 官公庁などの仕事の場合、漢字が12文字とか並んでしまうことがあり、さらに、その12文字のうち、何文字目かの1文字が違うと、まったく反対のことをさすなどというケースもある。
 こういう場合この番号による名前付けが行われる。

 しかし、この方法は、後述するJavaの方法論の人たちの格好の餌食となり、そーいう人たちにが上にいるときに、こういう名前をつけると、ものすごく説教されるので、現在は、上の人をみて、このやり方をつかう。

 つまり、明らかに非効率、みんなが困っているのに、後述のJavaのやるかたでやることがある。




■Javaの命名規約
 Javaが発祥の元で、今、多くの言語などで使われている。
 
 getTagNameのように、フルネームでかいて、大文字、小文字にするところの決まりがある。
 こんなかんじ
http://www.alles.or.jp/~torutk/oojava/codingStandard/writingrobustjavacode_pid86_c11.html#doc1_1901


のようだ。しかし、この規約だと、「英語のフルスペル」で「業界用語」なんて、普通わかんないことが多い((追証(おいしょう)とか、目論見書(もくろみしょ)とか)。

 なので、ローマ字で書いてしまうとする規約も多いが、そうすると、15字どころか、ものすごーく長い名前になてしまう、なにしろ漢字が15文字並ぶことだって、国の仕事ではあるんだから)

 しかし、そんなことはまったく無視で、Javaはえらいんだ!とばかり、権威の人はいって、ほかのひとを馬鹿にするので、仕方ないから、みんな従っているというプロジェクトも多い。

 なお、この場合、権威の人は、自己矛盾をさけるため、以下のように直している

・フルスペルの英語またはローマ字記述を使う
・大文字・小文字を混ぜて使い、読みやすい名前にする
・長い名前をできるだけ避ける

 しかし、こう直しても、所詮英語圏のものを日本語に持ってきたら、矛盾するけど、みんな、それを言い出して、権威の人にいじめられるのはいやなので、それにしたがっている。
(そんなら、コンササイスコードのほうが、まだましだよ!と思いつつ)




ってなところっすかねえ。。

P.S ハンガリアン記法と書くところを、一瞬、ポーランド記法と書こうとしてしまい、いや、違うと思って、なんだっけ?と思ったら、名前が出てこない。。

 うーんと、って考えて思いついたのが「ワルシャワ条約機構」
って、それ、ぜんぜん違うじゃん!

もっとも、加盟国を思い出して、あ、ハンガリーって気がついたけど(^^;)

 

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ワンセグと3セグ、地上デジ... | トップ | XBRL(財務会計データ標準のX... »
最新の画像もっと見る

Weblog」カテゴリの最新記事