形容詞じゃないという主張に関しては、
ああ、そういやそうかもなあ、と思った。
だからそれにそって話をしたら叩かれた・・・。
fnTexture // クソ
TextureFileName // カコワルイ
texture_filename // まあ普通だな
textureFilename // 俺はこれかな
元々は数十KBのメモリ空間にアセンブラやCでガリガリ詰め込んでた頃の
テクニックだよ。
まあとにかくお前ら「実録!天才プログラマー」を入手して
考案者本人の話を読んでみなよ。
この本は他にもBASICを書いていたころのビル・ゲイツとか、PostScriptの開発
者とか世界で初めてスプレッドシートを開発した人とか、今では名前すら残っ
ていない怪しげな「自称天才」とか、いろいろ面白い話やら手書きのメモやら
が載ってるから買って損はない。
訳者がコンピュータ畑の人じゃないので少〜し読みにくいけど。
>元々は数十KBのメモリ空間にアセンブラやCでガリガリ詰め込んでた頃の
>テクニックだよ。
そこまではさすがにさかのぼらないだろ
その時代のPC上のASMやCの言語仕様ってのは
変数名は先頭6文字まで識別とかその程度だから
prefixなんかつけてたらかぶっちまう
textureFilename = sourceFilename; //OK
textureFilename = sourceDirectoryname; //NG
fnTextureFilename = fnSourceFilename; //OK
fnTextureFilename = dnSourceDirectoryname; //NG
上でも普通は問題ないが、下なら見た瞬間にfnとdnの意味は分からなくても、なにかおかしいとは感じられる。
思考することなく脊髄反射で判定できるので、頭が悪い人には有効だと思われる。
ああ、でもよく考えると8086に移りたての当時は
np (near pointer)/fp (far pointer) だけはつけてたな
これがないとときどきわけわかんなくなったw
>>180 その程度のくだらない例しか思いつかないのかよ
頭が悪い人っておまえのことだろ、もう帰っていいよ
>頭が悪い人っておまえのことだろ
正解。だから色々、小細工しようとしてます。
周りと比べて明らかにコードを理解する能力が低いって自覚してる。
他人のコード読むときに書き直しながら理解して、後から戻すなんて無駄なこともしてる。
たぶんループしてる話だとは思うんだけど、
アプリケーションハンガリアン的なものっていうのは、使っても問題ない場面を
弁えて抑制的に使う分には確かに有用な場面もあるんだよね。
問題なのはフールプルールじゃない、つまり「馬鹿の一つ覚え」的に乱用して
意味不明な記号あふれる読解不能コードを生産する蓋然性があるってことで。
アプリケーションハンガリアンの言う所の「prefix」って
別に無理に短縮形にする必要はないんだろ?
そりゃおかしい。
短縮しないのならそもそもprefixにする必要もなかろう。
何で?
プレフィックスが左右で同じかどうか見るだけなんだから
短縮してなくても問題なくね?
長いと打つの面倒だろ
インテリセンスで
プリフィクスにしてもしなくても長さは大して変わらないと思うが・・・
文句あるんならJavaでも使ってろよ。
??
>>179 シモニイがXerox PARCにいてALTOで動くBravoを書いたころ、
ビル・ゲイツはAltair 8800で動くTinyBASICを書いていた。
その3年後、ベル研のカーニハンらによってC言語が公開された。
時代的にはそんなもの。
シモニイはMicrosoftに移る前から独特な識別子の命名規則を
編み出して使っていた。MSに移った頃は
「あのハンガリー人の書くコードの変数名は変わってる」
と噂されていた。
それって個人的に使ってただけで公式に普及してたわけじゃないのでわ
普及しだしたのはDOSの最後の方のかWINの最初の方のを
作ってたときだったか。
こいつは C でプログラム組めないんだろうな。
ハンガリアンチョップ!
新しい言語は強いtypedefを持ってるだろ
ポインタなのかリファレンスなのか実体なのかってのの判別は、
typedefでは解決できないんじゃ。
201 :
154:2008/08/02(土) 18:27:12
元々も
「意味が違う情報を保持する変数には違う印を名前に付ける」
が変質して
「型が違う変数には違う印を名前に付ける」
とクソになって、最後は
「型と製品と所属モジュールの情報をコード化してすべての変数に付ける」
というありえないgdgd状態に。
元々の論文の "type" は変数の種類、分類を表していたのに
変数の型を表していると誤解されたのが原因と聞いてるけど
2も見ねーで語るなよwww
204 :
デフォルトの名無しさん:2009/02/21(土) 00:03:21
今度就職した会社は、完全にシステムハンガリアンを採用しているみたいです。
VBのソースなんだけど、、、
cls
fnc
sub
pub
str
CNST_
asp
とか。で、これらを組み合わせて使ってるんだよね。
定数なんか大文字にしているのに、わざわざCNST_付けてるのって意味ない。
クラスが全部clsなのとか……。
C++でやってた時、m_clsXXXとゆうのは結構あった。
VBだとm_oXXXもしくはm_objXXXが多かったけど。
アンチハンガリアンだが、VB6やVBAみたいに
型と変数名の名前空間が分離していないくせに
大文字小文字も区別しないクソ言語使ってるときには
安直に衝突を回避する策として使えることが分かった。
VB.net以降は少しはマシになったのかな?使ってないから知らんけど。
>>207 VBの糞仕様は指摘どおりなんだが、
>>204みたいな方式は冗長すぎる頭の悪いやり方だよ。
全然有用じゃない。
普通はこんな感じでやれば糞仕様のVBでももう少しスマートにできる
- 自作クラスはcでプリフィクスする。
- enumは使わずに標準モジュールの定数で代用する。
- 基本、変数名に余分なプリフィクス・サフィックスは付けない。
- ただし、他所製のコンポーネントでクラス名と同じ名前を変数名に使いたい場合は
IDEの流儀に従ってインスタンス名を数字でサフィックスする。
VB6時代だと、画面の標準部品は、MS仕様にあわせていたけど
アレはアレで便利だったと思うけどな。
txtHoge <-- テキストボックス
lblHoge <-- ラベル
btnHoge <-- コマンドボタン
まあ、今はやらんけど結局
hogeText
hogeLabel
hogeButton
になっただけなんだ。
Java本でhogeButtonみたいな例を初めて見たとき、
なんだ普通の英語の語順で書けばいいんじゃないかと開眼した。
ハンガリー語という仇名には、ある種の皮肉というか悪意がこもってるかも。
>>209 既出だと思うけど標準コントロールのハンガリアン表記は結構有用だと思う。
「なんて名前つけたっけ?」って時もインテリセンスを検索的に使えるし。
ベタにTextとか書くと"text"って単語がコントロール名に使いにくくなるし。
英語的にも関係代名詞使った構文みたいな語順になるから意味が頭に入りやすいし。
それでもtextTextBoxのほうが好きだ。
自作コンポーネントの変数追加したら、そこだけ浮いちゃうんだろ?
>>210 でも先頭に無いと並んで書いた時に読み辛いんだよね
214 :
204:2009/02/21(土) 21:06:10
grep して調べたら、Functionプロシージャなのに、sub〜のプレフィックスが付いてて、もはやルールが崩壊してるんだよね。
しかもその会社は、DBのテーブルやフィールドが全て大文字で、アンダーバーの区切りなし、母音省略で、かなりやりにくいわ。
辞めた前の担当者だけとかだったらいいけど、会社としての方針なら最悪・・・。
よくある図式
普通のコードの書き方を覚える
↓(窓の壁)
システムハンガリアンを知る
↓
意味わかんねーし糞うぜー
↓(情弱の壁)
アプリケーションハンガリアンを知る
↓
俺も世間も駄目扱いしてたけど実はそうじゃなかったのか?
↓↑(対立)
でもよくよく考えると駄目じゃね?
ポインタだけはpHogeとかつけるな。
ppHogeとか付いて無いと分かんなくなる。
♥
ハンガリー人を右に
220 :
デフォルトの名無しさん:2010/06/01(火) 09:39:15
ダブルハソガリアッ上
221 :
家電.com:2010/06/01(火) 09:45:12
保守
test
test
窓辺ななみ