ちょっと待て!ハンガリアン

このエントリーをはてなブックマークに追加
>>424
´д`)ノ教えてエライ人。
定数としてグローバルなconst変数定義するのは間違い?
代わりにどう書けば良いの?
ノリタガリアン大満足

・・・死ね。
427423:03/10/24 19:18
>>425
クラスの public static const メンバにする。
ついでに言うと typedef も クラス内でする。
どちらも ClassName::ConstantName みたいな書き方で使える。
何に使うべきなのか、どこに責任があるのかがソースを見ただけで明らかなのが良い。
グローバルに置くと名前が被るのが怖いし、何の目的なのか忘れた時などにいちいち調べなければならなかったりする。

とかいいつつ漏れは趣味で書く時は一つだけ例外的にグローバルにしてるのがある。
EffectiveC++に書いてあったフールプルーフなNullをちょこちょこ変更してるのがあるのだが、
それだけはグローバルに置いた。
何で名前空間を使わない。馬鹿か
429423:03/10/24 23:52
>>428
俺に対してのレスか?
だとしたら使ってるぞ。

それでも定数はクラス内に書く。大抵の場合は一番関係が深いクラスが存在するからな。
つまり名前空間の中にあるクラスの中に、だ。
nullをグローバルに置いたのは利便性とある種の不思議な感覚があった為だ。
不思議な感覚とは、Nullクラスをいじっている間、ライブラリやアプリケーションを書いているというより、
C++を拡張している、C++の言語仕様にあるべきだったのに足りなかった物を追加しているような錯覚を感じたからだ。
これこそがC++の本当に面白い所だと思う。
何だエラそうな事言って結局使ってるんじゃん。
ツマンネーノ。
ハンガリアンというと、ロッキーに出てきた……
423は結局エスケープですか。
ハンガリー語は日本語と語順が一緒なんだぞオ!!
というか英語みたいなSVO型言語よりも日本語みたいなSOV型言語のほうが種類は多いんだが
日本語、韓国語、モンゴル語、トルコ語、ハンガリー語、フィンランド語
他には?
言語学に関する本でも読んでくれ。
言語学の本を読んだところ、Forth 言語は日本語との類似性が認められマスタ。
Lisp言語は、VSO型言語
439431:03/10/26 23:13
誰もツッコミを入れてくれない。しくしく。
>>439
ツッコめないんで、ジサクジエンで突っ込み入れてくれ!
ぬおぉぉぉぉぉ遅くなってすまなんだ!

>>431
それを言うなら海老ドリアだろ?


これで満足か?
で、LonghornのWinFXはハンガリアン使ってるんですか?
どうよ。
とうの昔に MS はハンガリアンを捨てたわけだが。
444ケンケン:03/10/30 22:47
シシシシシシシシシ
445441:03/11/07 06:40
>>431
ツッコミ入れたのに反応なしかコノヤロー!
446431:03/11/07 10:00
>>441
ぎゃふん。
447デフォルトの名無しさん:03/11/07 17:00
>>445
ひねりすぎだ。
アリアハン
アハンああん
ttp://pc2.2ch.net/test/read.cgi/tech/1003674814/
相互リンクーヽ(´ー`)ノ
451デフォルトの名無しさん:03/12/13 00:15
>>93
QB: A& 長整数
VB: A@ 通貨

の新参者もよろしくな。
ランボー
ハンガリー人、ハンガリー語とは普通言わん。
(前者はハンガリー国民、という意味では使うが)
民族名、言語名はマジャール人、マジャール語だ。
覚えておけ馬鹿ども。
同じ意味でフィンランド語とは言わん、フィン語だ。>>435
455デフォルトの名無しさん:03/12/16 13:38
ハンガリアンデストロイヤーって技無かったっけ
「太陽戦隊」だったっけ?
457デフォルトの名無しさん:04/03/30 10:26
ageとく
array global enum
昔のログインに載ってたっけ。こんなとき、こんな一言。
試合を終えたロッキーが観客をかき分けて叫んだ一言。
ちなみに全部別人の投稿。多かったのは「メガネメガネ」だったそう。

「こんなグローブじゃ外野守れないよ!」
>それでもプロか!

...

「エビドリア〜」
>腹へったんか。

「エイリア〜ン」
>彼女かい。

「プレデタ〜」
>もう、何もかも間違ってる。
>>10
今更だけどLPVOID pvABCじゃないか
461デフォルトの名無しさん:04/06/15 06:45
折角上がった事だし、突っ込んどくか…

>>456
そりゃサンガリアだろ!

これでいい?
韓国語 → 朝鮮語
464デフォルトの名無しさん:04/06/15 22:19
このスレ的には kr朝鮮語
北朝鮮と韓国で微妙に語彙が違うらしいけど、

kr_SK
kr_NK

とか分かれてるの?
ハンガリアン、仕事では使わないけど個人で作るものでは使ってるよ、たまに接頭辞どうするかで思い切り迷う
朝鮮語は kr じゃなくて ko だぞ。
北朝鮮 ko_KP
韓国 ko_KR
国敗れてハンガリアン
int main(int iArgc, char **ppszArgv);
>>465
「言語_地域」だって判ってる?
471デフォルトの名無しさん:04/07/21 12:16
ところで__int64ってどうしてる。
QWORDで128ビットだぜ
北朝鮮 co_N
韓国 co_S
jp_JA
475デフォルトの名無しさん:04/07/21 16:57
>>473
それはQWORD qwHoge;でいいでないかい?
476デフォルトの名無しさん:04/07/24 12:57
おさらい
int   i n
long  l (long longは当然ll)
short  n h sh
char  c(整数) ch(文字)
bool  f b (どこかでisってのもあったけど)
float  f
double d (long doubleは当然ld)
void  v (void*とかに)
BYTE  by b
WORD  w
DWORD dw
QWORD qw(だろうと475は言っている)
ハンドル h (hwndのようにすることもある)
関数   fn(pfnなどとして)

上に付加
unsigned u (unsigned int なら単にuHogeでいい)
配列   a (文字列としてのchar[]は単にsz, char*はpsz)
ポインタ p lp
参照   r
const   k
ハンガリアンって自分で作った構造体とかはどうすんだ?
478デフォルトの名無しさん:04/07/24 20:22
>>477
適当に省略した物を使う。API関係からはこんな感じ。
OPENFILENAME:ofn
WNDCLASS   :wc
RECT:rc POINT:pt
476に出ているような基本的な型と違って、複数同時に使うわけでなければそれをそのまま変数名にしていいみたい。

中には何もつけなかったり(classなら俺も大体そう)、structのsを無条件につける人もいるらしい。
ただ s は各種stringクラス類の物として使っている人もいるらしいんで気をつけた方がいいと思う。
(stringクラス類はstrがより一般的と思われるが)
479デフォルトの名無しさん:04/07/24 21:11
ハンガリアンで書かれたC++のソースはクソなのが多い。
非ハンガリアンで書かれたC++のソースはきれいにモジュール化されている。
なぜ?
ハンガリアン記法を使わない=自分のポリシーを持ってソースを書くひとだから。
Javaは記述にポリシーのポの字も許されないね
482デフォルトの名無しさん:04/07/26 14:47
あのさ、enumのときはどうしている?
適切な変数名をつければハンガリアンはいらないよな。
ハンガリアンで書いてあると激しく読みづらい。
なんでこんなもん使うのか理解できない。
定義にジャンプもできないクソエディタ使ってるから必要なんだろうな。
ハンガリアン記法が考案された時代を考えろよ。
便利なエディタが無かったときの苦肉の策だ。
もちろん、今となっては無用の長物。
それを今頃になって導入され,強制されそうな漏れの会社は orz
百害あって一利のみ、って感じだな。
一利あるの?
クラスのメンバ変数に m_ つけるのはすごくわかりやすくていいと思うけど。
困ったことに,引数には "arg_" をつけろとか言ってる。もうやってらんない。
変数名を見て型が類推できる(だろう)、というのが一利かと。
C#でも、画面のControlにはプレフィックスをつけてる。
txtとかlblとか。
プレフィックス=ハンガリアンではありませんよ?
>>489
構造化すらしていない時代の遺物,ということですな。
でも,なんでこんなもん使い続けるんだろう。
グローバル変数使いまくりなのかな。
>>488
m_とかarg_はハンガリアンにあらず
494デフォルトの名無しさん:04/07/27 00:02
ハンガリアン変数の型にだけ拘る意味は少ない。
変数の static変数/auto変数/const変数/関数引数/参照変数/ポインタ変数/メンバ変数
などの性質が変数名だけで分かることは十分に意味がある。これらの種類によって利き方が変わってくる。
十分に意味があるかも知れないが、定義を自動的に検索して
ポップアップ表示するようなエディタがあれば不要だよね。
m_ と,g_ は許してもいいかと。
g_ な変数は,できるだけ使わないほうがいいに決まってるけど。

メンバ関数の中で,ローカル変数と区別がつくのは便利だと思う。
this使え
>>497 お前キモイ
499デフォルトの名無しさん:04/07/27 00:56
すれ違いかも知れないけど、なんでタブは使うなって言われるの?
綺麗に整列出来ていいと思うんだが。
「環境によってタブサイズが違うから」というのは、今時タブサイズも
変えられないエディタの方が悪いんじゃないのかな。
aa        bb
xxxxxxxx    yy

みたいなのをタブで揃えてたときにずれるんだろ。
ぶっちゃけハンガリアンは、プリフィックスさえつければオーケーと思ってる
勘違い野郎のための記法。毎回適切な命名をする知能がない。

低レベルな職場にマジおすすめ。
>>499
コードがすべてノンプロポーショナルフォントで書かれるとは思わないほうがよろしい。
>>499
漏れは行頭の字下げ以外にはタブを使わないのでプロポーショナルだろうと
等幅だろうと関係ないな。

変数宣言のときはいちいち桁揃えなんてしないし。
まちがえた>>499じゃなくて>>502
> 変数宣言のときはいちいち桁揃えなんてしないし。
構造体初期化なんかではこれをやる。そのほうが観やすい
>txtとかlblとか。
これは有効な気がする。

この変数何?って聞かれれば
「あの板名表示するラベルの変数」
って答えになるだろうから、
ラベルを示す言葉が変数名に入るのは
直感的で分かりやすい、と思う。
ラベルって言葉を入れないと、むしろ分かりにくい。

これってハンガリアンとは別の話よね?

>桁揃え
これは揃ってた方が見やすいことも多いけど
人間が必死に揃えるのは時間の無駄に思う。
何のためにエディタが有るのかって話。

これもハンガリアン云々とは無関係か。
Java厨はJava流を全て肯定し、それ以外を全て否定する、思考停止したロボット。
>>507
全部じゃないけどそういうの多いね
509デフォルトの名無しさん:04/07/28 13:37
スレタイ見て、かっとばせ!キヨハラくん思い出した。
MSはガイドラインでは省略形は使うなと書きながら、
サンプルでは使いまくりだからな。
511デフォルトの名無しさん:04/07/28 20:56
int *(apnHoge[]);
int (*panHoge)[];
int *(apnHoge[N]);
こっちは添え字省略出来ないよ。
513デフォルトの名無しさん:04/07/29 16:29
char *(*(*apfnpfnpsz[N])())();
これぐらい複雑だと少しは役立たない?
すでにハンガリアンじゃないし(w
515デフォルトの名無しさん:04/07/31 12:23
>>499-500 >>502-503
つまり、行頭のタブは全く問題ない訳か。
>>515
テキストの横幅(一行の文字数)を76とか80で制限されている場合、
インデントの幅が変わると問題になるかも。
タブ幅変えればいいじゃん。
そしてハンガリアンとは関係ないところで話がループする・・・
ハンガリアンは終わったということさ。
そうです。これからはモンゴリアンの時代です。
モンゴリアン記法
モンゴルがイージス艦に対してジンギス艦を建造中らしい。
ウマそう・・・
今関わっているプロジェクト、Cなんだけどハンガリアンとグローバル全開だよ。
グローバルへの直接アクセスは日常茶飯事。

しかも命名するとき長い単語は変数名や型名が長くなるから3文字略称の連続。
g_Cmn_stCtlEvtTblな感じで。
あぁ、stって構造体につける規則になってる。
わけわからん。
g_stHogHog.stMog.stHug.bStatus = TRUE
とかかかれてるの見るともうね・・・

途中参加なんでこのままいくしかなく・・・
あーあの街で坊主の人を見かけたときにいう言葉だろ
>>524
(-∧-;) ナムナム
ハムスターのことでしょ。
最近聞いたプログラム規約。
Javaだというのに、変数の型とスコープを表すプリフィックスを必ずつけろという。
理由を聞いたら、プログラムの一部を見たとき、変数がローカルかフィールドか
わからないからだという。そりゃ一つのメソッドで数百行にもなってりゃわかる
わけないだろう、と言ったら、今度はメソッドの長さもコーディング規約で決めよう
と言い出した。
>>528
コーディング規約 第2条
http://pc5.2ch.net/test/read.cgi/tech/1068752664/
こっちへどうぞ。
なお、プレフィックス=ハンガリアンではありません。
530デフォルトの名無しさん:04/08/12 20:13
>>529
でもプレフィックス=ハンガリアンと思われている現実。
じゃーサフィックスはナニガリアンなんだよ!?
サンバルカン
Java厨って相変わらずアホだな
534デフォルトの名無しさん:04/08/25 17:59
ところでstatic変数につけるプレフィックス s_ ってファイル内、関数内、クラス内、どこのstatic用なんですか?
535デフォルトの名無しさん:04/08/26 21:32
>>533
数百行の長さの関数を書いて喜んでいるバカがここに一人
>>535
Java厨って妄想力豊かだな
537デフォルトの名無しさん:04/08/27 00:35
ハンガリアンはドーピング野郎なので使う必要なし
538デフォルトの名無しさん:04/08/27 02:35
やっぱルーマニアだよね
カレーにこだわりが?
ハンガリアンハムスター
>>539
大柴ファンかもな。
小学生時代、俺に唯一告白してきた女子
そいつのあだ名がハンガリアンだったの思い出して今やるせない気持ちです
OSも無い組み込みファーム屋でC使ってます。
グローバル変数も長い関数も使いまくりです。
デバッガは自動変数をモニターできないので
偶に一時的にグローバルにしたりしてます。
なので自己流版画離案もどきは重宝します。

お願い、もっとまともなコンパイラとリソース頂戴。
>>543
まったく同じ
ハンガリー人ドーピングしまくりじゃねえか。
クソなのは規約だけじゃなかったようだ。
546デフォルトの名無しさん:04/11/06 19:08:46
                \ │ /
                 / ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )< くっちゃらはぴはぴ!
                 \_/   \_________
                / │ \
                    ∩ ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< くっちゃらはぴはぴ!
Py厨〜〜〜〜!    >( ゚∀゚ )/ |    / \__________
________/ |    〈 |   |
              / /\_」 / /\」               ̄     / /
547デフォルトの名無しさん:04/11/06 23:36:55
Cだとハンガリアンがうれしいかなぁ
C++だとメンバ変数にm_がついてないのは勘弁
C#だとあんまり意味ないね
ようは自分の都合だけで書かない心構えさえ出来ていたら
その都度、ベストな出来るはずなんだけど
548デフォルトの名無しさん:04/11/07 07:25:43
fはフラグの意味でboolに使っている。
floatはどうしようかと考えたらhdを思いついた。
これでいいよな。
549デフォルトの名無しさん:04/11/07 09:22:04
スコープを意味するプリフィクスは、ハンガリアンではないとあれほど…
550デフォルトの名無しさん:04/11/07 13:22:00
boolにするならbでいいじゃん
551548:04/11/07 14:06:40
>>550
bool/BOOLにbはなんだか違和感があって……、慣れの問題?
ただ今のところfloatを使う機会はないんだけどさ。
552デフォルトの名無しさん:04/11/07 19:23:55
>>549
どう違うか説明してみろや
どっちも接頭修飾だ
553デフォルトの名無しさん:04/11/07 21:58:38
>>552
型名をプレフィックスにつけるのがハンガリアン出身のMSのプログラマが考案した本来のハンガリアン記法であって、スコープのはMSがそれと同時に提唱しただけ。
554デフォルトの名無しさん:04/11/12 20:16:39
>>548
MSDN内でもBOOLはbだったりfだったりバラバラだねえ
555デフォルトの名無しさん:04/11/23 08:47:10
iteratorにit使い出したらこれが気に入ってハンガリアンやめられなくなった。
556548:04/12/07 13:49:15
よくよく考えればhはハンドル。
どこかでhがshortだと書いていたページを見た気がするのだが、今探しても見つからない。
となるとfloatをどうするかは振り出しに。
sはStringだと書いてあるところと、shortと書いてあるところが両方あるから、sdはやめた方が良さそうだ。

やはりBOOL/boolのbを受け入れるしかなさそうだ。慣れれば気にならない(はず)。
557デフォルトの名無しさん:04/12/07 13:54:36
h handle
p pointer
m_ member
s string
a array
it iterator
r reference
g_ global

コレくらいしか使わない。
boolは大抵isHogeみたいになる。
558548:04/12/07 23:11:20
俺流ハンガリアンでは(D/Q)WORD, BYTE, CHAR類以外の整数型にはunsignedなら u そうでなければ n に統一している。
float/double/long doubleも同じように d で統一すればいいんだとひらめいた。

今度こそこれでいいよな。
559デフォルトの名無しさん:04/12/08 01:11:26
>>558
俺も、short, int, long は、 nで共通している。 n は Number の N だから、short だけに使うのは違和感がある。

同様に、float も、d ではなく、 f (float は浮くという意味で、浮動小数点の意) で省略したほうがいいと思うよ。
560デフォルトの名無しさん:04/12/08 11:26:17
俺は整数型はbit長と符号で全部区別している。
用途で区別するのはわかりにくい。
組み込みのメモリが少ない状況でやってるから、ヘタに抽象的にできないってのはあるが。
浮動小数点もほとんど使わない。つーか使えない用途だ…
561デフォルトの名無しさん:04/12/08 22:49:33
めんどいからStringはstrにしてる
562デフォルトの名無しさん:04/12/09 00:15:57
諸々のtypedefされたマイナーな型のプリフィックス考えるのめんどいから
ハンガリアンやめた
563デフォルトの名無しさん:04/12/09 00:59:22
面倒臭いから返り値はretにしている
564デフォルトの名無しさん:04/12/09 21:00:30
>>563
それは、ハンガリアンじゃない
565デフォルトの名無しさん:04/12/09 22:12:59
iRetだとアセンブラスレに行きたくなるな
566548:04/12/10 13:13:21
>>559
いやそもそもBOOL/boolにfを使いたいことから考え出したんで、そりゃちょっと勘弁してくれ。
567デフォルトの名無しさん:04/12/10 22:43:52
is付けろ
568デフォルトの名無しさん:04/12/11 02:26:46
>548
ここは思い切って short/int/long/float/double は全部 n にするとか。
整数と浮動小数の違いを意識する必要って、あまりないと思うのだが。
逆に分ける必要があるなら、>560のように、bit長や符号の違いでも
分けるべきだと思う。
569デフォルトの名無しさん:04/12/11 15:58:56
予想しないとこで丸められると困るから整数と浮動小数は分けるだろ
570デフォルトの名無しさん:04/12/11 17:33:06
ここは思い切ってハンガリアンをやめるとか。
変数の型を意識する必要って、あまりないと思うのだが。
逆に分ける必要があるなら、>560のように、bit長や符号の違いでも
分けるべきだと思う。
571548:04/12/11 21:37:04
とことん使い尽くすか、全く使わないか……。
その間はないのかよ。
572デフォルトの名無しさん:04/12/12 01:07:12
>569
浮動小数→整数はコンパイラが警告出すから、「整数と小数の区別」で防げる程度の
「予期しない丸め」はハンガリアン使わずとも防げると思うが。
キャスト等で警告を殺す椰子に、ハンガリアンの効果があるとも思えんし。
573548:04/12/13 21:50:25
結局、558案を元に浮動小数点数型は全て f に統一、bool(もちろんBOOLも)は b/isにすることにしました。
もちろん今まで書いたやつはそのまま放って置くw
574デフォルトの名無しさん:04/12/13 21:59:08
やねうらおのソースもハンガリアン記法っぽかった。
575デフォルトの名無しさん:04/12/13 22:01:43
>>571
そんな優柔不断ではまとまりに欠ける。
576デフォルトの名無しさん:04/12/15 05:51:08
>>573
Byteはどーする?
MSDNだとBYTEのプリフィックス、n、b、byの3種類あるんだよなあ
577デフォルトの名無しさん:04/12/15 10:51:06

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」
―――――――――――――‐┬┘
                        |
       ____.____    |
     |        |        |   |
     |        | ∧_∧ |   |
     |        |( ´∀`)つ ミ |
     |        |/ ⊃  ノ |   | ハンガリアン
        ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄    |                       
578548:04/12/15 17:46:24
>>576
そりゃbyでしょ。小文字のbはビットとしか思えない。
579デフォルトの名無しさん:04/12/16 20:35:46
センス・オブ・プログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4774121738/

この本のヒトもアンチハンガリアンっぽ。
580デフォルトの名無しさん:04/12/16 22:04:46
中途ハンガリアン(適度にハンガリアン)が楽だと思うのだが・・・

szText、cbText 等の単純なカウンタ、一時退避変数とかは
意味を付与するよりハンガリアンの方がすっきり思える
581デフォルトの名無しさん:04/12/18 16:52:01
数値は全部 n は釈然としないな。
使い分ける意味があるときは i r n (integer real natural)と分けて欲しい。

漏れは、ローカル変数に鍵って idx とか cnt とか、用途でプレフィックス
つけたりするけど、みんなこんなのは名前に淹れてるの?
582デフォルトの名無しさん:04/12/20 14:00:06
半端リアン
583デフォルトの名無しさん:05/02/05 20:48:28
VHDLにもハンガリアンと来た
世も末だ
規約で縛りつかなきゃ読めんようなコードを書くやつにコードを書かせるな!
VBでも書いてろ!
584デフォルトの名無しさん:05/02/14 19:31:32
>>583
工エエェェ(´д`)ェェエエ工工
半端なソフト屋あがりにハード作らせるなよと・・・
585デフォルトの名無しさん:2005/04/12(火) 23:34:47
いただきハンガリアン
586デフォルトの名無しさん:2005/04/13(水) 13:21:02
そんなにハンガリアンがいいものなら、
なぜ言語仕様にしないのか
587デフォルトの名無しさん:2005/04/13(水) 15:56:45
符号付整数: nHoge
符合無整数: uHoge
としてる俺。
588デフォルトの名無しさん:2005/04/25(月) 20:11:20
コード上では変数のプロパティってnameしかないわけだけど
colorとかscopeとかtypeとかも持たせたら分かりやすいかも
scopeとreferenceはぜひとも欲しいなあ
589デフォルトの名無しさん:2005/04/25(月) 20:23:25
>>588
よくわかんないけど、Rubyとかの話か?
590デフォルトの名無しさん:2005/04/25(月) 20:32:02
>>589
コードをテキストデータとして書くのが一般的だと思うけど
たとえば
<variable>
<name>i</name>
<type>integer</type>
<scope>local</scope>
<style>
<color>red</color>
<underline/>
<bold/>
</style>
</variable>
みたいなの
591デフォルトの名無しさん:2005/04/25(月) 22:20:32
>>590
そこら辺全部variable要素の属性でいいじゃないか。
<variable type="integer" scope="local" style="color:red; font-weight:bold;text-decoration:underline">i</variable>
CSSをそのまま使うのは再考すべきだが。
592デフォルトの名無しさん:2005/04/25(月) 22:24:32
>>591
素晴らしい!その通りですね!!
593デフォルトの名無しさん:2005/04/25(月) 23:55:41
szTextを見ても型がわからない俺にはハンガリアンは無用の長物。
szって何の型なのかおしえろよ
594デフォルトの名無しさん:2005/04/26(火) 00:01:31
orzText
595デフォルトの名無しさん:2005/04/26(火) 01:51:12
>593
sz : string zero terminated.
596デフォルトの名無しさん:2005/04/26(火) 16:55:47
つまり文字列をしまうchar/TCHAR/WCHAR配列ってことだ。
たまにchar *とかTCHAR *やらWCHAR *に使うやつもいるが。
597デフォルトの名無しさん:2005/04/26(火) 21:22:47
それどころかJavaにハンガリアンを持ち込んだときに
(この点の是非は問わない)までStringインスタンスに
szを付けるヤツがいる。
zがなにだかまるでわからずに付けてるわけだ。
598デフォルトの名無しさん:2005/04/26(火) 22:35:34
Javaは使ったこと無いけどstd::stringにはstrを使っている。
599デフォルトの名無しさん:2005/05/20(金) 19:23:24
ゲーム屋さんだけど便利だなと思うときが
たとえばマップデータをセル区切りで持っていて、実際の座標は3D空間。
こんなときに

MapData
600デフォルトの名無しさん:2005/05/20(金) 19:46:00
途中で送信してしもた。なんでTabキーで書き込みやねん・・・。

ゲーム屋さんだけど便利だなと思うときが
たとえばマップデータをセル区切りで持っていて、実際の座標は3D空間。
整数データと浮動小数点などが入り混じるときに便利だと思う。
あと速度ならvSpeed(v = Vector)、速さならfSpeedとか。
実際の例としては
struct MapCell{
 Vector vStream; // 流れの方向
 float  fHoge;   //セルに存在するHogeの物質量
};
んでこれが2次元配列だから配列用のインデックスにはnX, nYとかして整数であることを強調したほうわかりやすい。
ただの型情報なしのX,Yならワールド座標系かと思ってしまうし
for(...
  for(....
     MapCell[nY][nX].vStream = vHogeStream; //ベクトル同士の代入
     MapCell[nY][nX].fHoge = fHoge;   //スカラー値の代入

結構型付け意識せんなんから変数名から型がわかるのは便利だと思う。
かといって構造体やらクラスやらにわざわざ変なのつける必要もないと思う。
601デフォルトの名無しさん:2005/05/20(金) 20:15:38
まぁ使い方次第やな。
使えん派の出してくる例は極端すぎ。
602デフォルトの名無しさん:2005/05/22(日) 10:11:30
新潟ハンガレ、超ハンガレ!
603デフォルトの名無しさん:2005/05/22(日) 13:33:31
ハンガリアンに替わる新記法、韓ガリアンをお前たちで開発してください。
604デフォルトの名無しさん:2005/05/23(月) 23:40:52
こんなコラムを見つけた。
Making Wrong Code Look Wrong
ttp://www.joelonsoftware.com/articles/Wrong.html

元々のハンガリアン記法のアイデアは、変数の「種類」を表すプレフィクスを付けることで
コード上のミスを視覚的に発見しやすくするというものだった。
例えば、ウィンドウ座標を表す変数にはxw・yw、レイアウト基準の座標はxl・yl、
文字数はcbを付けるという約束にしておけば、
xlナントカ = xwカントカ + cbホントカ
みたいなコードは変数の使い方を間違えていると一目でわかる。

不幸にも、どこかの誰かが変数の「データ型」をプレフィクスにするものだと誤解し、
それがWindowsのドキュメントを通じて世に広まってしまった、ということらしい。
605デフォルトの名無しさん:2005/05/24(火) 06:25:41
だいたいさー文字列しか使えないってのがおかしい
ルビをふれるようにするとかコーディングする時
文字入力するんじゃなくて宣言部からマウスでドラッグしてくるとかで
関連づけを名前だけで行うなんて原始的なことをやめたら
こういうちまちましたテクニックは無意味になるでしょう
606デフォルトの名無しさん:2005/05/24(火) 19:45:45
>>605
キー入力より速い開発手法を確立したら後世に名が残せると思われ
607デフォルトの名無しさん:2005/05/26(木) 01:30:43
608デフォルトの名無しさん:2005/05/26(木) 22:31:05
GUIがないと何も出来なくなるな
609デフォルトの名無しさん:2005/05/28(土) 11:49:10
>>600
> あと速度ならvSpeed(v = Vector)、速さならfSpeedとか。

えっと、それぞれvelocityとspeedを使えば、言葉としても正しいし、何の問題もないわけだが。

速度 - Wikipedia
http://ja.wikipedia.org/wiki/%E9%80%9F%E5%BA%A6

ハンガリアンなんぞ使う人は、適切な命名ができないからこんな規約でごまかしてるんだろうという
俺の持論がますます強固になったな。

> インデックスにはnX, nYとかして整数であることを強調したほうわかりやすい。

んなアホな。nXでは整数であること意外何の情報も含んでないだろ。
素直にcellXとかcellYとかにしたほうがいいと思ったりはしないのか。
610デフォルトの名無しさん:2005/05/28(土) 17:20:42
>>609
なかなか反論として説得力あるな。
俺もハンガリアンつかってたが、貶すだけではなくて対案があるといい。

スコープ系
クラスメンバの m_Hoge
グローバルの g_Hoge

ポインタと参照
pHoge
rHoge
とかはどう思う?

611デフォルトの名無しさん:2005/05/29(日) 14:14:17
最近はローカル変数・引数には原則p/r/it/is以外は何もつけなくなってきた。
すぐそこに宣言が見えるからプレフィックスを付ける意味がないと思うようになった。
612デフォルトの名無しさん:2005/05/29(日) 16:24:32
Cだとp位は要るかも知れないけど、俺C++だからpも要らないや。
613デフォルトの名無しさん:2005/05/30(月) 06:10:22
>>609
> ハンガリアンなんぞ使う人は、適切な命名ができないからこんな規約でごまかしてるんだろうという
> 俺の持論がますます強固になったな。

fool proof でプリフィクス使うところも多いんじゃね?
新人のクソコードを読むハメになることも多いし。

> > インデックスにはnX, nYとかして整数であることを強調したほうわかりやすい。
> んなアホな。nXでは整数であること意外何の情報も含んでないだろ。
> 素直にcellXとかcellYとかにしたほうがいいと思ったりはしないのか。

x y で十分だと思うけどなあ。
2次元配列をなめるサブルーチンなんだし、意味を取り違えるのは凝集度が低すぎるんじゃないか。
座標値が他に沢山あるなら cellx, celly xidx, yidx lpx, lpy ix, iy あたりから好きなの使えばいいと思う。
foreach とか for x in y とか使えるといいんだけど。

609 のいう「何の情報も含んでない」というのは、みんなに気にして欲しいなあ。
n と f とか v とかを付けることによって読みやすくなったコードは読んだことが無い。
614デフォルトの名無しさん:2005/05/30(月) 13:49:27
boolはisなりbなりつけたほうがわかりやすくない?
bool isConnectToClient;
とか。
つけない場合はどういう変数名にすればわかりやすいのかな。

あと配列の命名法はどんなのあります?
ハンガリアンに従えばaだけど、じゃぁ二次元配列はaaなのか
stl::vectorとかはどうするのか、aであらわすのもイマイチのように思える。
615デフォルトの名無しさん:2005/05/30(月) 14:31:01
>>614
boolにbはちょっと…isは普通に使われていると思います。
変数だけでなくboolを返す関数でもisXxx()が一般的だと思います。
(JavaBeansの命名規約もそうでしたけ)

配列は複数形じゃないんですかね。connectionsとか。
616デフォルトの名無しさん:2005/05/30(月) 22:38:01
>>614
isはハンガリアンではなかとです
617デフォルトの名無しさん:2005/06/13(月) 20:02:09
int は、 nNum なの?
それとも iNum か??
618デフォルトの名無しさん:2005/06/13(月) 20:05:27
たそがれハンガリアン
619デフォルトの名無しさん:2005/06/13(月) 20:10:51
フビライハンガリアン
620デフォルトの名無しさん:2005/06/13(月) 21:19:26
>>617
intは i らしい。nはshortの意を少々含んでいるらしい。
でも俺はlongも含め符号付整数は n で統一している。
621デフォルトの名無しさん:2005/06/13(月) 21:22:56
>>620
どもありがとー。
私も全部 n にしまっす!
622デフォルトの名無しさん:2005/06/13(月) 21:31:11
漢ならいさぎよく
numberNum
と書くべきだと思うぞ。
623デフォルトの名無しさん:2005/06/13(月) 22:00:32
メモリを確保して、文字列を記憶する char 型のポインタで、メンバ変数 str は

char *m_pStr
でいい? それとも
char *m_sStr
でしょか? まさか
char *m_psStr とか??

>>622
ながいですよー ><
624デフォルトの名無しさん:2005/06/13(月) 22:03:32
俺はm_を使わない派だからpStr。
あるいはpszHogeも使うがpszStrとはしない。
625デフォルトの名無しさん:2005/06/13(月) 22:05:25
>>623
ハンガリアンしている以上
そもそも長いも短いもへったくれもないぞ。
626デフォルトの名無しさん:2005/06/13(月) 22:12:22
>>624
pStr ですか。おけ。私はm_pStrにしまっす。
m_ 使わないと、
void cMyclass::set_num (int nNum)
{
m_nNum = nNum;
}
みたいなとき、同じ名前使えなくて困りません?

>>625
も、もしや、まさかマジで>>622使ってる人ですか??
627デフォルトの名無しさん:2005/06/13(月) 22:24:11
>>626
そういうときには引数の方を単に n にしたり、メンバ変数をnNumberのように略せず仮引数をnNumみたいに略したりする。
さらにコンストラクタなら同じ名前でもコンパイル通る。
class Hoge
{
  int nFoo;
public:
  hoge(int nFoo) : nFoo(nFoo) {}
};
628デフォルトの名無しさん:2005/06/13(月) 22:24:58
>>626
おうよ。あたぼうよ。
昔はな。
それで、いい加減うんざりして、
いまはストレート派だ。
変数に飾りはいらねえ。
629デフォルトの名無しさん:2005/06/13(月) 22:52:25
>>627
あー、それはなかなかいい方法かもですね。 >nNumber
あと、>>624みたいなあんま意味のない引数のときは、nでもいいかも。
うーん、勉強になるなあ。
コンストラクタは同じ名前でもマジで通りますね。
知りませんでした。でも、↓はさすがにちゃんと動かなかった ^^

class cStrtype {
char *m_pStr; // メモリを確保して、文字列格納
public:
cStrtype (char *m_pStr); // コンストラクタ メモリ確保して文字列記憶
~cStrtype () { delete [] m_pStr; } // デストラクタ メモリ開放
char * get_str () { return m_pStr; } // 文字列返す
};
// コンストラクタ メモリ確保して文字列記憶
cStrtype::cStrtype (char *m_pStr)
{
int nLen = strlen(m_pStr) + 1;
m_pStr = new char [nLen];
if (!m_pStr) exit(1);
strcpy(m_pStr, m_pStr);
}


>>628
おお、「変数に飾りはいらねえ」って、むやみやたらにカッコイイ!
630デフォルトの名無しさん:2005/06/13(月) 22:54:01
あー、すみません。↑の 624 てのは、>>626の間違いでした m(__)m
631デフォルトの名無しさん:2005/06/13(月) 23:07:09
>>629
mはメンバの意味だから仮引数に付けるのはおかしいだろう。というわけで俺ならこうする。
cStrtype::cStrtype (const char *pStr) : m_pStr(new [strlen(pStr) + 1]
{
  strcpy(m_pStr, pStr);
}
newは例外を投げるからヌルチェックは無駄。
実際にはメンバ:pStr or pszStr、仮引数:psz or pにする。
632631とか:2005/06/13(月) 23:09:22
ちなみに629のコンストラクタもメンバにthis->を補えば通る。
633デフォルトの名無しさん:2005/06/13(月) 23:36:45
>>631-632
>>629 のは、実験的にやってみただけっすw
newの例外ってのは、これからお勉強するので、
よくわからず。

cStrtype::cStrtype (const char *pStr) : m_pStr(new [strlen(pStr) + 1]
↑この記述方は初めて見ました。

色々とありがとうございました m(__)m
634631-632:2005/06/13(月) 23:38:27
そういえばthis->使えばコンストラクタでなくてもメンバ関数ならなんでも平気のような気がしてきた。
635デフォルトの名無しさん:2005/06/14(火) 00:44:50
あなた方は本当にそのような変数名を命名しているのですか・・・
636デフォルトの名無しさん:2005/06/14(火) 23:56:06
>635
まぁ変数名なんて、所詮入れ物に付けた名前ですから。
名前なんぞより、中身に合った入れ物を選ぶことの方が大事。
637デフォルトの名無しさん:2005/07/01(金) 23:56:12
ハンガリー、どうしようかなあ。

配列の前に a_ は付けてる?
あと、座標は

class Tekitou{
int m_nX;
int m_nY;
};

って書くのがベター?

誰かよろ。
638デフォルトの名無しさん:2005/07/02(土) 00:03:52
xとyはそのまま小文字で通している。
あるいはPOINTやらCPointにして、そのプレフィックスとしてptを付けている。
639637:2005/07/02(土) 00:15:37
うーん、そうですよねえ。
座標はけっこう頻繁に使うっぽいし、
特別扱いしてもいいかな。

どもです m(__)m
640デフォルトの名無しさん:2005/07/02(土) 00:49:05
うん、aつける。
でも漏れの場合はあんだすこあはつけない。

char achCell[4] ;

achCell[0] = '\x11' ;

座標なら

class Tekitou{
int x;
int y;
};

としちゃうかなぁ。
漏れ厳密派じゃないからなぁ。

でも、このクラスがそれなりの規模(プライベート関数5-6個)なら、
厳密に

class Tekitou{
int iY;
int iX;
};

とするかなぁ。
641デフォルトの名無しさん:2005/07/02(土) 00:49:53
あ、先越されてた。スマソ。
642デフォルトの名無しさん:2005/07/02(土) 09:17:03
俺はchar/wchar_tなどの文字列の配列であって、ヌル終端ならachよりもszを使う。
643デフォルトの名無しさん:2005/07/02(土) 13:13:26
ハンガリアンというかJavaから入ってくるとフルネームで変数名つけたくなる。

が、IDEの入力補完を使わないとタイプ数が増えてミスが多くなるのでやめた。
644デフォルトの名無しさん:2005/07/02(土) 18:55:44
>>643
俺は逆に、ローカル変数以外は暗号みたいな意味不明な省略をした命名とか、
適切な形容詞や副詞を伴わない舌足らずな命名は数年前から一切止めた。

別に入力補完がないならないで全部コピペでいけるでしょ。
俺はマイコンチップのアセンブラなんかも触ってるんだけど、(当然インテリセンスなんてない)
長いラベル名なんかは実際タイプせず全部いちいちコピペしている。

確かに純粋にタイピングの部分だけ見れば、短い変数名を自分でタイプする方が効率的だが、
そのアドバンテージは「この関数の機能はなんだっけ?」いちいち定義部に戻って
確認しなければならない非効率、思考が混乱する非効率、いちいちコメントをつけなければならない
非効率とトレードオフの関係にある。

実際やってみると、冗長と思えるほど明示的な命名をしておいた方が結局は
はるかに効率がいいんだよね。
プリミティブなアセンブラやCでも、.NETでもそれは変わらない。
645デフォルトの名無しさん:2005/07/02(土) 19:16:38
>>644
>いちいち定義部に戻
らないと行けない程遠くに離す、なんて事を
>Cでも、.NETでも
やっちまうのが間違いの元のような。
646デフォルトの名無しさん:2005/07/02(土) 19:32:45
>>645
イミワカンネ。
>>645はどんな複雑なプログラムもたった10行で収める神技の持ち主なんだろうか(笑)
647デフォルトの名無しさん:2005/07/02(土) 19:39:51
これからはプリフィクス無しハンガリアンの時代ですな(`・ω・´)
648デフォルトの名無しさん:2005/07/02(土) 20:08:05
>>645
644はローカル変数以外はと枕置いているようだが。
649デフォルトの名無しさん:2005/07/02(土) 20:14:26
>>644
まあ、そうなんだけどね。
実際、Java命名からハンガリアンもどきを使った後に、またJava命名に戻ったし。

あー、あれ使えばいいのか。クリップボードの内容を何十個とスタックしてくれるツール。
650デフォルトの名無しさん:2005/07/02(土) 22:47:14
ハンガリアンはむしろ型付けの弱い言語でつかいまふ
651デフォルトの名無しさん:2005/07/03(日) 00:38:19
殺すぞ。
652デフォルトの名無しさん:2005/07/03(日) 03:00:26
ちょっとカッコイイっぽいから、使おうかと思ってます・・
653デフォルトの名無しさん:2005/07/03(日) 11:11:51
ハンガリアンを?今は逆にカッコワルイよ?

多分オマエが抱いてる感情はアレだ。

都会で流行ったものが、若干遅れて田舎に来たときのソレだ。
654デフォルトの名無しさん:2005/07/03(日) 12:34:41
今の最新流行はなんだろうな。Java命名規約か? C#もそれに大体準拠してるし。
655デフォルトの名無しさん:2005/07/03(日) 19:54:20
逆にハンガリアンがないと困る状況を考えてみる
。。。。。ハンガリアン以前の問題が
656デフォルトの名無しさん:2005/07/04(月) 00:17:16
>>642
あ、もちろん漏れも漏れも。
szBuffer とか wszTemp とか。

説明足らんかったけど、>>640
null終端でないchar型のバッファ
(何かのセル属性とか)のイメージでつ。
657デフォルトの名無しさん:2005/07/04(月) 11:51:58
>>640
配列は複数形でいいのでは。
658デフォルトの名無しさん:2005/07/04(月) 19:03:36
unsigned char *Data; は、
pData
かな。それとも、byteなのも考慮して
pbyData
かなあ。

ちなみに、newでメモリを確保して使う予定のやつです。
659デフォルトの名無しさん:2005/07/04(月) 21:59:55
俺の中での優先順位はこう。

ローカル変数なら無条件にpとする。

null終端文字列ならpszにする。
バイトの配列として使うのなら型もBYTE *やPBYTEにした上でpbyDataにする。
どちらにも当てはまらない場合、今の俺だったら単にpにする。昔の俺ならpuch/pch/puのどれかにしただろう。
660デフォルトの名無しさん:2005/07/05(火) 04:12:58
> pbyData

システム開発屋から言わせてもらうとだな
他人が書いたソースにこんなクソ変数名があったら殺意覚えるよ。
ソース毎にいちいち書いた奴の俺様命名規約なんて覚えてられねーんだよ。

変数名はだな、プログラムの制御の流れが分かりやすいように
その変数が何に使われているか分かる名前を付けろ。
できればシンプルに省略せずに付けろ。
それが無理(分かりにくい)なら説明的で長い名前を付けろ。

プログラムで大事なのは制御の流れであって型じゃない。
制御の流れを読み辛くする型情報はいらん。
661デフォルトの名無しさん:2005/07/05(火) 05:27:43
芳しいスレだな。

ハンガリアン派:実務経験少
非ハンガリアン派:実務経験多

と言う感じがする。
662デフォルトの名無しさん:2005/07/05(火) 07:59:51
>>659 >>660
説明不足ですみません。

class CMapData {
unsigned char *m_pbyMap;
};

こんな感じの、クラスのメンバです。
とりあえず、↑のヤツで行ってみまっす。
ありがとうございました m(__)m
663デフォルトの名無しさん:2005/07/05(火) 10:57:30
>>660
同意。
>制御の流れを読み辛くする型情報はいらん
・・・まあ、そうは思わない奴がハンガリアンなのですw

>>661
その感覚は正しい。
ハンガリアンが初めて文書化されたのは確か1991で
(自分の感覚では)比較的新しい

>>662
質問していい?なんで「Data」って付けるの?
664662:2005/07/05(火) 14:58:19
>>663
>なんで「Data」って付けるの?

え?なんとなくなんですが、、
まずいっすかね?
CMpa でいいのかな。
ちなみに私はもちろん実務経験なんてないですよ。
665663:2005/07/05(火) 15:26:25
>>664
私のほうは 変数が全てデータなのは当然である とか
クラスにはデータ(集合)と手続きの二面性があるからデータというサフィクッスを付けるべきではない
とかの理由はあるけど、「なんとなく」という情けない理由が返ってくるとは思わなかったw
命名の重要性を軽視していませんか?私がハンガリアンを嫌う理由の一つがこれです。
ハンガリアンにすると命名の重要性を軽視されがちとなる。
#煽っているつもりはないのですが
666デフォルトの名無しさん:2005/07/05(火) 15:48:53
>>665
うはwwなんか、ちゃんとした理由が帰ってきたww

>クラスにはデータ(集合)と手続きの二面性があるからデータというサフィクッスを付けるべきではない
これはよくわからないんですが、(私のレベルが低すぎて・・)
>変数が全てデータなのは当然である
ってのは「あー、そうかも。」って感じですねえ。
まだ余裕で修正がきく段階なので、Dataは外しておきます。
ども m(__)m
667デフォルトの名無しさん:2005/07/05(火) 21:52:11
実務経験のある人間は「ちょっとだけハンガリアン」を使う
ポインタにp付ける程度
668デフォルトの名無しさん:2005/07/05(火) 22:05:13
旧VBとかドトネトでコントロールにtxtPriceみたいにプリフィクスするのは
有意義な場合があると思うけどね。

あと特殊な例だとアドレッシングモードっていうかメモリ空間が複数あるような
マイコンチップのアセンブラ書くときにメモリ空間の種類をプリフィクスすると便利だな。
まあマイコンのアセンブラなんて隙間産業で働いてる奴はそんなに居ないと思うが。。
669デフォルトの名無しさん:2005/07/06(水) 00:33:07
ある変数がポインタかそうじゃないかなんて
その変数の使い方を見れば大体分かると思うんだが・・・
pを付ける利点が分からん。
670デフォルトの名無しさん:2005/07/06(水) 00:37:16
>>669 ヒント:実引数
671デフォルトの名無しさん:2005/07/06(水) 00:52:27
>>670
もったいぶらずに具体例で教えてよ。
672デフォルトの名無しさん:2005/07/06(水) 00:54:25
俺の場合、pだけは付けないとと落ち着かない。
673デフォルトの名無しさん:2005/07/06(水) 01:13:49
>>669
「わかる」というのと「明示的にわかる」というのは違うでしょ。
そりゃ遅かれ早かれコード読めばわかるよ、pなんて付けようが付けまいが。
ただ、そんな非生産的なことに脳力を割きたくないだけ。
674デフォルトの名無しさん:2005/07/06(水) 02:12:05
>669
例えば
 char hoge[10];
675674:2005/07/06(水) 02:33:35
途中でEnter押してしまった…

>669
例えば↓のhogeとphogeは、型は同じですが「違い」があります。
また、その「違い」には注意しないと、かなり痛い目に合います。
なのでpは付けるべきかと思うのですがいかがでしょうか。

 char hoge[10];
 char *phoge;

同じ理由で、pを他の(型を表す)プレフィクスとを同系列に語るのはどうかと思います。
例えばpを型とみなすなら、↓の書き方は変ですよね。
 char szHoge[] = "";
 char *pszHoge = "";
676デフォルトの名無しさん:2005/07/06(水) 17:06:06
>>675
そのhogeとphogeは型も違う。hogeはchar [10]型であって、char *ではない。
677デフォルトの名無しさん:2005/07/06(水) 18:10:40
>>1
>みんなだってポインタの先頭には「p」とか書くだろ?
書かないよ。せいぜいFILE構造体のポインタ「fp」くらいだ。
678デフォルトの名無しさん:2005/07/06(水) 22:05:55
>>675
今まで痛い目にあったこと無いんだけど、どんな痛い目にあったの?


文字列リテラルはconst char *で受け取るから書き換えるなんて出来ないし。
679デフォルトの名無しさん:2005/07/06(水) 22:44:03
結局情報量の話やと思うけどなぁ。
Xと書くよりはnXのほうが情報量が多い。
nXと書くよりはXIndex, XCountと書くほうが情報量が多い。
情報量とタイプ量のバランスをとればええんちゃうの。
680デフォルトの名無しさん:2005/07/06(水) 22:52:32
>>660
そんな変数名だけで殺意覚えてなんかメリットあるかなぁ?
他人の書いたソースなんか自分の考え方が違って当然で、
冷静に読めたほうがいいと思うけど。
いちいち自分の書き方と違うことに腹立ててたら仕事はかどらん。
681デフォルトの名無しさん:2005/07/06(水) 22:55:40
>>676
>char [10]型
Cにそんな型はないでしょ。ドトネトじゃないんだから。。
Cの配列はポインタのシンタックスシュガーって耳タコのネタじゃん。

ただ、>>675のご説はちょっとね。っていうか意味わかんない。

俺はポインタ変数にpをつけるのは意義がある、という立場だが、
それは「値」と「値への参照」では意味論的に全然違うわけだが、pXXXXは
この意味論的な違いを簡潔に表現する、しかもかなり一般化された(したがって
そのコードを読む者全員にその意味が通じることを期待できる)方法だから。
682デフォルトの名無しさん:2005/07/06(水) 23:02:50
>>681
配列のシンタックスシュガーは演算子の[]だけ。変数宣言には関係ありません。
http://www.kouno.jp/home/c_faq/c6.html#2
683デフォルトの名無しさん:2005/07/06(水) 23:22:03
>>682
何言ってんのそんなの当たり前じゃん。。
話の文脈がわからないのかな?
>>676をもう一度読んでくれ。話はそれから。
684デフォルトの名無しさん:2005/07/06(水) 23:25:39
>>683
だからさ、Cでもchar [10]という型は存在しうる。
あちこちですぐにchar *へ成り下がるけど。
685デフォルトの名無しさん:2005/07/07(木) 00:08:04
配列とポインタは同じに見えて違うところがちらほらあるからややこしい・・・
686デフォルトの名無しさん:2005/07/08(金) 00:24:11
で、>675があった痛い目って何?

と聞いてもムダか。
なんでこういう輩は具体的に聞くと逃げるのか?
687デフォルトの名無しさん:2005/07/08(金) 00:32:40
>>686
675じゃないし痛い目ってほどじゃないけど、sizeof(&hoge)とsizeof(&phoge)
は違う値になるよね?自分はpなんかつけないけど(型検査してくれる言語で型
を変数名に付けたくなる状況はそんなに多くないと思うんだけど)。
688デフォルトの名無しさん:2005/07/08(金) 07:49:18
あれ?sizeof &hogeはchar (*)[10]だからWin32では4になると思ったらVC7.1では10になるな。
#include <iostream>
#include <typeinfo>

int main()
{
  char Hoge[10], (*pa)[10];
  std::cout << sizeof &Hoge << '\n' << sizeof pa << std::endl;
  std::cout << typeid(&Hoge).name() << '\n' << typeid(pa).name() << std::endl;
}
689デフォルトの名無しさん:2005/07/08(金) 08:26:35
>>686
マジレスだけど、痛い目にはあってないんでしょ。
当然じゃん。

いつもポインタ変数にはpをつけることを習慣にしてるんだから、
痛い目なんてあいようがない。
690デフォルトの名無しさん:2005/07/08(金) 10:29:40
>>688
sizeof(&hoge)==sizeof(char [10])だよ。
691デフォルトの名無しさん:2005/07/08(金) 11:53:17
実体験から語ると、ハンガリアン記法も守ってない「俺仕様」のプログラムを
引継ぎしろなんて言われると死にそうになる。

>>660
ゲーム開発屋から言わせてもらうと、単純に「data」なんてかかれた変数名があったらそいつ殴りに行く。
バイナリーデータなのか、テキストデータなのかもわからん。
配列なのかポインタなのかもわからん。

いちいち宣言を参照しろだ?
時間に追われない趣味の人だけどうぞ。って感じ。

カーソルを合わせれば型情報が出る?
はぁ?プリントアウトもせずに読めるくらいの量しか扱ってないの?


つまり、ハンガリアンってのは「スピーディーに、実務で使うことを念頭に考え出された」技術。
理論上で言えば、型情報を意識しないで済む実装にこしたことはないに決まってる。
692デフォルトの名無しさん:2005/07/08(金) 11:59:43
プリントアウト(笑)
693デフォルトの名無しさん:2005/07/08(金) 12:28:43
ハンガリアン記法を支持する人のソースって、
変数の宣言個所と使用されている個所の距離が長いのかな?
694デフォルトの名無しさん:2005/07/08(金) 12:38:46
>>691
まあネタだと思うけど、必要なのは変数の「意味」がわかるような
命名をすることであって「型」ではないな。

>>693
ボケる方も馬鹿なら突っ込む方もアホだね。
そういう問題かよ。w
695デフォルトの名無しさん:2005/07/08(金) 13:04:55
ネタじゃねーよ。
そして「プリントアウト」で笑う理由がわからん。
引き継いだスパゲッティーソースはプリントアウトが基本だろ。仕事でやってるなら。

>>694
>必要なのは変数の「意味」がわかるような
>命名をすることであって「型」ではないな
ゲームだと、型が滅茶苦茶大事になるのね。

っていか、型情報が大事にならないようなきっちりとしたプロジェクトなら、
ハンガリアン使おうが使うまいが、命名がセンスあろうがなかろうが、どうでもいい希ガス
696デフォルトの名無しさん:2005/07/08(金) 13:09:09
>>694
変数の意味。
これはバイナリー配列のデータですよ。
という重要な意味を伝えるための記法こそが、ハンガリアンだろ。
697693:2005/07/08(金) 13:32:23
>>694
>そういう問題かよ。w
そうなんですか?。だとしたら
「なぜハンガリアンを使うのか」がわからなくなりました。
知っているなら回答下さい
698デフォルトの名無しさん:2005/07/08(金) 13:33:45
思うにハンガリアンな人はDirectX扱う人に多いと思う。
DirectXSDKとかnVidiaのサンプルにもハンガリアンなの多いし。
これらの要因を考えるに3Dには型が重要だからだと感じる
同じViewという変数があるにしてもあるときはベクトルでありまたあるときは行列かもしれない。
こういうときは変数名に型を指定してこそ、
WorldVector - ViewVector ベクトルの引き算だからViewからWorldへの方向ベクトルと意味が取れる。
WorldMatrix * ViewMatrix  行列の掛け算だから行列の合成と意味が取れる。
んで>>679にある情報量を保存したままタイプ量を減らすということで
ViewVectorならvViewのほうが楽や。
ViewMatrixならmatView さらに略すならmViewでも区別できるわちゅーことなんでは。

699デフォルトの名無しさん:2005/07/08(金) 13:39:53
正直なところ、型情報が大事にならないプログラムってのが想像つかないのだよ。
unsignedかそうでないかとか、超重要じゃん?

(JAVAにはunsignedが無いですか。そうですか)
700デフォルトの名無しさん:2005/07/08(金) 14:12:56
少なくとも静的型付け言語においては、型は重要です。
しかしこの命題から「ハンガリアンを使うべきだべきだ」
という結論が何故導き出されるのかが理解できなくて困っています
701デフォルトの名無しさん:2005/07/08(金) 14:44:22
ハンガリアン以上に、型を即座に理解できる方法があるなら支持する。
今のところ
・ハンガリアン
・エディタの参照機能

くらいしか思いつかない。
「すぐ上に書かれてるだろうから探せ!」はとてもじゃないがプログラマのセリフとは思えない。
ドカタプログラマ?と頭を疑ってしまう。

エディタの参照機能は強力だが、プリントアウトが必要な長大なソースの場合致命的だ。

さて、ハンガリアン以上の結論を楽しみにしている。
702デフォルトの名無しさん:2005/07/08(金) 16:13:26
うっせ
ハンガリアン使う奴は馬鹿って決まってんだよ
703デフォルトの名無しさん:2005/07/08(金) 16:18:34
>>701
>「すぐ上に書かれてるだろうから探せ!」はとてもじゃないがプログラマのセリフとは思えない。
>ドカタプログラマ?と頭を疑ってしまう。
ふーん。「探せ」という言い回しから
本当に探さなければいけないようなソースに塗れていることが想像できますね。
>エディタの参照機能は強力だが、プリントアウトが必要な長大なソースの場合致命的だ。
プリントアウトについてはこれを全くしないプログラマも多く、前提とか当然とか考えるのはいかがなものか
長大な関数/メソッドをメンテナンスしなければならないのはお気の毒です。
だが仮に長大な関数/メソッドの存在がハンガリアン使用の正当性を裏付けるものであったとしても、
長大な関数/メソッドの存在自体の正当性は何をもって裏付けますか?

>さて、ハンガリアン以上の結論を楽しみにしている。
「ハンガリアン以上の結論」を出す自信はありませんが。
長大な関数/メソッドを書く代りに、型情報については「すぐ上にあるから見ればすぐわかる」
という関数/メソッドを書く というのはどうでしょうか。
#どちらがどちらの代替案なんだかw
704デフォルトの名無しさん:2005/07/08(金) 16:30:22
> 長大な関数/メソッドを書く代りに、型情報については「すぐ上にあるから見ればすぐわかる」
> という関数/メソッドを書く というのはどうでしょうか。
魅力的な解決案だ。
メモリーとCPUパワーが潤沢な状況下では俺でもそう書く。

「昨今はメモリーやCPUパワーもありあまっているので、ハンガリアンは必要ない」
とでも主張したいのか?

逆に言えば「メモリーやCPUパワーが余っていない環境」ではハンガリアンは非常に強力なパワーを持つ。
なのにハンガリアン自体を否定する意味がわからん。

「いまどきCOBOLなんて使わねーよwwww」って言ってる馬鹿と変わらん。
ハンガリアン自体を否定したいのなら、後者のような環境でハンガリアンにとってかわる方法を提案してくれ。
705デフォルトの名無しさん:2005/07/08(金) 17:20:13
>>704
関数/メソッドの粒度を下げれば良いと言いました。
粒度を下げることによって確かに関数/メソッドの参照のオーバーヘッドは増加します。
メモリーとCPUパワーに余裕がなく、この種のオーバーヘッドも許容出来ない
と言う状況の存在自体が信用し難いものがあります。
そのような状況下で、なぜコンパイラ言語を使うかわからないからです。
いや信用しないわけではありません。
「そのような特殊な開発環境下ではハンガリアンが当然である」との表明にも反対はしません。
ハンガリアン自体の否定などしませんよ。ご自身の開発環境が特殊だと正しく認識しておられるならば
706デフォルトの名無しさん:2005/07/08(金) 17:31:48
なんのために705がこのスレにいるのか分からない件について。
707デフォルトの名無しさん:2005/07/08(金) 17:32:22
例えば携帯JAVAは?
708デフォルトの名無しさん:2005/07/08(金) 17:37:07
ヌルいというか、趣味でしかプログラム組んでないんだろうな。
ハンガリアンの是非はともかくとして、関数化を極力避ける環境が特殊って…。
湯水のごとく好き勝手できる環境のほうが特殊だよ。
709デフォルトの名無しさん:2005/07/08(金) 17:55:18
>>703
長大な関数なんかは、ハンガリアンに関係なく不可で関係ない。
1画面ですべて収まるような小さなクラスでもない限り、
メンバ変数の宣言とメソッドの実装ではどうやっても距離が離れると思うが。
710デフォルトの名無しさん:2005/07/08(金) 17:57:46
その一画面で全て収まるような小さなクラスを組み合わせて作れって言ってんだよ。
ハンガリアン人は本当に原始人だらけですねプゲラ
711デフォルトの名無しさん:2005/07/08(金) 18:04:13
俺はクラスのメンバには大体ハンガリアンを使う。
ローカル変数にはWinAPIの構造体1つを引数にするような関数用の変数とポインタのp程度しか使わない。
712デフォルトの名無しさん:2005/07/08(金) 18:05:08
今日は否定派のほうが頭悪そうやな。
713705:2005/07/08(金) 18:06:08
>>706
消えた方が良いですか?

>>708
私は職歴10年を超えるプログラマです。「どちらが特殊なのか」について議論する気はありません。
しかし「関数化を極力避ける環境が特殊である」という見解は変えませんが。
ご自分の開発環境が特殊だと言われて不愉快に思われたなら謝罪します。
しかし今現在、PCプラットフォームにおいてもその種の制限は無くなっています
参考のためにあなたの開発対象システムの「CPUとメモリ量」を回答してもらえませんか
714デフォルトの名無しさん:2005/07/08(金) 18:12:43
>>710
俺的にはクラスとは概念、機能とかでまとめていくものだと思っていたが、
1画面越えると分割していくものだったのか。
715デフォルトの名無しさん:2005/07/08(金) 18:38:08
>>709
ご指摘のとおり。
しかしながら、メンバ変数/クラス変数の問題について語り始めるとスレ違いになるのは避けられません。
「OOPLにおいてはハンガリアンは必須だ」というご見解でなければ、上の1行を回答とさせてください
716デフォルトの名無しさん:2005/07/08(金) 19:02:07
705は消えたほうがいいな。
ハンガリアンの是非について語るスレで「ハンガリアン自体の否定などしませんよ」といいながらハンガリアン批判しているんじゃ邪魔なだけ。
コウモリもいいとこだ。
717デフォルトの名無しさん:2005/07/08(金) 19:03:23
>>713
>>707のような携帯JAVAに限らず、今商売として成長中の携帯系プラットフォームでは
CPUやメモリを潤沢に使うことなんてできないのは覚えておいたほうがいい。
718705:2005/07/08(金) 19:18:00
>>716
「基本的には否定するが、特殊な環境下では否定しきれない」と言ったつもりですが。
了解。消えますよw

>>717
ああなるほど。勉強になりました。「特殊」と言ったのは言い過ぎでした。
ごめんなさい。
開発環境/動作環境の違いを無視して語ることは難しいテーマなのかもしれませんね。
719デフォルトの名無しさん:2005/07/08(金) 19:40:37
>>701
なんか倒錯してるねえ。。

コーディングの最中もし「型が知りたい」なんて思ってしまうとしたら、
それは変数名のセンスが悪いから。

さらに敷衍していえば、変数名のセンスが悪いのは、恐らくモデリングのセンスがないから。
対象をどのようにモデリングしているかに対するビジョンが明確じゃないから。
720デフォルトの名無しさん:2005/07/08(金) 20:37:26
>>719
具体的に>>698の例だとどんな変数名つける?
721デフォルトの名無しさん:2005/07/08(金) 20:46:26
>>719
>コーディングの最中もし「型が知りたい」なんて思ってしまうとしたら
他人のソースだから、当然思う。

>それは変数名のセンスが悪いから
センスのいい名前をつけろ! と言って新人がつけられるなら苦労しない。
だからハンガリアンというルール生まれた。

倒錯してるのは君。
ハンガリアン以上に「センスの無い人もある程度わかりやすい変数名をつけられるようにする」ためのルール」をしめしてくれよ。
722デフォルトの名無しさん:2005/07/08(金) 21:18:51
センスの無いやつはプログラム書かなくていいよ
723デフォルトの名無しさん:2005/07/08(金) 21:25:21
仕事したことの無い奴のセリフだな。
センスの無い奴もうまく扱うのが仕事人。
724デフォルトの名無しさん:2005/07/08(金) 22:01:17
結局ハンガリアン嫌いって、
俺のコーディングは素晴らしい!みんなもすぐ理解してくれるはずだ!
俺のソースはきれいだし。
ハンガリアンなんて使わないのが理想だもんな。俺コーディング最高!

な理想主義者なんだよな。
725デフォルトの名無しさん:2005/07/08(金) 22:02:59
>>723
ここは仕事人の板ではなくプログラム技術の板
726デフォルトの名無しさん:2005/07/08(金) 22:52:41
>>725
いつから「現実に即していない未来プログラム技術専用」の板になったんだ?
携帯プログラムや、組み込みプログラムのスレだってあるわけだが。
727デフォルトの名無しさん:2005/07/09(土) 00:04:15
クラスを、新たな型を定義しまくる近代プログラミングでは、
あまりに多くの型が出来るため、ハンガリアンではどうしてもムリが生じる。

ハンガリアンで即座に型を理解できる?ハハ面白いことを言うね。
728デフォルトの名無しさん:2005/07/09(土) 00:08:57
>>727
プリミティブはすぐわかるじゃないか
#と、反対派の俺が弱弱しく反論してみるw
729デフォルトの名無しさん:2005/07/09(土) 00:18:55
俺もクラスにはハンガリアンを適用しないときが多い。
730デフォルトの名無しさん:2005/07/09(土) 00:28:53
独自クラスのハンガリアン記法なんて用意されてるわけないだろうに(苦笑
731デフォルトの名無しさん:2005/07/09(土) 01:11:50
じゃあやっぱ役に立たんな
732デフォルトの名無しさん:2005/07/09(土) 01:15:52
>>731
独自クラスについてはプロジェクト内で拡張しろよ。
なんでお前がどんなクラスをつくるかを予測して、1から100まで先駆者が用意してると思えるんだ。
733デフォルトの名無しさん:2005/07/09(土) 01:18:51
独自クラスのハンガリアン記法なんていちいち覚えてらんねえよ
734デフォルトの名無しさん:2005/07/09(土) 01:38:10
クラスへ無理やり適用してるのは肯定派でもいないのでは。
あとプレフィックスが組み合わさるのもイマイチだと思う。
ということで配列のプレフィックスにa使うよりは複数形の単語を使うほうがよさそうに思える。
735デフォルトの名無しさん:2005/07/09(土) 01:39:38
二次元配列は?
うちの会社はbyte m_aabyData[10][10];とかやるけど。
736734:2005/07/09(土) 01:48:10
>>735
そっそ、おれもaaとかやってたけど、どーもなーと思う。
こーゆープレフィックスが重なることが反対派からみたら見づらいといわれる要因になってると思う。
代案はhoge2D[10][10]とか?反対派からのセンスあふれる代案希望。
737デフォルトの名無しさん:2005/07/09(土) 04:01:02
>> 736

hoge[10][10]

・定義部に変数の構造についてしっかりコメント
・上記変数を使う場合は添字に説明的な名前の変数or定数(列挙定数)を使う(+コメント)


つか、hogeが何に使われるものなのか分からないので名前は付けられない。


> m_aabyData[10][10];

・・・・。
いやね、それがちゃんとコーディング規約になってて
チームできっちり守られているならまあいいとは思うんだけどね・・・。
738デフォルトの名無しさん:2005/07/09(土) 09:17:12
しっかり守られてるなら、やっぱり
メンバー変数の、BYTE型の、二次元配列だな
と一目見て分かるのは強力だな
739デフォルトの名無しさん:2005/07/09(土) 09:49:02
サイズは?
740デフォルトの名無しさん:2005/07/09(土) 10:14:42
m_aabyData
・・・情報量がイマイチ
741デフォルトの名無しさん:2005/07/09(土) 11:15:10
IDEでもりもり作業してるので型なんてすぐわかります
742デフォルトの名無しさん:2005/07/09(土) 11:22:43
>>741
そのセリフはつまり、IDEでもりもり作業できればハンガリアンなんて必要ないってことだろ。
できない状況なら?
743デフォルトの名無しさん:2005/07/09(土) 11:24:35
ctagsとかglobalとか
744デフォルトの名無しさん:2005/07/10(日) 10:51:15
結局ハンガリアン否定論者は、実務を知らない理想主義者だったみたいだね。

研究所の博士が言うことは正しい。確かに理論上正しい。
だが実戦で使えるかどうかは別問題。

命中率99%を誇る銃とのたまったって、新兵が弾丸飛び交うジャングルで撃つ際その精度は保てない。
745デフォルトの名無しさん:2005/07/10(日) 11:08:09
結局ハンガリアン肯定論者は、実務を知らない理想主義者だったみたいだね。

マイクロソフトのハンガリ君が言うことは正しい。確かに理論上正しい。
だが実戦で使えるかどうかは別問題。

命中率99%を誇る銃とのたまったって、新兵が弾丸飛び交うジャングルで撃つ際その精度は保てない。
746デフォルトの名無しさん:2005/07/10(日) 11:16:21
ついにファビョッてコピペか…
747デフォルトの名無しさん:2005/07/10(日) 11:32:38
>>745
ハンガリアンは、そのルールが確定しているのだから新兵だろうがなんだろうが使えるだろうに。
「分かりやすくセンスのいい変数名をつけろ」なんて言われても、新兵はどうしていいやら。
748デフォルトの名無しさん:2005/07/10(日) 11:47:57
ハンガリアンしとけば変数名おざなりしてもいいと
おまえらは新兵の時に思っちゃったから、今の惨たらしい現実があるんだよ。

>744
研究所の博士とかどっから出てきたの。妄想乙
ハンガリアンは現場で生まれて、現場で消えていったよ。
749デフォルトの名無しさん:2005/07/10(日) 11:50:21
良い変数名をつける能力が無い。という問題に対して、
命名規則で杓子定規に決めてあげる。という発想自体が誤りだと思うな。
加えてハンガリアンてプレフィックスだけでそ。
変数本体の名称を決められないという問題は全然解決しないじゃないか。
ハンガリアンの存在理由のなかに「変数名を決める」は入っていないと思うけど。
入っているの?
750デフォルトの名無しさん:2005/07/10(日) 12:02:39
>>748
すげえ…例え話にマジツッコミいれてる…
751デフォルトの名無しさん:2005/07/10(日) 12:06:48
>>748
博士のたとえは、博士=非ハンガリアンじゃないか?

>>749
おいおい。

例えば「データ」を扱う変数名なら、新兵だって「Data」と名づけるだろ?
問題は「それはどのようなデータか」をどう伝えるかだ。

それをハンガリアンは「メンバー変数だからm_, BYTE型だからby, 二次元配列だからaa」と決めている。
じゃあ非ハンガリアンはどうするのか。
まずはこれを提示して欲しい。

「センスのいい変数名をつけろ!」と言われてつけられる。もしくはつけられるまで勉強だけしていればいい。
そういう状況ならなんら問題はないのかもしれんが…。
752デフォルトの名無しさん:2005/07/10(日) 12:19:03
センスの無い奴は首にすればいいじゃん。馬鹿?
753デフォルトの名無しさん:2005/07/10(日) 12:24:53
俺仕事でハンガリアン使ってるプロジェクト関わった事ないな
使われてるの?
754デフォルトの名無しさん:2005/07/10(日) 12:29:13
>>753
むしろ、ハンガリアンを使わずに済むプロジェクトってどんなのだ?
各自完全分業で、完全自社開発?
755デフォルトの名無しさん:2005/07/10(日) 12:38:28
あー・・・ハンガリアンを
「変数名に任意のプリフィクスを付ける命名法」という意味で言ってるのか?
756デフォルトの名無しさん:2005/07/10(日) 12:51:45
>>751
>例えば「データ」を扱う変数名なら、新兵だって「Data」と名づけるだろ?
付けない。Dataなんて変数名は良い変数名とはいいがたい

>問題は「それはどのようなデータか」をどう伝えるかだ。
あのさ、肯定派がそれを主張するのは勝手だけど、
既定の事実の様に記述しないでくれないかな。議論にならないじゃないか。
データ型が重要だという主張をしているってことは理解したよ
その重要性が変数本体の名称の重要性よりも高いのか低いのか
を回答して欲しいのだけれど

>それをハンガリアンは「メンバー変数だからm_, BYTE型だからby, 二次元配列だからaa」と決めている。
>じゃあ非ハンガリアンはどうするのか。まずはこれを提示して欲しい。
上記でそちらの主張を既定の事実の様に書くから、ここで「まずは」と書けるんだね。
ちょっと上を見ればすぐデータ型がわかるようなコードを書く。
上の方のレスを読んで、そのような事が出来ない人達がいることは判るけれど、
それが可能な環境ではそうする。
757デフォルトの名無しさん:2005/07/10(日) 13:19:31
> >例えば「データ」を扱う変数名なら、新兵だって「Data」と名づけるだろ?
> 付けない。Dataなんて変数名は良い変数名とはいいがたい
すげえ。断定だよ!
お前はおサルさんでも部下に持ってるのか!?(そこまでアホな奴には、非ハンガリアンなんてもっと無理だ!)

>ちょっと上を見ればすぐデータ型がわかるようなコードを書く。
あれ?その上では型はさして重要じゃないようなことを言っているのに、急に翻ったぞ??
「型」は重要なの?重要じゃないの?
ハンガリアン記法を使っている人間は、もちろん重要だと思っているよ。「変数本体の名称の重要性と同じくらい」ね。

>それが可能な環境ではそうする
まったくだね。
で、新兵にはなんて言えばそれを実行してくれるのかな?

ハンガリアン記法を新兵に守らせるのは簡単だ。
ハンガリアン記法を解説している紙の一枚も手渡せば明示的だ。

だが「ちょっと上を見ればすぐデータ型がわかるようなコードを書け」といってもなんら明示的ではない。
人によって10行上を「ちょっと上」と判断するものもいれば、100行上をそう判断するものも居る。

きっと君の意見をコンパイルするとこう怒られるよ。
「error: 'ちょっと上'の定義が曖昧です」
758デフォルトの名無しさん:2005/07/10(日) 13:32:02
とりあえず
ハンガリアン肯定派=変数の「型」を重視して命名
ハンガリアン否定派=変数の「意味」を重視して命名
でFA?

756ではないがハンガリアン否定派の俺としては
Dataなんて変数名はいかなる状況でもありえないと思う。
たいていの変数は何らかのデータを表しているわけで。
759デフォルトの名無しさん:2005/07/10(日) 13:41:48
class CSave{
int m_nAddress;
byte m_aabyData[][];
}

class CLoad{
int m_nAddress;
byte m_aabyData[][];
}
とかこんな感じ。
m_の上にはクラス定義があるのをお忘れなく。
760デフォルトの名無しさん:2005/07/10(日) 13:51:15
ハンガリアンで書いてあると激しく読みづらい。
なんでこんなもん使うのか理解できない。
定義にジャンプもできないクソエディタ使ってるから必要なんだろうな。
761デフォルトの名無しさん:2005/07/10(日) 13:52:38
aabyDataってバカか。au by KDDIかドアホ
762デフォルトの名無しさん:2005/07/10(日) 13:56:27
「ああばいでーた」ってなんかドイツ語っぽいね。
763デフォルトの名無しさん:2005/07/10(日) 13:59:29
>>760 >>741-742
>>761 感情論。具体的代案皆無
764デフォルトの名無しさん:2005/07/10(日) 14:02:56
>>763
糞環境の方が今や少ないんだから、
糞環境使ってるお前の会社内の掲示板内で
ハンガリアンは有効だと吼えてろよw

2chでピーチクパーチク囀るなw
765デフォルトの名無しさん:2005/07/10(日) 14:04:56
>>764
さすが妄想プログラマーw
理想的環境ばかりで働けるなら、さぞやプログラマーは楽な商売でしょうね。
研究所の中だけで吼えていてください。
766デフォルトの名無しさん:2005/07/10(日) 14:08:28
糞環境だけでしか働けない低脳の分際で吼えるってw
767デフォルトの名無しさん:2005/07/10(日) 14:10:04
>>765
つうか具体的に何の仕事に何年従属してるか教えてくれw

俺ゲームプログラマ5年目ね。
768デフォルトの名無しさん:2005/07/10(日) 14:10:06
糞環境になったら働けないプログラマなんぞ、ただのゴミじゃん。
俺仕様の世界でしか働けないなら、他人と連携とるのもままならん。
769デフォルトの名無しさん:2005/07/10(日) 14:11:25
なんだこのスレ
770デフォルトの名無しさん:2005/07/10(日) 14:12:48
>>768
バーカ
糞環境の古い常識を新しい環境に持ち込まれる方が今や迷惑なんだよ。
ハンガリアン付けないと働けないドアホが言うなw
771デフォルトの名無しさん:2005/07/10(日) 14:14:07
>>757
何を主張したいか全然わからん
772デフォルトの名無しさん:2005/07/10(日) 14:14:32
>>770
どこの誰がC#やJAVAにハンガリアン持ち込めなんて言ったんだ?
被害妄想もいいとこ。
>>1読め。
>C/C++みたく型付けが強い言語ではハンガリアンって有用じゃないだろうか。
と書かれてるだろが。
773デフォルトの名無しさん:2005/07/10(日) 14:17:54
>>772
>どこの誰がC#やJAVAにハンガリアン持ち込めなんて言ったんだ?

それはこっちのセリフだよw!
新しい環境=JavaやC# と俺言ったか?

反論すればいいってもんじゃねーだろw
774デフォルトの名無しさん:2005/07/10(日) 14:19:00
>>770
その糞環境の古い常識で作られたOS。実機上でプログラム組まさせてもらっている坊やがいきがるなよw
まさかVisualStudioはVisualStudio上で作られたとか思ってんじゃねーだろーなw

775デフォルトの名無しさん:2005/07/10(日) 14:20:26
>>758 同意。

ハンガリアン使いたい人は勝手に使えば?
776デフォルトの名無しさん:2005/07/10(日) 14:21:27
>>759

だからさ、そのクソクラスは何なの?
何に使うの?何のために使うの?
なんでm_aabyDataが多次元配列になってるわけ?

他人が読むってことをまったく考えてないでしょ。
ハンガリアン以前の問題だな。
777デフォルトの名無しさん:2005/07/10(日) 14:21:53
>>774
時代に付いていけない、永遠の坊やが何を言ってるのw

結論

糞環境の皆さんはハンガリアンを使ってください。
あなたの会社内でハンガリアンは有効だと主張してください。

しかし、2ch等の、一般的に非糞環境な人が多いところで
一生懸命ハンガリアンが有効だと吼えないでください。
778デフォルトの名無しさん:2005/07/10(日) 14:22:20
例につっこまれてもなぁ…。
779デフォルトの名無しさん:2005/07/10(日) 14:22:55
アホな例を出せばつっこまれるのはあたりまえ
780デフォルトの名無しさん:2005/07/10(日) 14:23:01
>>777
ここはハンガリアンについて語るスレなんだが。
「非糞環境について語ろうぜ」スレでも立てて、そこで吼えててくださいな。
781デフォルトの名無しさん:2005/07/10(日) 14:25:01
>>776
>だからさ、そのクソクラスは何なの?
>何に使うの?何のために使うの?
それはプロジェクトで決まってることだから、ハンガリアンとはまったく関係なし

>なんでm_aabyDataが多次元配列になってるわけ?
何かしらそうする理由があったんだろ。
例えばセーブデータが冒険の所ごとに分かれてるとか。
これまたハンガリアンとはまったく関係なし
782デフォルトの名無しさん:2005/07/10(日) 14:25:06
>>780
ハァ?反論できないといつもその手だなw
783デフォルトの名無しさん:2005/07/10(日) 14:29:24
>>782
その「いまさらCOBOL使ってるなんてアホじゃねーのwwww」という論法どうにかならんのか?
需要があり、金になるからまだCOBOLがあるわけなんだが。
784デフォルトの名無しさん:2005/07/10(日) 14:32:43
>>783
バーカ。
古い糞環境の奴らはハンガリアン使えばいいって言ってるだろw

それをさも本流かのように2chで喚くなと言ってるんだよw

古い資産を活用するためにはCOBOLは有効だけど、
新規開発するのに今更COBOLは叩かれて当然だろw
785デフォルトの名無しさん:2005/07/10(日) 14:35:39
言葉足らずだったな。
同様に、糞環境でプログラムを組んでもらう必要がある。そういう需要があるからこそハンガリアンはまだあるのではないのか?

「糞環境」な仕事を誰も引き受けなかったら、そのプロジェクトは一体どうなってしまうのやら。

>>784
?????
これほどの馬鹿は久々に見た。プログラムをやっている人間とは思えない非論理的な意見。
「さも本流かのように2chで喚くな」って、ここハンガリアンスレなんだが。

そして自分の中で「古い〜略」て結論がでているなら、もうこのスレに書き込む必要無いだろ。
786デフォルトの名無しさん:2005/07/10(日) 14:36:34
>>784
お前w
COBOLスレでCOBOLの話してるところに割って入って「いまさらCOBOLなんてアホwww2chでCOBOLの話なんてすんなwww」とか喚くのか?
787デフォルトの名無しさん:2005/07/10(日) 14:38:54
否定派「ハンガリアンは読み辛い」
肯定派「ハンガリアン守ってもらわないと変数型がすぐにはワカラン」
否定派「すぐにわかるようなコードにしろ」
肯定派「新人にはそんなコードは書けない」
・・・なんだか最後の意見は
「教育コスト負担を放棄するための方便としてのハンガリアン記法」
に聞こえるな。
788デフォルトの名無しさん:2005/07/10(日) 14:39:24
>>784
あー…。ちょっとすまん。
もしかして君は、CやC++でプログラムを書く時ハンガリアンを使わないのかね…?
789デフォルトの名無しさん:2005/07/10(日) 14:39:32
何言ってんだこのドアホ。こんなドアホ初めて見た。

ここはハンガリアン賛美スレじゃねーだろが
「ちょっと待て!ハンガリアン」スレだそ

ハンガリアン否定されたくらいで、糞環境と罵られたくらいで怒るなら
「ハンガリアン最高スレ!糞環境の中心でハンガリ愛を叫ぶ」スレ
でも立ててそこに引き篭もってろw
そこには手を出さないでやるからw
790デフォルトの名無しさん:2005/07/10(日) 14:42:58
>>789
だから、なんでハンガリアン自体を語るスレなのに「糞環境なのが悪い」とかそういう結論になるのだ?

・ハンガリアンは糞環境でしか役に立たない
という意見は
・ハンガリアンは糞環境で役に立つ
という意見と同義だろ?
791デフォルトの名無しさん:2005/07/10(日) 14:43:16
>>789
同意
#あんまり煽るとヨクナイよ
792デフォルトの名無しさん:2005/07/10(日) 14:43:44
>そして自分の中で「古い〜略」て結論がでているなら、もうこのスレに書き込む必要無いだろ。

よく考えろ低脳。
自分の中でハンガリアンが有効だと結論が出てるなら、
お前もこのスレに書く必要はないだろ。
793デフォルトの名無しさん:2005/07/10(日) 14:47:07
>>790
少し違う
・ハンガリアンは糞環境では役に立つ場合がある
794デフォルトの名無しさん:2005/07/10(日) 14:50:31
>>793
それもそーだなw

>>792
俺は「自分では有効だと思うが、それ以上の代替案があるなら知りたい」と思ってるんだが。
795デフォルトの名無しさん:2005/07/10(日) 14:52:09
>>790
だからねぇ坊や。「糞環境なのが悪い」とか結論出してないでしょ。
勝手に意見捏造すると話が進まないでしょ。

糞環境の人でハンガリアンが有効だと信じてる方は使ってくださいね。

2chでハンガリアンが有効だと主張するときは
まず自分の環境は今時の水準からすると糞なのだと念頭に置いてください。

そして、最新の環境ではハンガリアンは害悪にしかならないということも頭に入れてください。
796デフォルトの名無しさん:2005/07/10(日) 14:53:57
797デフォルトの名無しさん:2005/07/10(日) 14:56:26
>>795
>そして、最新の環境ではハンガリアンは害悪にしかならないということも頭に入れてください。
つまり、例えば君がオープンソースでソースコードを公開するとき横にこう書かれるわけだ。
「最新の環境でソースを読んでくださいね」

( ゚Д゚)…
798デフォルトの名無しさん:2005/07/10(日) 14:59:27
たくましい想像力による間抜けな反論だな。
799デフォルトの名無しさん:2005/07/10(日) 15:00:00
>>796
言いたいことがあるなら、はっきり言えばいいのに。

もうグゥの音も出ないってこと?
800デフォルトの名無しさん:2005/07/10(日) 15:00:55
>>797
( ゚Д゚)…

それが反論になってると思ってるの?
801デフォルトの名無しさん:2005/07/10(日) 15:02:42
ハンガリアン否定派
・最新の環境の前ではハンガリアンは無意味。読みにくくなるだけ

ハンガリアン推奨派
・最新の環境だけで仕事できるわけでもあるまいし、ハンガリアン全否定する必要なくね?

ハンガリアン否定派
・全否定はしないよ。糞環境でがんばってくださいねw

ここで煽るからこじれる。
802デフォルトの名無しさん:2005/07/10(日) 15:04:38
違う違う

ハンガリアン否定派
・最新の環境の前ではハンガリアンは無意味。読みにくくなるだけ

ハンガリアン推奨派
・最新の環境だけでしか仕事出来ないのかよ?

ここで煽るからこじれる。
803デフォルトの名無しさん:2005/07/10(日) 15:07:12
>>802
いや、そこは見事なまでにつっこみ所だろ。
804デフォルトの名無しさん:2005/07/10(日) 15:08:27
頭の古いのは怖い。
まぁ周りには居ないからいいけどさぁ。
もし最新環境でハンガリアンしてたらぶっ殺すよ。
805デフォルトの名無しさん:2005/07/10(日) 15:10:13
最新の環境でしか出来ない訳じゃねーんだよね。
もうそんな機能がついたモノが出てから何年経ってると思ってるのかと。
新しい環境に適応できない生物は滅びるよ?
806デフォルトの名無しさん:2005/07/10(日) 15:12:08
「winな人達」がハンガリアンの呪縛から解放されつつあるのが心底嬉しいな
807デフォルトの名無しさん:2005/07/10(日) 15:13:24
常にIDEで作業できる人間はいい…。
ぬるい環境(別に馬鹿にしているわけではない。俺だってぬるいほうがいい)から見下ろして「いまさらあんなこと(ハンガリアン)やってるよww」
とか笑ってられるうちが華よ。

「ソースコードは持ち出し禁止です。プリントアウトしたものを持っていってください」
なんてプロジェクトに当たらないといいな。俺も当たりたくなかったw
808デフォルトの名無しさん:2005/07/10(日) 15:16:48
あんまり開発環境は関係ない気がするけど。。
809デフォルトの名無しさん:2005/07/10(日) 15:18:14
>>781
ほんとハンガリアン以前の問題だな。
その例でも実際のソースでも型情報だけ明示的になっても意味ねーだろがバカw
代案もクソもねーだろw

何のためなのかを伝えることが疎かになってるっつってんだよ。
810デフォルトの名無しさん:2005/07/10(日) 15:18:52
そうそう。>>807読んで「何それw意味わかんねーよw」とか言うなよ?
俺だって意味わからんから。
一度詰め寄ってみたけど「規則ですから」しか返ってこねーし。規則決めた人間もう会社にいねーしw

しかしすまん。ハンガリアンと直接関係ないな。
興味持ったらプログラマー板にでもきてくれ。
811デフォルトの名無しさん:2005/07/10(日) 15:28:39
漏れも以前はハンガリアン派だったけど、昔のコードを
見直したら意外にプリフィクスが見難かったので脱退した。

英単語に余計なもん付いてると読みにくいよホント(´・ω・)
812698:2005/07/10(日) 16:19:37
ハンガリアンだから変数の意味を軽視というのには賛成できんな。
十分に意味が取れる変数名をつけつつ、
必要なときに一目で型をわかるようにつけるというのがおれのスタンス。

IDE環境があるといってもデバッグするときなんかは現在実行中のコードから
どこにもとばずに一目で型がわかるほうが断然便利かつ早くコード追えるとおもうけどな。

で、>>736でもある俺は見づらくなるようなプレフィックスが重なる命名は反対。
ただ変数の宣言方法が
extern int hoge;であるからスコープ、型、意味と同じ順番で命名するハンガリン
はそれほど見づらくないと思うのだが。
こーゆーのは主観的な慣れの問題で
for(){
じゃなきゃいやだとか
for()
{
のほうが読みやすいとか主張するよりも、自分がどちらでも楽に読めるようにしておくほうが
他人と仕事する上でははるかに有利だと思うのだが。
一般的に何かを否定するよりも、自分と違う考えを理解しようとするほうがはるかに重要なことだと思う。
813デフォルトの名無しさん:2005/07/10(日) 16:35:35
>自分と違う考えを理解しようとするほうがはるかに重要なことだと思う。
同意だが。
ハンガリアンを規約として位置付けることは多い。
このことはその見解からするとNG?
814デフォルトの名無しさん:2005/07/10(日) 16:39:23
>ハンガリアンを規約として位置付けることは多い。

本当?どんな業界でどれくらいのプロジェクト見てきたの?
815デフォルトの名無しさん:2005/07/10(日) 16:47:56
>>814
757に実例が書いてある。規約化の現実の有無がそんなに重要か?
816デフォルトの名無しさん:2005/07/10(日) 17:31:01
815=813 ?

>ハンガリアンを規約として位置付けることは多い。

少なくとも複数の業界・会社を渡り歩いて数多くのプロジェクトを見てこないと
こんな発言はできないと思うけど。

答えないってことは大して見てきてないんでしょ?
なんでそんな嘘つくの?


>規約化の現実の有無がそんなに重要か?

規約化もされていないのにハンガリアン使ってるの?
重要かどうかはあんたの現場がどんな形態で開発しているか
よく分からないからなんとも言えないんだけど、一般的に言って重要でしょ。

俺の現場では色んな会社の色々な年齢の人たちと一緒に開発してるから
ハンガリアンなんて知らない人も多いよ。
そこで規約化もされてないのにハンガリアンなんか使ったらどうなると思う?
817デフォルトの名無しさん:2005/07/10(日) 19:34:54
>>816
多いからこそハンガリアンというものが一般浸透したわけで。
少ないならそもそも普及してないだろ。

>そこで規約化もされてないのにハンガリアンなんか使ったらどうなると思う?
「おや、おもしろいコーディングですね。へえ、確かに一目で型などがわかって便利ですね^^」

ってなると思う。
「見づらいからつけるな!」って言われる率よりはね。
論理的に規則が決まっており、可読性があり、長い年月使われてきただけの威力がある。
わざわざ「なんとなく見づらいから」という理由で全否定する人間のほうが少ないと思うんだがなぁ。
818デフォルトの名無しさん:2005/07/10(日) 19:54:53
>>817
それは思いこみだと我は思いこむ
819デフォルトの名無しさん:2005/07/10(日) 19:59:10
しかし、一時はみんなハンガリアンを守れと言われていたほどまでメジャーな規則。
それはやっぱり、当時のプログラマ達から支持されていたからだろ?
(ここは否定されるところではないよな?)

最近は「ハンガリアンを使わなくても大丈夫そう」という環境にシフトしつつあるから、ハンガリアンを捨てようとしているわけで。
820813:2005/07/10(日) 20:04:06
誰も俺の質問に正面から答えようとしない・・・
規約にしているプロジェクトを二つばかり目撃したから質問したのに
俺の目撃したプロジェクトはレアケースで規約にしているところなんか殆ど無いの?
はぐらかしのレスばかりで嫌になるぜ
821デフォルトの名無しさん:2005/07/10(日) 20:26:10
>>820
少しはまわりのレスを読め。
少なくともうちは規約にしてるよ。
822813:2005/07/10(日) 20:34:24
>>821
おぉぅ。有難う御座いました。
>>698氏にも答えて欲しいな。
「書いたことは一般論であって実務では話は別」なんていう回答じゃなきゃいいけど
823デフォルトの名無しさん:2005/07/10(日) 20:40:28
698は別に質問してるわけじゃないと思うが。
タイプの量というよりは、ViewVectorとかかれると、型がVectorなのかただたんにベクトル量を表す別の何かなのかが区別つかない。
824デフォルトの名無しさん:2005/07/10(日) 21:28:21
WorldMatrix,ViewMatrixは分かるが
WorldVector,ViewVectorって意味不明な例作るなよと
825デフォルトの名無しさん:2005/07/11(月) 11:55:44
>>819
>一時はみんなハンガリアンを守れと言われていたほどまで
「みんな」という部分は否定しておこう。
826デフォルトの名無しさん:2005/07/11(月) 22:51:25
ハンガリアンなんてMS社内でも意見が分かれてたじゃないか
827デフォルトの名無しさん:2005/07/12(火) 00:36:42
ハンガリアンのほかは、台頭すらしてこなかったじゃないか
828デフォルトの名無しさん:2005/07/13(水) 00:59:20
そもそもハンガリアンが言うほど台頭してたのか?
してないでしょ。
829デフォルトの名無しさん:2005/07/13(水) 03:05:26
ちと興味深い話が。

Radium Software Development "050704 - Hungarian Notation (1)"
ttp://www.radiumsoftware.com/0507.html#050704
830デフォルトの名無しさん:2005/07/13(水) 09:02:36
>>828
少なくともプログラマーという職業についていれば、一度は聞いたことがあるくらいには台頭しているぞ。
831デフォルトの名無しさん:2005/07/13(水) 23:01:58
>>829
かなり興味深い内容だね。

特にここ。

>本来 Simonyi 氏が意図していたのは,言語の仕様として存在する「型」
>ではなく,その変数が持つ「意味」や,その変数が利用される「用途」
>などのように,言語の仕様としては扱うことのできない付加的な情報を
>与えるというものだった。

このスレのハンガリアン使いにリンク先をしっかり読んでもらいたいね。


ただ、このリンク先を読むと、例え本来の意味のハンガリアン記法でも
使用すべきでない記法であるということ分かる。
832デフォルトの名無しさん:2005/07/13(水) 23:06:20
>>830
有名だからといって多数の現場で使用されているとは限らんのだよ。
833デフォルトの名無しさん:2005/07/13(水) 23:22:50
旧VBでは、ハンガリアン、てか、型プレフィクスがデフォだった希ガス。

Dim strHoge As Integer

とかたまにあって殴りたくなったけどw

ただまあ、あれも使っているときは(標準コントロールの類に関しては)
判り易かったけどなあ。

今でも、コマンドボタンとかcmdHogeとかつけたくなるよ。つけないけどw

(レベルの低い話ですまんね)
834デフォルトの名無しさん:2005/07/14(木) 00:23:12
>>832
話ずれてる
835デフォルトの名無しさん:2005/07/14(木) 00:31:25
>>834
妄想くらい許してやれよ。
結局ハンガリアン否定派なんて、まわりに足並み揃えるのが嫌いな俺仕様糞グラマなんだから。
836デフォルトの名無しさん:2005/07/14(木) 00:38:28
足並みを揃えた結果、ハンガリアンは使わないことになったんだが。
低脳は困るな。
837デフォルトの名無しさん:2005/07/14(木) 01:07:36
なんだやはりハンガリアンて「伝言ゲームバグ」の実例だったのか。
笑える。Water Fall 開発モデルの場合と同じじゃないか
838デフォルトの名無しさん:2005/07/14(木) 07:30:47
やれやれ。
>ハンガリアンを使わないことになった
どこが?
C#やJAVAでってこと?そりゃそうだ。

CやC++でソース書くなら、羞恥心をもっているならばハンガリアン否定なんてしないこったな。
839デフォルトの名無しさん:2005/07/14(木) 08:57:08
なんでC#とJavaではやらないのに、C,C++ではやるという低脳なことになるの?

どっかのバカはハテナ日記で、
C,C++は名前が衝突するから、
とかバカなことほざいてたな。
あれどこだっけか。

class Number{};

void foo(){
int Number; //ここで衝突する int nNumberとすれば衝突しない
}

とかこんな感じの糞頭悪い奴だった。
840デフォルトの名無しさん:2005/07/14(木) 09:49:49
それはアホだな。
だがアホな利用者もいるのが普及品の宿命。普及品自体がアホなわけではない。

で、なんでC#とC,C++はまったく違う概念でできているのに同一視してるの?
841デフォルトの名無しさん:2005/07/14(木) 15:09:40
>>698
ViewVector ってのはビュー座標系での位置ってこと?
なら PositionInViewSystem とかかな。
ローカル変数なら posInView くらいだけど。

WorldMatrix * ViewMatrix も何したいのかわからないな
LocalWorldTransform * WorldViewTransForm のことかな?
ローカルなら lwmat * wvmat くらいなもん。

vView なら posView とか dirView とか。

だから意味や用途を明示してくれ。
n とか us とかなじゃくて idx とか cnt とか。
v じゃなくて dir とか pos とか deltapos とか。


ところで、IDE 使わない人たちも、grep や ctags くらいは使える環境なんでしょ?
842デフォルトの名無しさん:2005/07/14(木) 16:14:08
>>833
>Dim strHoge As Integer

きっと strawberry hoge (であってほしい)
843デフォルトの名無しさん:2005/07/14(木) 16:30:10
strHoge = strong hoge
844デフォルトの名無しさん:2005/07/14(木) 22:21:54
使いたい奴は使えばいい
845デフォルトの名無しさん:2005/07/14(木) 23:27:09
ハンガリアン支持者はずっとそう言ってるな。
C#やJAVAでまで使えなんていわないし。

ハンガリアン否定派が、なんか世界から殲滅しなきゃ気がすまないくらい叩いてる。潔癖か?
846デフォルトの名無しさん:2005/07/14(木) 23:41:20
潔癖なつもりはないけど。
個人的な理由を書くと「ハンガリアンを使ったソースをメンテナンスするのが嫌だ」
847デフォルトの名無しさん:2005/07/15(金) 00:13:39
正直な所、ハンガリアンの実害は「可読性の低下」とそれに起因する害だけなのだから、
そんなに目くじら立てなくても…と思うのだが。
(他にもっと害があると言うのならば教えてクレ)
848デフォルトの名無しさん:2005/07/15(金) 00:16:10
>ハンガリアンを使ったソースをメンテナンスするのが嫌だ
これがよくわからん。

「m_aabyData」
とあったとして、非ハンガリアンは「大文字の部分から後ろだけ見ればいい」んだが、
そんなに可読性が低下するのか??
849デフォルトの名無しさん:2005/07/15(金) 00:27:08
迷惑なんだよ。他人が読むってことを考えてないやつが多い。
効率良いと思ってやってるかもしれんが他人には違うってこと。
850デフォルトの名無しさん:2005/07/15(金) 00:30:22
>>847
可読性低下すんの?
851デフォルトの名無しさん:2005/07/15(金) 00:55:31
>>848
「最初の大文字」を捜すのがめんどい
852デフォルトの名無しさん:2005/07/15(金) 00:58:57
>>848
>>850
ハンガリアン記法部分を適当な文字列に置き換えたソースが読みやすいかどうか試してみたら?
その例だとm_aabyの部分ね。y_ddtoDataとかね。



ハンガリアン使いはこんなやつらばっか。

853デフォルトの名無しさん:2005/07/15(金) 01:06:39
ハンガリアンをーしらないー人にはーm_aabyはーいみのあるーもじれつにー見えないの。
意味のないー文字列がーへんすうにーついてるーソースコードがー読みやすいとーおもってんの?
854デフォルトの名無しさん:2005/07/15(金) 01:14:22
結局自分が嫌いやからあれこれ難癖つけてるだけやろ。
先に感情があってあとから理由を考えてるわけや。
855デフォルトの名無しさん:2005/07/15(金) 01:14:59
いや。「変数名称に型情報を付ければ読みやすくなる」というようなソースが嫌なのだ
856デフォルトの名無しさん:2005/07/15(金) 01:27:53
んじゃこういうことやな。
日本人にとって英語はわからん。
アメリカ人にって日本語はさっぱりわからん。

んで文字から発音がわからんとは糞言語だ!
ひらがなカタカナ漢字と多すぎるのは糞言語だ!
と罵り合ってる訳やな。

自然言語なら国別で分かれてるから日常問題となることは少ないんやけど
プログラムなら仕事でぶつかる機会が多いわけやな。
857デフォルトの名無しさん:2005/07/15(金) 01:36:15
>>847

>正直な所、ハンガリアンの実害は「可読性の低下」とそれに起因する害だけなのだから、
>そんなに目くじら立てなくても…と思うのだが。

「可読性の低下」ってプログラムにとっては致命的な欠陥だと思うけど。
書きっぱなしのプログラムなんて少ないんじゃないかなぁ。
858デフォルトの名無しさん:2005/07/15(金) 01:54:06
違う。読みやすさ/判りやすさというのは主観であって、
ハンガリアン使えば読みやすくなるという主観の押し付けが不愉快なのだ。
私の主観はハンガリアン使っていても使わなくても充分読みやすく感じるのが、読み易いソースだ。
変数命名をハンガリアン等で工夫しただけで読みやすくなるソースなど無い
859デフォルトの名無しさん:2005/07/15(金) 02:01:12
ちゅーかこんなところで変数名の例だけ出しても意味なくない?
例として出してるのも一般性を持たせようとhogeとかdataとかにしてるように見える。
で、実際の使用には一般性なんかいらないわけで。

ハンガリアンを使わない例として>>737を見ても
hoge[10][10]なんてまったく意味わからん。

>>841なんかはわかりやすいと思うが別にハンガリアンのプレフィックスついて
vPositionInViewSystemでも困らん。
かといって俺も自分の知らんプレフィックス出てきたら深読みしようとして困るんやね。
kHogeHogeってついてたらkってなんやねん?みたいな。
あぁconstか、とわかればそれ以降困らないけど。

ちゅーことでお互いの落しどころとしては、
一覧表みたいなのを目につきやすい所に書いておく。
クラスごとに新しいプレフィックスは作らない。
ってところちゃうの。
860デフォルトの名無しさん:2005/07/15(金) 02:13:59
>>856
何が言いたいのか良く分からない。

お前は関西人にしか分からない言葉を
関西人かどうかも分からない人に対して使うか?

相手が関西人なら、または独り言で呟くなら何も問題ない。
でも相手が関西人じゃなかったら?

知識を共有しているかどうかってことが大事。

で、無意識的に知識を共有させようとするのがハンガリアン使い。
だから嫌われる。
861デフォルトの名無しさん:2005/07/15(金) 02:19:51
方言までつっこむかー。
広島弁やら博多弁やら土佐弁で書かれた本や漫画なんてなんぼでもあるやん。

標準語が明治以後に人工的につくられた言語であるのに対して、方言には血と心が通っている。
標準語が全国を覆っている無機的なコンクリートであるとすれば、方言は有機的な言葉であって、
青々と繁る草や、樹木のようなもの。方言こそが本当の日本語。
862デフォルトの名無しさん:2005/07/15(金) 02:27:33
>>861
え・・・?
酔っ払ってるんですか・・・?
た、例えですよ!
意味を考えてください意味を!
863デフォルトの名無しさん:2005/07/15(金) 08:16:39
>ハンガリアン否定派が、なんか世界から殲滅しなきゃ気がすまないくらい叩いてる。潔癖か?

とか言うてるけど、否定者の俺は、俺と関係無いところでは自由に使えと言ってる。


肯定者が「C/C++で使わない奴は協調性が無い」とかアホなこというから、
その考えを世界から殲滅しなきゃ気がすまないくらい叩いてるんだよ。

C/C++のオープンソースでハンガリアンとか見たことねぇよボケ
864デフォルトの名無しさん:2005/07/15(金) 10:26:33
まっとうな app hungarian なら従うだろうが、
aaby とかあまりにもくだらないのを押し付けられるのは嫌だな。
865デフォルトの名無しさん:2005/07/15(金) 11:37:44
えーっと…。
ハンガリアン使わないときの可読性低下については無視なのか…?

SaveData

って変数があった時、これをどうしろというのだ。
実装者には分かるのかもしれんが…。
866デフォルトの名無しさん:2005/07/15(金) 11:41:30
>>863
ほい
ttp://www.kumei.ne.jp/c_lang/sdk/sdk_74.htm
Windowsプログラマーのお伴「猫でもわかるプログラミング」から。
ハンガリアンだらけのオープンソースですが何か?

選んだ章は適当に目に付いたものを選んだ。他意はない。
他の章ももちろんハンガリアンだらけだ。
867デフォルトの名無しさん:2005/07/15(金) 11:45:21
>>860
非ハンガリアン
 → いつものマクドナルド行こう

ハンガリアン
 → 新宿一丁目のマクドナルドに徒歩で行こう

どっちが知識の共有を求めているのやらw
そりゃ「いつもの」という知識が共有されているなら、ハンガリアンは冗長なのかもしれん。
だが相手が「いつもの」を理解している保証なんてねーんだよ。
868デフォルトの名無しさん:2005/07/15(金) 11:47:22
なんで変数名を文章に対応させてんだよ。
869デフォルトの名無しさん:2005/07/15(金) 11:52:34
分かりやすいと思ったから。
870デフォルトの名無しさん:2005/07/15(金) 11:54:46
やすくないし。
871デフォルトの名無しさん:2005/07/15(金) 11:59:06
非ハンガリアン
→ これはセーブデータを司る変数です

ハンガリアン
→ これはセーブデータを司る変数です。
   このクラスのメンバー変数です。
   byte型の二次元配列です。

ハンガリアンの方が情報量が多く、明示的。
「情報量が少なくいほうがいい」なんて、プログラマとしてどうかと思うぞ。
872デフォルトの名無しさん:2005/07/15(金) 12:03:55
「byte型の二次元配列」なんて情報がいったい何の役にたつのか。
873デフォルトの名無しさん:2005/07/15(金) 12:56:15
>>872
想像力の欠如した馬鹿
874デフォルトの名無しさん:2005/07/15(金) 13:08:53
>>872
Streamにそのまま流して大丈夫なのかどうか
添え字
解放する際の手順

ぱっと思いつくだけでこれだけある。
875デフォルトの名無しさん:2005/07/15(金) 13:55:13
>>865
ハンガリアンはプリミティブ型にしか適用しない物だと思ってたけど……
SaveDataがBYTE配列と言われればそれまでですがw

あ、プリミティブ型かクラスかを識別するのには使えるかもしれない。
876875:2005/07/15(金) 14:02:09
SaveDataってのが出てきたときに知りたいのは、
 SaveDataがなんと言うクラスの変数であるか
ではなくて
 SaveDataに対して何が出来るのか(タイプになるのかな)
ではないのでしょうか。だからこそハンガリアンで変数の型が分かっただけでは
余り意味がなくて結局クラス定義まで戻らないといけない。

名前付けが重要と言うのは、名前を見ることによってそいつに対して適用可能な操作が
分かりやすい、という側面があるのでは。

逆にそういうタイプの情報が不要でむしろ変数型が重要(signedとかunsigned)なプリミティブ型
について言えば、ハンガリアンの有用性は否定できないと思います。

ただゲームとか組込でなければ、厳密な使い分けをするほどではない?ということで
そういう業界以外(業務システム開発など)では「イラネ」となっているのでは。
877デフォルトの名無しさん:2005/07/15(金) 14:12:45
SaveDataはプリミティブな型だよ。
だからこそハンガリアンの引き合いに出したわけで。

クラスに対する記法は、ハンガリアンでは定められていない。
ハンガリアン否定論者は、バイト配列とかに一体どういう名前を付けているのか不思議でたまらない。
878875:2005/07/15(金) 15:15:52
>>877
やっぱりバイト配列だったんですね。
私がつけるとすれば、memoryBlock / rawMemoryBlockとかあたりでしょうか。

ただ少なくともバイト配列がSaveDataであるってのは、ハンガリアン以前の
レベルですよね。データ抽象の観点からして。

本来的に言えば、class SaveDataのメンバ変数にBYTE[]があるという位置付けに
なると思います(クラス名SaveDataが適切かどうかの問題もありますが)。
879デフォルトの名無しさん:2005/07/15(金) 18:42:41
その理屈すごくね?
それができるならハンガリアン推奨派だってそうするってのw クラスが嫌いなわけじゃないんだから。

それにクラスの中には結局Byte配列があるわけで、それにはどういう名前つけるのよ。

問題は「バイト配列を作ることになった時に、それにどういう名前をつけるか」だ。
880デフォルトの名無しさん:2005/07/15(金) 19:18:33
呼び名も決めずに入力を開始するからDataなんて名前にしてしまう と思われ
881デフォルトの名無しさん:2005/07/15(金) 19:33:49
>>879
あれ、そんなに変だったでしょうか。まあ構造的に問題があるのは
ハンガリアンとは関係ないので例として良くなかった気はします。

>それにクラスの中には結局Byte配列があるわけで、それにはどういう名前つけるのよ。
一応書いておいたつもりでした:memoryBlock 又は rawMemoryBlock

ハンガリアン記法にするか否かの条件以外は全て完全に固定である
と言う前提であれば、型情報がついていてもいいかもしれませんね。
どっちにしてもわかんないのでw

この問題に関して言えば、ハンガリアンでどうこうできるレベルを
超えているのではないかというのが正直な印象です。
882デフォルトの名無しさん:2005/07/15(金) 20:27:19
誰かが君のクラスのソースを見たとき。
「memoryBlock?なんだそりゃ?」
ってなるのを防ぐのがハンガリアンなんだよ。

そりゃ最近は「パーツ化」が進んでいて複雑にはなりにくいよ?
でもね。パーツ化しまくれない環境ってのもまだまだあるわけさ。
883デフォルトの名無しさん:2005/07/15(金) 21:11:07
ハンガリアンでも「なんだそりゃ?」はおんなじ。
自分が「なんだそりゃ?」って思わないからといって、他の人も同様だと思うこと自体が誤り。
その種の誤りはハンガリアン肯定派の論理によくみられる。
自分が読み易いなら、他の人も読み易いはずだ
という論理ね
884デフォルトの名無しさん:2005/07/15(金) 22:07:22
意味わからん。

結局ハンガリアン否定論者は「なんとなく見づらい」という感情論しかないわけ?
ハンガリアン支持者の「情報の取捨選択について読み手に選択肢を与えるために気をつかうべし」という論理とはだいぶ違うね。
否定論者は、もっと論理的な何かしらの理由を持っているものだとばかり思ってたよ。
885デフォルトの名無しさん:2005/07/15(金) 22:17:23
俺はハンガリアン支持だ。
だが、ハンガリアンを使わなくて済むならそれにこしたことはないと思っている。

具体的には、クラス化が遠慮なく行えるような状況だ。
ネット上である程度実力のあるプログラマーが、ハンガリアン否定をしている場合がある。
が、それは全て俺と同じくC#やJAVAのような、カプセル化が容易な環境においての話だ。

決して「なんとなく見づらいから」とかいう糞みたいな理由ではない。
ハンガリアンを使わなくていい環境を支持しているだけだ。

そのことを理解せずに「俺はなんとなく見づらいからハンガリアン嫌いなんだよな。有名な○○さんも否定してるし、やっぱりみんな見づらいと思ってるんだ」
と喚いているクズ。それがこのスレのハンガリアン否定派。
886デフォルトの名無しさん:2005/07/15(金) 22:29:34
無限ループに迷い込んだみたいだ。
887デフォルトの名無しさん:2005/07/15(金) 22:31:27
とりあえず宮坂電人には笑われてもらおう
888デフォルトの名無しさん:2005/07/15(金) 22:38:06
論理的な理由?主観じゃなくて?
そんなもの無いってば。gotoを否定するのと同じだよ。
goto使わない理由なんか論理的に証明できなくても、
「自分が見辛い」これで充分だと思うけど。
読むのはいいけど書くのはいやなんだ
889デフォルトの名無しさん:2005/07/15(金) 22:56:08
>>874
何れも用途を表わすまっとうなハンガリアンを用いて相応しい関数やマクロで処理すべき内容。
aaby のようないろいろ足りないハンガリアンを使うべきではない。
890デフォルトの名無しさん:2005/07/15(金) 22:59:12
VBScriptとか型情報が弱い言語なら意味あるだろうけど
C/C++で使ってるのはもうね、アホかと
891デフォルトの名無しさん:2005/07/15(金) 23:04:39
>>889
色々足りてるハンガリアンを提示してみてくれよw
892デフォルトの名無しさん:2005/07/15(金) 23:05:55
>>890
逆だろ。
型付けが強いからこそ、必要なんじゃないか。
893デフォルトの名無しさん:2005/07/16(土) 00:25:11
もういいじゃん。
それぞれ、適用する環境が違うってことで終了じゃないの?

俺はJava/.NETばっかやってるけど、クラス/メソッドの分割で
一度に実行する処理を小さく小さく記述するから、
ハンガリアンは全く焼く煮立たん。
上の方にも同じことが書いてあったが、すぐそばに型の定義があるから。
唯一クラスメンバにのみm_とか_とか付けたりするが。

また、何かしらの理由でくそ長いメソッド書く必要があるなら、
ハンガリアンは有用だろうなとも思う。
正直、そんなプログラム組みたくないけどな。

どちらにしろ名前は非常に重要だ。
時間を書けて「名は体を表す」変数/クラス名を付けるべきだ。
そこに必ずしも型情報を含む必要は無いと思う。
894デフォルトの名無しさん:2005/07/16(土) 10:58:10
ハンガリアンなんてクズだよ。どんな環境でも使ってる奴は池沼
895デフォルトの名無しさん:2005/07/16(土) 14:12:50
と池沼が申しております。
896デフォルトの名無しさん:2005/07/16(土) 21:56:43
>>884

感情論じゃないだろ。
ハンガリアンを使わない人が読めば確実に可読性が下がるってことを理解しろ。


>ハンガリアン支持者の「情報の取捨選択について読み手に選択肢を与えるために気をつかうべし」という論理とはだいぶ違うね。

つまり冗長な情報ってことだよな。
その冗長な情報が必要な情報を読み取る場合に邪魔ってことなんだよ。
しかも、その冗長な情報は読み手が必ずしも理解できるとは限らないときてる。
897デフォルトの名無しさん:2005/07/16(土) 22:13:14
ハンガリアンを使わない人が読めば、可読性がある程度下がるのは理解できる。
だが読めないわけではない。
じゃあハンガリアンを使っている人が読んだ場合のメリットは?絶大だ。
898デフォルトの名無しさん:2005/07/16(土) 22:24:34
そんな言うほど効果ないよ。もう過去の腐れテクニック。
899デフォルトの名無しさん:2005/07/16(土) 22:35:47
ある程度ね。
>>852 に書いてあること試してみた?


変数見るたびに型情報を知ることのどこが効果絶大なんだ?
冗長だって言ってるだろ。


900デフォルトの名無しさん:2005/07/16(土) 22:55:52
ハンガリアン肯定派=非OOP
ハンガリアン否定派=OOP
901デフォルトの名無しさん:2005/07/16(土) 23:04:05
>>900
Dataであることは一目瞭然じゃん。
まぁ俺だったら「その前についている文字列の意味を勉強」するけどな。
意味のある情報だからこそついているわけで、それを「めんどう」とかそういう理由で無視しつづけるほうが効率わるそうだし。
902デフォルトの名無しさん:2005/07/16(土) 23:04:25
>>899だった。
903デフォルトの名無しさん:2005/07/16(土) 23:05:18
>変数見るたびに型情報を知ることのどこが効果絶大なんだ?
C#やJAVAしか触ったことのない新人類ですか?
904デフォルトの名無しさん:2005/07/16(土) 23:13:33
>>899
>変数見るたびに型情報を知ることのどこが効果絶大なんだ

BaseAmount = -1;
NowAmount = GetNowAmount();;
if (BaseAmount < NowAmount){
// 重要な処理
(略)
}

あれー。なんで重要な処理に流れないんだろう。
答え。NowAmountがunsignedだから。

どうして「型情報を知ることは重要ではない」なんて思える人がいるんだろう。
まったくもって不思議。(この場合は、コンパイルすれば警告が出てくれるがね。コンパイルすれば)
905847:2005/07/16(土) 23:18:11
まぁハンガリアン論争なんて、日本人と米人が
「日本語の読みやすさ」で言い争ってるようなもんだ。

もうちょっと異文化を許容する心の余裕を持たないか?
906デフォルトの名無しさん:2005/07/16(土) 23:25:06
Amount とついてる限り「普通は」非負整数なので
BaseAmount = -1 としている部分がおかしい。

つまりハンガリアン推奨派は変数名と合わない意味的に正しくないコードを書くから
ハンガリアンで型を明示しないとやってられない、ということが証明されたわけだ。
907デフォルトの名無しさん:2005/07/16(土) 23:31:21
自分の常識は他人にとって非常識。
こんなこと、プログラマなら誰だって知っていることなのに「普通」って何w

その「普通」を、プログラム初心者は誰にも教わらずに知っていろと?w

それともこの世界のどこかには、ハンガリアンを記したページと同等に詳しい「変数名の常識」を解説したページがあり、そこに「個数は非負整数なのが普通」と記されているのだろうかw

あ ほ か ?
思わず普段は使わない w を3つも使ってしまったわ。
908デフォルトの名無しさん:2005/07/16(土) 23:36:13
>>906
すまん。変数名が意味的に正しいかどうか判定してくれるツールはどこにあるんだい?
909デフォルトの名無しさん:2005/07/16(土) 23:36:25
>>901
Cでもバリバリプログラミングするんだけどねぇ。
変数を見る”たび”にだよ?
脳内バッファは無いのかい?

>>904
>(この場合は、コンパイルすれば警告が出てくれるがね。コンパイルすれば)

答え出てるじゃん。
それに重要な処理に流れないって分かった時点でその分岐がおかしいって分かる。
910デフォルトの名無しさん:2005/07/16(土) 23:37:06
C#,Java,C++で無意味なのは認めるよ。

でもCでは…Cでは有効なんだい!
911デフォルトの名無しさん:2005/07/16(土) 23:39:59
いや。〜〜なんだい!って、自作自演までしなくてもいいじゃないか。
別に勝った負けたのスレじゃないんだし。
もうちょっとスマートに行こうぜ?

>>909
>それに重要な処理に流れないって分かった時点でその分岐がおかしいって分かる。
ハンガリー使ってれば、ソースを見た段階でおかしいってのが分かったんだがね('A`)
912デフォルトの名無しさん:2005/07/16(土) 23:43:54
>>910
なぜ有効なのか答えなさい!

結局ハンガリアンのデメリットを無視してまでハンガリアンを
使うことの有効性を示してくれる人なんていないんだよね。

ないから。
913デフォルトの名無しさん:2005/07/16(土) 23:45:31
>>908
すまん。ハンガリアンのプレフィクスと型が一致しているかどうかを判定してくれるツールはどこにあるんだい?
914デフォルトの名無しさん:2005/07/16(土) 23:46:35
>>912
で、デメリットって?
まさか「なんとなく読みづらい」じゃないよね?

>>913
簡単に作れるけど?
だってルールがきちんと決まっているからね。
915デフォルトの名無しさん:2005/07/16(土) 23:49:01
>>914
ツールを通すとしても結局定義を参照するわけだから変数から
すぐに定義に飛べるだけでいいんじゃないのかい?
あと型を変更したときにプレフィクスを修正してくれるツールはどこにあるんだい?
916デフォルトの名無しさん:2005/07/16(土) 23:49:36
>>911
順番がおかしいだろう?
重要な処理に流れない→すでにコンパイル済み→警告見てる



917デフォルトの名無しさん:2005/07/16(土) 23:50:59
>>915
(;´Д`)……。
「ツールはどこにあるんだい?」の意味わかってる?
「ルールも決まっていないのに、ツールが作れるわけねーよな?HAHAHA」って意味だよ?

>あと型を変更したときにプレフィクスを修正してくれるツールはどこにあるんだい?
置換機能→全てを置換
918デフォルトの名無しさん:2005/07/16(土) 23:52:23
置換機能ですべて済むと考えてるおめでたい人を相手にしていたとは思わなかった。
919デフォルトの名無しさん:2005/07/16(土) 23:52:27
>>916
なんで順番がおかしいと思えるの?

引き継いだEXEを実行したところ、重要な処理に流れない

手元にあるソースによると、流れるはずなんだがなぁ

920デフォルトの名無しさん:2005/07/16(土) 23:54:05
>>918
むしろ、どういう時に置換機能が効かないのか教えてくれ。

クラス内の変数名を変えたならクラスについて書かれた.hと.cppを「全て置換」
関数内の変数名を変えたなら「順番に置換」

他に一体どんなシチュエーションが?
921デフォルトの名無しさん:2005/07/16(土) 23:56:29
>>919
ああ、自分でコンパイルしたわけじゃないのね。

重要な処理に流れない→ソース見る→分岐部分を見る→変数の型チェック

ハンガリアンだと分岐を見たところで分かるって言いたいんだろ?

どこが効果絶大なの?
922デフォルトの名無しさん:2005/07/16(土) 23:57:49
>>921
時間やプロジェクトの大きさにおびえないで済む人はいいなぁ…。
923デフォルトの名無しさん:2005/07/17(日) 00:01:23
>>922
はいはい。>>910
924デフォルトの名無しさん:2005/07/17(日) 00:01:58
>920
ある基底クラス 非private メンバ変数の型を
変える場合とか。
更に自分で書いたソースではなく、メンテを引き継いだ場合と
条件付けしてみる。
925デフォルトの名無しさん:2005/07/17(日) 00:02:13
理想主義者VS現実主義者 の対決になってるな。

型を気にせずに済むならそうしたい。
余計な情報を付加せずに済むならそうしたい。
そんなもん、ハンガリアン支持者だってそう思ってるわ。

現実的に採用できる範囲で、ハンガリアンが最も現実的な選択だったから使っているだけのこと。
ペーペーにいちいち「Amountってのはな。非負整数なんだよ」なんて1個1個の事例を説明してられない。
ハンガリアン記法について書かれたプリントを投げつけて「それ読んで覚えろ!」
これが現場。
926デフォルトの名無しさん:2005/07/17(日) 00:06:19
>>924
なぁ。
非privateメンバー変数の型を変えるって、超大事(おおごと)じゃないか?

継承先でsignedで判定していたのに、unsignedに変えられでもしてみろ。
>>904になるぞ。

そんなもの「変数名を変えるのが面倒」とかいう次元をはるかにぶっとんだ話。
継承先のクラスを全部再チェック必須だw 変数名の書き換えなんて、瑣末極まりないわ
927924:2005/07/17(日) 00:08:45
>926
なぁ、>917,920へのレスだということは分かってくれるよな。
928デフォルトの名無しさん:2005/07/17(日) 00:10:51
>>927
917=920=926=俺だし。
929デフォルトの名無しさん:2005/07/17(日) 00:18:37
キタコレ。
非ハンガリアンお得意のセリフ。
「型変えたらどうすんの」
すごいよこれ。
まず型を変えるようなシチュエーションが凄い。設計能力無し。
そして非ハンガリアンなら面倒皆無だと思ってる。
型変えたのに何もせずにそのまま動くシチュエーションが凄い。
なんのために型変えたの。
型変えによる不具合考慮一切無し。
じゃあハンガリアンなら面倒皆無なの?と。
そんなわけない。
どうせ全部チェックしなおし。その際ついでレベルで名前書き換える。
むしろ書き換えてないところは未チェックだとわかるし、コンパイルの時エラー出てくれる。
930デフォルトの名無しさん:2005/07/17(日) 00:20:35
だから具体例出して。
931デフォルトの名無しさん:2005/07/17(日) 00:23:00
>>930
なんの。
匿名掲示板で「だから」とか言われても、君誰。どの文章から続く「だから」なの?
どのレスに対して言ってるの?
932デフォルトの名無しさん:2005/07/17(日) 00:27:14
>929
>まず型を変えるようなシチュエーションが凄い。設計能力無し。
自分だけで作業してる状況しか想像できないのですか。

>どうせ全部チェックしなおし。その際ついでレベルで名前書き換える。
全てチェックが終わってないのに書き換えるのは危険極まりないし、
チェックが終わった後で書き換えるのは2度手間。
非ハンガリアンなら、チェックが終わった後で宣言部のみ書き換えるだけ。

>むしろ書き換えてないところは未チェックだとわかるし、コンパイルの時エラー出てくれる。
コンパイルエラーが出ないケースもあり得ますが。

別にハンガリアンは否定しないけどコイツは…
933デフォルトの名無しさん:2005/07/17(日) 00:39:03
>>932
929もちょっとアレだが(多分語り口調はネタなんだろうが)、その答えも変じゃないか?
ハンガリアンが有用になる非カプセル化環境において、他人の型変換が自分のソースに影響するという設計をするか?
934デフォルトの名無しさん:2005/07/17(日) 00:44:05
ハンガリアン使ってると、型を変えた時に書き換えが面倒

置換機能で一発じゃね?

非privateメンバー変数の型を変えるとかの時はどうすんだよ

それって、変数名書き換えが面倒とかいう以前の問題じゃね?

この後はどうなったんだ?
935デフォルトの名無しさん:2005/07/17(日) 00:51:08
結局は>>925ってことだろ。
936932:2005/07/17(日) 00:58:51
>933
他人のソースをメンテしなきゃならん状況もあるだろって事。

あと、しがないサラリーマンPGから忠告。
マーフィーの法則ではないが、良くない例には必ず実例が存在すると思いねぇ。
この世には「他人の型変換が自分のソースに影響するという設計」も存在する。
思い出したくもないが。orz
937デフォルトの名無しさん:2005/07/17(日) 00:59:48
つーか、俺と俺の周りのPGは、のきなみ会社の規則としてハンガリアンが盛り込まれている。
盛り込まれていない環境って本当にあんの?
938937:2005/07/17(日) 01:02:33
もちろんC#とかじゃない環境でね。
939デフォルトの名無しさん:2005/07/17(日) 01:03:56
>>937
業界によるんじゃないの。
全体数からみたらハンガリアンは圧倒的に少ないと思うけど。
940932:2005/07/17(日) 01:08:06
>937
COBOLでハンガリアンは聞いた事がないような。

…スマン。悪い冗談だ。
941デフォルトの名無しさん:2005/07/17(日) 10:10:00
コボルってXと9だけじゃなかったっけ(←よくわかってない)

VB6はどこもかしこもハンガリアン(の亜種)
MSDNでも推奨しているしね。

javaでは皆無。

PLSQLはなんちゃってハンガリアンつかってた。

他のプロジェクトはシラネw

いじょ、デジドカの体験談でした。
942デフォルトの名無しさん:2005/07/17(日) 11:02:19
>>939
その「業界」というのにJAVAやC#やCOBOLはいれるのか?
C、C++業界というのならば、ハンガリアンのほうが圧倒的に多いと思うが。
943デフォルトの名無しさん:2005/07/17(日) 11:39:10
C、Cぷらで多いというよりはMFCで多いと言った方が。
うにっくすではあまり見掛けんです。
おれの世界が狭いだけかもしれないけど。
944デフォルトの名無しさん:2005/07/17(日) 11:59:07
うにっくすだと、クラスとか使いたい放題だしな。
組み込み系のCやC++こそハンガリアンの舞台だと思われ。
945デフォルトの名無しさん:2005/07/17(日) 12:44:41
C++を仲間にすんなボケ
946デフォルトの名無しさん:2005/07/17(日) 13:39:37
まあ、ハンガリアンが是か非か、という皮相的なことより
物事自分の頭で考えられず聞きかじった誰かの主張を教条主義的に繰り返す人間は本当に困る。
ハンガリアン肯定側も否定側もね。

俺はハンガリアンには否定的だが、しかしハンガリアンが合理的な選択であるケースも
確かにないわけじゃない。

典型はVB6とか.NETのWindowsフォームのコントロールだね。
例えば価格を入力するテキストボックスの名前はpriceでは若干舌足らずだ。
txtPriceならpriceTextBoxより簡潔にして必要十分の情報が乗っている。

仮にpriceで必要十分だ、という人がいたとしても、じゃあこのテキストボックスには
横にラベルがついていて、このTextを場合によっては変更する必要があるために
適切な命名をしておく必要がある場合はどうする。

このとき、ハンガリアンが許容できるのならlblPriceとできる。
947デフォルトの名無しさん:2005/07/17(日) 13:41:14
>>945
最近は組み込み系にもC++が増えてるんですけどー
948デフォルトの名無しさん:2005/07/17(日) 13:50:11
price とか変数があったら、これがローカル変数なのか、グローバルなのかメンバーなのかすらわからん…。
949デフォルトの名無しさん:2005/07/17(日) 15:42:05
>>947
だからなんだ。C++でハンガリアン使うなボケ。
950デフォルトの名無しさん:2005/07/17(日) 17:39:42
ハンガリアンを称える唄

イッチ〜♪ ニ〜♪ ハンガリアン♪
951デフォルトの名無しさん:2005/07/17(日) 17:42:23
伴奏はハンガリアン交響楽団ですか
952デフォルトの名無しさん:2005/07/17(日) 19:19:34
>C++でハンガリアン使うなボケ
( ゚Д゚)ポカーン
DirectX(ハンガリアンだらけ)をCで組むタイプの人かな。
DirectXってC++じゃないとかなり面倒なんだけどな。
953デフォルトの名無しさん:2005/07/17(日) 20:51:37
ハンガリアン否定している連中って、若い奴ばっかりだよな。
「俺は古い慣例にはしたがわねえ!俺isゴッド!!」って馬鹿ばっかり。
一体どういうルールで他人と一緒に仕事すんだろ。
俺ルールかね。
954デフォルトの名無しさん:2005/07/17(日) 20:55:55
とりあえず、ハンガリー記法を使っていない著名なフリーソースってのを見てみたいな。
俺は見たことないんだが。
955デフォルトの名無しさん:2005/07/17(日) 21:21:37
>>953
それをしつけるのが古い奴の仕事じゃん。
古い慣例に従うことのメリットをちゃんと説明してやれよ。

956デフォルトの名無しさん:2005/07/17(日) 21:21:38
http://www.t.ring.gr.jp/archives/GNU/ed/ed-0.2.tar.gz
色々な点で疑問があるがこれはどうだろうか。
957デフォルトの名無しさん:2005/07/17(日) 22:03:54
>>956
きっちり構造化されてるじゃん。
これならハンガリアンにこだわる必要はねーよ。
958デフォルトの名無しさん:2005/07/17(日) 22:07:17
こだわる必要がないっていうか、これ他人と連携することを想定していないプログラムじゃん。
もし構造化されている部分に中身に手をつけろといわれたら、はったおすよ。
そういう観点から見れば糞ソース。
だがそれを起こさないようにきちんとまとまってるから良ソース。

仕事ではいつ引き継ぎになるかわからんから、こういう組み方はできんな。
事故ったり、病気になったり。
「担当者が病気になって誰も手がつけられません」ってわけにいかん。
959デフォルトの名無しさん:2005/07/17(日) 23:40:14
あたまの弱いリーマンがやたら多いですね。
960デフォルトの名無しさん:2005/07/17(日) 23:42:20
現場経験の無い学生は、理論ではなく対人論証でしか語れない。
961デフォルトの名無しさん:2005/07/17(日) 23:44:54
で、引継ぎのある仕事とやらを想定するとどういう場合にハンガリアン記法だと嬉しいわけ?
他人の書いたもんなんぞ読みにくくて当たり前、規約なんぞあっても無駄だと感じてるけどね。
962デフォルトの名無しさん:2005/07/17(日) 23:47:27
>>960
つまりあなたは学生ということですね。
963デフォルトの名無しさん:2005/07/17(日) 23:49:12
>>961
>規約なんぞあっても無駄だと感じてるけどね。
コーディング規約を設けてない会社なんて世の中にねーよ('A`)

964デフォルトの名無しさん:2005/07/17(日) 23:58:50
ハンガリアンな人に聞きたいんですけど、

ハンガリアンな変数が使われている部分の誤りを発見したとして
その変数の定義部を全く見ないで修正するのでしょうか?
それともやっぱり定義部を見るんですか?
965デフォルトの名無しさん:2005/07/18(月) 00:16:25
>>964
ハンガリアンはソースを読み解く手助けのためにある。
根本的に勘違いしてないか?
966デフォルトの名無しさん:2005/07/18(月) 00:43:22
うーん、ハンガリアンのメリットがわからないなぁ。。。
具体的にこういう時にメリットがあるよ!という状況はどういう時でしょうか。。。
967デフォルトの名無しさん:2005/07/18(月) 00:51:53
>966
ソースを読み解く手助けになる。
但し人によっては逆に鬱陶しいと感じるかもしれない。

コメントを冗長な位に書くか、最低限に抑えるかの違いにも似てるな。
特定のケースに限定しない限り、どっちが良いとは一概には言い切れん。
言い切れる奴は、物事をもう少し多面的に見る努力をした方が良いと思われ。
968デフォルトの名無しさん:2005/07/18(月) 01:46:33
>>953
俺の周りでは、ハンガリアン大好きっ子は経歴5年程度より若い連中ばかりだよ。
10年程度の古い連中は、経歴の途中でハンガリアンを押し付けられたから最近の風潮を歓迎している。
若いのは、就職してからずっとハンガリアンだから、変化に抵抗があるんじゃない?

自社流勝手ハンガリアンだけどね。
小さい会社でサンプル少なくて申し訳ないんだけどね。

で、御社でハンガリアン否定している若い奴ってのは、やっぱ入社以来 Java か C# ?
969デフォルトの名無しさん:2005/07/18(月) 08:56:32
>>968
うちではむしろ、学生時代にハンガリアンなんて使ってなかったから仕事で覚えるのに抵抗がある若い奴が多い。
CやC++の勉強中にもハンガリアン使ってなかったみたいなんだわ。

ところで俺人事もある程度担当してるんだ。
ものすごく身勝手で申し訳ないんだが、就職活動の際CやC++のプログラムを提出してきて、それがハンガリアン使われてないと
「う……こいつと仕事するの嫌だなぁ…なんでハンガリアンすら使ってないんだ…」
っとちょっともにょる。
970デフォルトの名無しさん:2005/07/18(月) 11:09:03
おい。ハンガリアン以前からプログラマやっている人間を忘れているぞ
971デフォルトの名無しさん:2005/07/18(月) 12:36:20
ハンガリアン肯定派の方に伺いたい。
1メソッド何行ぐらいになるように心がけてる?

俺はハンガリアン否定派だが、だいたい10-20行を心がけている。
もちろん意味ある単位で切り出すので、例外はあるが。

正直、10-20行ぐらいでメソッド記述してると、ハンガリアンって無意味極まりなく思える。
クラスメンバ、グローバルの区別は必要と思うが。

といいつつ、mfcの時はハンガリアンになっちゃうねw
972デフォルトの名無しさん:2005/07/18(月) 14:05:07
>>971
もちろん短くしようと心がけてる。
が、ハードの制限(主に容量)でそうはいかないことがある。
そういう時にハンガリアンが有用。

というお話。
973971:2005/07/19(火) 01:24:27
>>972
そういう話ならなっとくです。
974デフォルトの名無しさん:2005/07/19(火) 16:06:16
ハードの性能が上がればハンガリアンは洋梨?
975デフォルトの名無しさん:2005/07/20(水) 00:05:15
なところまで上がればいいなぁ。
976デフォルトの名無しさん:2005/07/20(水) 12:25:31
>>969
> 「う……こいつと仕事するの嫌だなぁ…なんでハンガリアンすら使ってないんだ…」
> っとちょっともにょる。

俺もあんたと仕事したくねEEEEEEEEEEE!

まあ、俺は逆にハンガリアン使ってるソース見たら落とすし、お互いさまだな。
変数の命名で英語ができないことが分かればさらに落としまくり。
私見だが、英語ができないやつはハンガリアン野郎に多い。
やっぱ、適切な命名ができないからプリフィックスでごまかしてるんじゃねえかと思う。確信してる。

それはともかく、そもそも今のハンガリアン記法が間違って広まった件について。
ttp://www.radiumsoftware.com/0507.html#050704
977976:2005/07/20(水) 12:31:10
って、よく見たら>>829で既出じゃん。
こういう情報に触れてもやっぱりハンガリアンに固執するってんだから相当なものだな。
978デフォルトの名無しさん:2005/07/20(水) 13:52:25
>>976
まぁまぁ。
プリミティブ型にハンガリアン記法を使うことには少なからず意味があるし、
そういうのを必要とする業種がある、ということでいいのでは。
(もちろん自分では使わないが)

ただbool型だけはいただけない。
bool型の変数の場合、isXxxxやhasXxxxをつけることが多いと思われるが、
これにハンガリアンを適用すると、bIsXxxxやbHasXxxxとなって違和感がある。
だからと言ってbXxxにするのは命名をないがしろにしていることになる。

それ以外については環境に応じて許容できる。
979デフォルトの名無しさん:2005/07/20(水) 19:27:30
>>976
>ハンガリアン使ってるソース見たら落とす

>適切な命名ができないからプリフィックスでごまかしてるんじゃねえかと思う。確信してる。
こんな奴が人事担当か…。その会社も長くないな
980デフォルトの名無しさん:2005/07/20(水) 23:45:27
>979
お前真性のおばかさんだろ?
981デフォルトの名無しさん:2005/07/21(木) 00:27:11
非ハンガリアンタイプの人は、論理的説明一切無しに罵倒のみのレスをするのですねー^^;
とてもプログラマとは思えません。
982デフォルトの名無しさん:2005/07/21(木) 00:28:40
ハンガリアンを使ってるというだけで不採用なのかw
どんな超優秀人材でも、社内教育すらせずに門前払いするんだな。
そんな会社、どう考えても先長くねーよw
983デフォルトの名無しさん:2005/07/21(木) 00:36:53
   〃∩ ∧_∧
   ⊂⌒(  ・ω・)  はいはいわろすわろす
     `ヽ_っ⌒/⌒c
        ⌒ ⌒
984デフォルトの名無しさん:2005/07/21(木) 00:47:12
ハンガリアン否定派は、ついに論理的なレスも打てなくなったのか…。
むしろハンガリアン肯定派が自作自演しているのかと疑ってしまうくらいだぞ。

別に対立スレじゃないんだから罵りあう必要ないのに。
985デフォルトの名無しさん:2005/07/21(木) 00:52:22
ということにしたいのですね。
986デフォルトの名無しさん:2005/07/21(木) 01:00:53
>984
もう飽きただけ。
正直好きにしろw
987デフォルトの名無しさん:2005/07/21(木) 15:20:07
使わない人間は「使わないことが正しい」という信念を持っている。
使う人間はどうなのかなぁ。俺にはわからない。
ただ、使うことが正しいというのなら、
「ハンガリアン以前には正しい方法は無かった」ということになって
これには首肯出来ないな
988デフォルトの名無しさん:2005/07/22(金) 11:06:15
プレフィクスはやめろ、ハンガリアンハンガリアン
989デフォルトの名無しさん:2005/07/22(金) 12:03:47
>>988
城島乙
990デフォルトの名無しさん:2005/07/22(金) 13:11:38
int n;
991デフォルトの名無しさん:2005/07/22(金) 13:12:10
long l;
long long ll;
short h;
992デフォルトの名無しさん:2005/07/22(金) 13:12:49
BYTE by;
WORD w;
DWROD dw;
QWORD qw;
993デフォルトの名無しさん:2005/07/22(金) 13:13:37
float f;
double d;
long double ld;
994デフォルトの名無しさん:2005/07/22(金) 13:17:02
int ch = getchar();
char c = ch;
TCHAR szHoge[] = "Hoge";
PTSTR pszHoge = szHoge;
CString strHoge = pszHoge;
std::string strFoo = "Foo";
995デフォルトの名無しさん:2005/07/22(金) 13:21:19
994の文字列リテラルをTEXT()で囲うのを忘れてしまった。
std::list<T>::iterator it;
int& r = n;
std::ofstream ofs;
std::wistringstream iss;
boost::function<void ()> fn;
void (*pfn)();
996デフォルトの名無しさん:2005/07/22(金) 13:26:42
POINT pt;
RECT rc;
OPENFILENAME ofn;

HANDLE h;
HBITMAP hbmp;
HBRUSH hbr;
HDC hdc;
HFONT hfnt;
HINSTANCE hinst;
HMODULE hmod;
HPEN hpen;
HWND hwnd;
997デフォルトの名無しさん:2005/07/22(金) 13:28:55
unsigned u;
unsigned long ul;
unsigned long long ull;
unsigned short uh;
unsigned char uc;

BOOL f1;
bool f2, is3;

HRESULT hr;

WPARAM wp, wParam;
LPARAM lp, lParam;
LRESULT lr, lResult;
998デフォルトの名無しさん:2005/07/22(金) 13:32:19
HRESULT hr, hResult;

void *pv;
VARIANT v;

BSTR bs;

IUnknown *punk, *pUnknown;
999デフォルトの名無しさん:2005/07/22(金) 13:34:33
MSG msg;
LOGFONT lf;
STARTUPINFO si;
CHOOSECOLOR cc;
CHOOSEFONT cf;
FINDREPLACE fr;
1000デフォルトの名無しさん:2005/07/22(金) 13:36:47
千!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。