ハンガリアン記法 [part1]

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
ハンガリアン記法ってどうよ (使ってる人・使ってない人)

さぁ意見を
2デフォルトの名無しさん:2007/08/21(火) 13:18:26
3デフォルトの名無しさん:2007/08/21(火) 13:20:05
まぁ語れよ
4デフォルトの名無しさん:2007/08/21(火) 13:21:41
>>2 を読め。そこに全てが語ってある。
5デフォルトの名無しさん:2007/08/21(火) 13:25:55
これが全て正とも言い切れまい >>4
6デフォルトの名無しさん:2007/08/21(火) 13:40:11
それより語ろうぜポーランド記法を
7デフォルトの名無しさん:2007/08/21(火) 13:41:59
( ^ω^)断る>>6
8デフォルトの名無しさん:2007/08/21(火) 13:54:25
逆ポーランド記法だろ
9デフォルトの名無しさん:2007/08/21(火) 14:07:25
言い切れる。

終了
10デフォルトの名無しさん:2007/08/21(火) 15:42:18
結局のところ(特に日本では)、「MSが牽引しているからイヤイヤ」という感情面から入ってるバカが多いような気がするんだけど。
個人的にはどっちでもいいと思うけど、むやみやたらに毛嫌いする変な人が多い。
もう見ただけで「うわーもうやってらんね。俺様のスーパー技術者人生としてのプライドに関わることだから。絶対こんなのツカワネ」。

ハンガリアン記法はともかく、
youcanfly()やyou_can_fly()より、YouCanFly()の方が読みやすくないかな?
俺が日本人だから? 英語に馴れてる人なら前者の方が読みやすくなるんだろうか(外人は前者の人が多いと思う)。
11デフォルトの名無しさん:2007/08/21(火) 15:46:06
>>9は、反ハンガリアン記法信者か

俺も>>10同様どちらでも構わないと思う。強いて言うならばアプリケーションハンガリアン記法は、採用すべき。
>>2のURLにも書いてあるが・・・
12デフォルトの名無しさん:2007/08/21(火) 16:32:44
>>10
> youcanfly()やyou_can_fly()より、YouCanFly()の方が読みやすくないかな?
> 俺が日本人だから? 英語に馴れてる人なら前者の方が読みやすくなるんだろうか(外人は前者の人が多いと思う)。

言語ごとにマジョリティが異なるな
13デフォルトの名無しさん:2007/08/21(火) 18:41:20
>>10
読みやすい読みやすくないじゃなくてなんであるかによって使い分ける。
例として、

大文字で初めてCamelCase → クラス名
大文字だけを使う → 定数
小文字で初めてcamelCase → メソッド名
全部小文字で単語間に_を入れる → 変数名

みたいな感じ(あくまで一例、他のルールももちろんあり得る)。
ハンガリアンではないけど見た目で何かすぐわかるので、
ハンガリアンの考え方は取り入れてる感じ。
14デフォルトの名無しさん:2007/08/21(火) 21:53:00
>>11
ちがうだろ、>>9のはjoelで全て語り尽くされてるって話だろ?

俺もアプリケーションハンガリアンは推奨派だし使う。
ちなみにシステムハンガリアンは有害。

15デフォルトの名無しさん:2007/08/22(水) 00:03:54
hwndHogeとかhbrHogeとかって名前使うんだ俺。

これがC#でIntPtr型ならきっとアプリケーションハンガリアンだろう。
しかし、C++でHWND型とHBRUSH型を使っていれば、
とってもシステムハンガリアンに思えないか?
そう思いつつ、今日もC++でそんな変数名を付けている。

16デフォルトの名無しさん:2007/08/22(水) 00:13:26
それは別にアプリケーションハンガリアンだと思うぜ。
17デフォルトの名無しさん:2007/08/22(水) 01:31:22
15はアプリケーションハンガリアンの意味を理解しているのか?
18デフォルトの名無しさん:2007/08/22(水) 10:52:47
>>14 システムハンガリアンが全ての場合で有害だとも言い切れなくね?
現在、多くのJavaプログラマがString型オブジェクトならば「str○○○」のように使用しているし、全てが有害って判断は遺憾に思うぞ。
19デフォルトの名無しさん:2007/08/22(水) 10:55:54
> 現在、多くのJavaプログラマがString型オブジェクトならば「str○○○」のように使用しているし、

…そうか?
20デフォルトの名無しさん:2007/08/22(水) 10:57:35
そうじゃない?
21デフォルトの名無しさん:2007/08/22(水) 11:22:55
つかってないだろ
Javaで言ったらboolean型がis○○だったりhas○○だったりするくらいじゃね?
22デフォルトの名無しさん:2007/08/22(水) 12:35:45
文字列に str つけるのはアプリケーションハンガリアンじゃないのか?
23デフォルトの名無しさん:2007/08/22(水) 12:53:20
もやもやした範囲だな<str
24デフォルトの名無しさん:2007/08/22(水) 13:52:01
SQLクエリー文字列
iniファイル文字列
GUI表示文字列
Web表示文字列
これを全部同じstrにくくるとな?
25デフォルトの名無しさん:2007/08/22(水) 14:03:15
>>18
疑問にも思わず使ってる連中がいたとしたら、
そいつら全員莫迦なんだから遺憾も糞も。
26デフォルトの名無しさん:2007/08/22(水) 19:10:47
モンゴリアン記法とか新しい呼び名を付けるべきなんじゃないか
27デフォルトの名無しさん:2007/08/22(水) 21:13:32
馬鹿なスレだな
28デフォルトの名無しさん:2007/08/22(水) 21:28:10
そりゃ part1 の時点でもう
29デフォルトの名無しさん:2007/08/22(水) 21:31:40
>>22
アプリケーションハンガリアンで付けるプレフィクスは型情報じゃない。
30デフォルトの名無しさん:2007/08/22(水) 22:23:04
>>18
javaでそれは見たことないな。VB6.0時代なら腐るほど見たが。
31デフォルトの名無しさん:2007/08/22(水) 23:08:57
俺もJavaで>>18みたいのは見た事無いな。

配列とかリストの変数名を複数形にするのも一種のハンガリアンかな?
32デフォルトの名無しさん:2007/08/22(水) 23:22:00
単複同形の単語とかどうすんの
33デフォルトの名無しさん:2007/08/22(水) 23:26:42
複数形はハンガリアンってわけでもないような
foreach (var user in users) {
  ……
}
34デフォルトの名無しさん:2007/08/22(水) 23:31:18
foreach (var users in user) { 
  …… 
}
胡散クサー
35デフォルトの名無しさん:2007/08/23(木) 01:12:11
聞いてる暇があったらJoelのとこなりWikipediaなり見てくりゃいいのにな。
36デフォルトの名無しさん:2007/08/23(木) 03:21:08
>>18
strなんちゃらは有害
37デフォルトの名無しさん:2007/08/23(木) 07:42:50
おれはstrに錦野関係の情報しか入れないようにしているから、有害といわれると心外だ。
38デフォルトの名無しさん:2007/08/23(木) 15:15:51
そりゃ star だ。
39デフォルトの名無しさん:2007/08/23(木) 15:27:11
ウチの職場では実際スターと発音するのが居る
スター派、ストラ派、エスティーアール派などなど
お前等は何て読むよ?
40デフォルトの名無しさん:2007/08/23(木) 15:36:55
ストリング
41デフォルトの名無しさん:2007/08/23(木) 15:43:41
ストレングス
42デフォルトの名無しさん:2007/08/23(木) 16:09:30
ストリップ
43デフォルトの名無しさん:2007/08/23(木) 16:30:41
ストリングだな
bufとかはバフとか言うけどこれだけは何故か略さない
LPTSTRとかの意味が分からなくて小一時間悩んだせいかもしれん
44デフォルトの名無しさん:2007/08/23(木) 18:29:14
>>36 kwsk
45デフォルトの名無しさん:2007/08/23(木) 23:15:44
このスレのスレタイが目に入る度に脳内フィルターがかかって
ジャンガリアン記法に見えてしまうのですがどうしたらいいでしょうか?
46デフォルトの名無しさん:2007/08/23(木) 23:19:36
>>44
36は、18の言うシステムハンガリアンが全ての場合で
有害だとも言い切れなくないというのに賛成できないだけだと思う。
47デフォルトの名無しさん:2007/08/23(木) 23:32:57
アプリケーション版画利案ならいいと思うが、最近流行のアノテーションを
使って型(type)チェック以上の種別(kind)チェックができるんじゃないかな?

ダメなコードが変に見えるように、ならアプ版画利案で十分だけど、
実際のところコンパイラが自動チェックすればもっといい。

 @[kind = my.unsafe]
 string read_param(string key);
 
 @[kind = my.safe]
 name = read_param("name");

とか書いて、

 mylanguagecompiler -Wkind my.code

とかで typecheck ならぬ kindcheck が勝手にかかれば版画利案の醜い字面に
耐えることなく同じ効果を享受できる。
48デフォルトの名無しさん:2007/08/23(木) 23:36:03
強い typedef があればいいんだよな。
49デフォルトの名無しさん:2007/08/24(金) 00:10:55
いや、type一本とかkind一種類じゃなくて、任意の種別情報を付加して
コードチェックの自動化ができればいいってこと。単なる強いtypedefだと
Pascalになってしまう(長さが違うだけで違う型です!とか)
50デフォルトの名無しさん:2007/08/24(金) 06:59:02
Javaとかのオブジェクト指向言語なら、何でもStringにぶち込むのはやめて、
適切にクラスを作ればいいだけのような。
51デフォルトの名無しさん:2007/08/24(金) 09:19:57
クラスの数だけファイルが出来る。
52デフォルトの名無しさん:2007/08/24(金) 10:03:58
Javaとかでも変数がnullを取りうるか、メソッドがnullを返すかを識別するために、
語尾にNをつけるようにしてる
Nがついてるものはnullチェックしないとダメ、とルール化できる
53デフォルトの名無しさん:2007/08/24(金) 10:53:49
JavaにはそのうちNonNullアノテーションとか実装されるんだっけ
54デフォルトの名無しさん:2007/08/24(金) 11:04:15
宣言的例外処理とかアホなことをしてきたJavaなら
NonNullもマジでやっちゃうかもな
煩雑極まりないことになりそうだが
55デフォルトの名無しさん:2007/08/24(金) 17:22:54
56デフォルトの名無しさん:2007/08/27(月) 15:47:57
ぬるぽ
57デフォルトの名無しさん:2007/08/29(水) 06:07:10
次スレタイトルはこれで

土旦土旦 ハンガリアン墓場 旦土旦土
58デフォルトの名無しさん:2007/08/29(水) 18:21:03
このスレが次まで続けばな >>57
59デフォルトの名無しさん:2007/08/31(金) 12:46:25
あげ
60デフォルトの名無しさん:2007/09/26(水) 17:07:53
がっ 
61デフォルトの名無しさん:2007/11/05(月) 20:45:38
型情報が重要なこともしばしばあると思うんだけどなぁ
m_strName
見た瞬間に、String型でメンバー変数なのね。って分かる

他人のプログラムの文中に
Name
って変数が出てきた時って、みんなどうやって情報集めるの?
カーソルあわせて型とかが出るまで待つの?
62デフォルトの名無しさん:2007/11/05(月) 21:08:31
何の脈絡もなく突然変数名が出てきたりしないでしょ。
だいたいは関数とかクラスの宣言見ればわかるし。

出所不明な変数が突然出現したら、一体どこから来た何に使う変数なのかってのを調べなきゃいけない。
型だけわかったって足しにならないよ。
63デフォルトの名無しさん:2007/11/05(月) 21:17:38
俺はそれがStringなのかどうかの前に
サニタイズやエスケープされてるのかが気になるよ。
64デフォルトの名無しさん:2007/11/05(月) 21:29:56
>>61
変数を見ただけで型が分かったとして、それが正しいかを結局は調べる必要がある。
65デフォルトの名無しさん:2007/11/05(月) 21:46:10
型情報なんざ、コンピュータに検査させれば良い。
メンバ変数かどうかも同様。

まさかメモ帳で開発してるわけじゃないだろ?
66デフォルトの名無しさん:2007/11/05(月) 22:29:59
そうか
きっと糞ソースばっかり見せられてるから「せめて(システム)ハンガリアンくらい使えよ。(どうせお前じゃアプリケーションハンガリアンなんてできないだろうし)」
って思っちゃうんだな
67デフォルトの名無しさん:2007/11/05(月) 22:35:38
カツカツの携帯電話プログラムやってると、まだまだハンガリアンにはお世話になる
Javaなのにクラスなんて1つもつくれないし、関数も少なめにしなくちゃいかん
68デフォルトの名無しさん:2007/11/06(火) 22:15:48
それとハンガリアンにどういう関係があるのかサッパリ理解できんけど。。
69デフォルトの名無しさん:2007/11/06(火) 22:45:43
>>68
限られたリソース空間にプログラムを詰め込もうとすると
構造としてのわかりやすさを犠牲にすることがある、
それゆえ字面のテクなんかでわかりやすさを確保せざるを得ない、
ってことでしょ。
おれはプログラマじゃないから適当に想像してみたw
70デフォルトの名無しさん:2007/11/06(火) 22:53:11
このまえOLESTRとLPCSTRとPSTRとLPCWSTRとstd::stringとCStringとchar[]と
std::vector<char>とstd::vector<unsigned char>あたりが混ざったプログラムが出てきたが、
おいらもハンガリアンについて考え直さないといけないな。
71デフォルトの名無しさん:2007/11/06(火) 23:13:52
ハンガリアンはもう古い。
今はモンゴリアン。



チョップ。
72デフォルトの名無しさん:2007/11/07(水) 07:04:14
ハンガリアン記法なんてエディタが貧弱だった頃の負の遺産だろ
73デフォルトの名無しさん:2007/11/07(水) 12:32:57
エディタが強力になってもハンガリアンの代替機能なんてほとんど使わないでしょ。
例えばインテリセンスとかでいちいち型確認してる?
しないね普通。

つまり最初から必要なかったんでしょ。
パラノイア気質の奴が最初から必要もないものを強迫的に必要だと思い込んじゃっただけっぽい。
74デフォルトの名無しさん:2007/11/07(水) 19:35:22
>>73
お前が孤独プログラムばっかりしてるってだけの話
75デフォルトの名無しさん:2007/11/07(水) 22:50:45
ハンガリアンに限らず何に対しても、有効に活用できる人・できない人がいるわけで。
76デフォルトの名無しさん:2007/11/07(水) 23:58:42
それは対パラノイア以外の有用性が認められなかったから廃れた、という事実を
君が認められないだけだね。
77デフォルトの名無しさん:2007/11/08(木) 00:09:13
>>18
Stringのフィールドでもstr付けるのか?
アクセッサはgetStrhoge()とかになるんだろ?
78デフォルトの名無しさん:2007/11/08(木) 01:14:41
パラノイア=MS信者

いちにいハンガリアン、にいにいハンガリアン
79デフォルトの名無しさん:2007/11/08(木) 09:13:23
MSが方針転換して以来、
MS信者は嫌ハンガリアンパラノイアになったから
話が盛り上がらないな。
80デフォルトの名無しさん:2007/11/08(木) 19:23:34
昔も似たようなスレあったな
俺はシステムハンガリアンも有効だとレスした
IDEによる入力サポートとか、カーソルあわせての型情報とか一切無い環境もあるからな
ってか俺のとこそうだし
と書いても理解してもらえなかった。
多分ここでも理解してもらえないなw
81デフォルトの名無しさん:2007/11/08(木) 20:13:23
理解は出来ないが、同情は出来る。
82デフォルトの名無しさん:2007/11/08(木) 21:24:05
理解は出来るが、一緒に仕事をしている同僚じゃないんだからわざわざ理解させる必要なくね?
83デフォルトの名無しさん:2007/11/08(木) 22:27:11
システムハンガリアンなんて確実にいらないでしょ。

↓の人が、本物のハンガリアとはアプリケーションハンガリアンのことで、
こちらは有益だって力説してる。
http://local.joelonsoftware.com/mediawiki/index.php/%E9%96%93%E9%81%95%E3%81%A3%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AF%E9%96%93%E9%81%95%E3%81%A3%E3%81%A6%E8%A6%8B%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B

でもどうかね。
確かに一理はあるし、確かに複数の座標系があるときにどの座標系かを区別するような
用途にはある程度適合的かもしれんが、やはり正攻法じゃないと思うな。
84デフォルトの名無しさん:2007/11/08(木) 22:54:40
85デフォルトの名無しさん:2007/11/08(木) 22:58:30
馬鹿か?
だからアプリケーションハンガリアンの有用性も疑わしい、といってるんだけど
86デフォルトの名無しさん:2007/11/08(木) 23:07:31
正攻法ってなんだ?
正攻法でなければいけない理由ってなんだ?
87デフォルトの名無しさん:2007/11/08(木) 23:28:39
にたとえば要するに、ドルと円をおなじintで保持ししてるから(せざるを得ない)
からアプリケーションハンガリアンが必要なのであって、
Currency<Doller>オブジェクトとかCurrency<Yen>オブジェクトを
つくっておけば、「型」システムに組み込まれるので要らない、みたいな話?
88デフォルトの名無しさん:2007/11/08(木) 23:44:00
通貨ならそこまでしなくてもPriceInYenとかPriceInDollarsってすれば済む。
ynPriceとかdlPriceとかに合理性は見出しにくい。

あるいは、仮想的な概念として「価値」を考えてそれを型にするのも一つの手だね。
Price.InYenとかPrice.InDollarみたいな感じ。
この考え方は上の複数の座標系にも応用できると思う。
89デフォルトの名無しさん:2007/11/09(金) 00:15:34
>>88
何を言ってるんだお前は?
別にアプリケーションハンガリアンは、頭を小文字にとかそういう話をしてるわけじゃないぞ?
「変数名の生成を、その変数の種類(kind)に基づいて特定のルールづけの元行う」
というのが趣旨だ
お前がPriceInYenとかのほうが見やすいというのなら、そうすればいいだけの話
90デフォルトの名無しさん:2007/11/09(金) 00:24:35
>>88
それが、アプリケーションハンガリアンなのだが。
91デフォルトの名無しさん:2007/11/09(金) 00:50:58
仮にそれが正しいのなら(いや間違ってると思うが・・・)
そもそも「アプリケーションハンガリアン」などというカテゴライズには
最初から何の意味もないことになるな。

だってPriceInYenとかPriceInDollarsなんてのはごく普通の何の変哲もない
命名に過ぎないじゃないか
92デフォルトの名無しさん:2007/11/09(金) 07:14:00
>>91
君がたまたま自然に「アプリケーションハンガリアン」を受け入れていただけの話
知ってか知らずかね

何も考えない奴は、変数名に a とか b とかつけるんだぞ
93デフォルトの名無しさん:2007/11/09(金) 07:20:51
>>92に反論する前に、まず>>2を読め。
94デフォルトの名無しさん:2007/11/09(金) 07:36:29
???
>>88>>2を先ず読むべきだな。趣旨を理解していない。
95デフォルトの名無しさん:2007/11/09(金) 08:17:36
読んでるってのw
頭悪いんじゃないの?
だからその趣旨は間違ってる、と言ってるんだと何度言わせるつもり
96デフォルトの名無しさん:2007/11/09(金) 08:26:27
っていうか、人に偉そうに読め、とかいってる奴が読んでないんだよね。
いやただの行為として読んではいるのかも知れないが、文章を書いている人間の
論旨をまったく「読めて」ない。
97デフォルトの名無しさん:2007/11/09(金) 19:08:29
>>95
アプリケーションハンガリアンの趣旨は間違ってるって、
つまり変数名は適当な連番でもいいってこと?
98デフォルトの名無しさん:2007/11/09(金) 20:31:58
連番に意味がある場合を忘れずに。
99デフォルトの名無しさん:2007/11/10(土) 19:37:41
>>95
明らかに頭悪いのはお前だよ。
100デフォルトの名無しさん:2007/11/10(土) 19:52:35
横レスだが。

>>97
ローカル変数なんてわりとどうでもいいんじゃないのかな。
ループカウンタなんてi,j,kで十分だし、ローカル変数にいちいち
アプリケーションハンガリアンなんて使わないね。
そこに使わなければ意味が読み取れないほど関数が長くて意味が分かりにくいの
だとしたら、まずそっちを何とかすべき。

Joelの例は(しばしば彼の記事がそうであるように)、彼の主張を通すための
作ったような印象を受けるね。ありゃ、命名以前の問題としてクソコードだろう。

無論、クラス、メソッド、メンバ変数のようなものなら、意味をきちんと示す
分かりやすい命名をするべきだが、んなのは当たり前の話じゃまいか?
101デフォルトの名無しさん:2007/11/10(土) 20:25:25
>>100
> 分かりやすい命名をするべきだが、んなのは当たり前の話じゃまいか?
当たり前だけどできてないから、どうやれば上手くいくかという方法論の話をしている。
102デフォルトの名無しさん:2007/11/10(土) 20:40:17
>>101
例えばC++なら、それがアプリケーションドメインの特殊な概念を示す
共通的な何かなら、クラス化するなりtypedefするなりするのが正攻法でしょ。

Joelの言ってることは中途半端だし一貫性も無いように思える。
「当たり前のことが出来てない」んなら、「アプリケーションハンガリアン」
なる規則を導入することで、何かが上手く行くわけはない、よね?
103デフォルトの名無しさん:2007/11/10(土) 20:42:22
正攻法がそんなに好きなのか?
104デフォルトの名無しさん:2007/11/10(土) 21:04:18
読解力がない奴が多すぎるねしかし。

別にjoelって人が言ったからその通り、と言うことはもちろんないんだが、
joelって人は、(ちょうど"PriceInDollars"のように)変数名にその値の意味を
盛り込むことがアプリケーションハンガリアンだ、などとは少しも言ってない。

しつこいようだが、そんなものはアセンブラしかなかった時代から当たり前のように
やっていることだ。

ここの馬鹿連中は「タグ」だの「プリフィクス」だのといった表現が読み取れないのかねw
105デフォルトの名無しさん:2007/11/10(土) 21:05:49
>>104
まぁ読解力に欠けるのは明らかにお前だけどね。
106デフォルトの名無しさん:2007/11/10(土) 22:25:29
>>104
>読解力がない
よくわかってるじゃないか、自分のこと。
107デフォルトの名無しさん:2007/11/11(日) 10:00:39
>>104
>ユーザから来た文字列は(安全でない?Unsafe?文字列という意味で) プレフィックス"us"をもつ名前の変数に格納する。
>HTMLエンコードされた文字列や、素性の安全なことのわかっている文字列は(安全?Safe?な文字列という意味で)プレフィックス"s"を持つ名前の変数に格納する。

>安全でない?Unsafe?文字列という意味でプレフィックス"us"をもつ名前の変数に

>安全でない文字列という意味でプレフィクスをもつ名前の変数



変数名に「安全でない文字列という意味」であるusというプリフィクスをつけよう
108デフォルトの名無しさん:2007/11/11(日) 11:41:23
>>107
ひょっとしてネタじゃなくて本気で
「アプリケーションハンガリアンとは、変数名(やメソッド名)にその値の意味を盛り込むことだ」
(とJoel氏は主張しているのだ)と思ってるの?w

しょうがない、ならば質問。

 ・では、「アプリケーションハンガリアン」と「システムハンガリアン」の違いは?
  どっちも共通して「ハンガリアン」という言葉がついてるけどw

 ・Joel氏はアプリケーションハンガイアンとは何か説明するくだりにおいて、
  「タグ」や「プリフィクス」という、意味を狭める言葉をわざわざ使っているわけだが、
  もし氏が「アプリケーションハンガリアン」という言葉を君が思っているような意味で
  使っているとしたら、なんでわざわざそんな「不適切な」言葉を使ったと思う?
109デフォルトの名無しさん:2007/11/11(日) 12:19:27
>>108
・システムハンガリアンとは
アプリケーションハンガリアンの勘違い品
大して意味もない「変数の型情報」を変数名に盛り込むよう推奨したもの

・タグやプリフィクス
アプリケーションハンガリアンの趣旨は「重要情報を変数名に含めれば、その部分を見ただけで間違いが分かって便利」
タグ(プリフィクス)がハンガリアン創生で使われてた手法なので、Joelもそれを推奨している

確かにJoelは別に「プリフィクス以外でもいいんじゃね?」とは一言もいってない。
が、絶対プリフィクスでなければならないとも言っていない

スレ民は「>>88みたいなのもアプリケーションハンガリアンの一種といえるだろう」と言ってるだけ
110デフォルトの名無しさん:2007/11/11(日) 12:23:29
>>108
お前「意味」の意味を勘違いしてるだろ
>104と同一人物?

Joel氏や他の人間が言っている「意味」ってのは、usやsのような超重要情報
お前が言ってる「意味」は単に変数名NameやMoneyのようなもの

お前の言うとおり変数名に意味をもたせるのは当たり前
アプリケーションハンガリアンは一歩進んで「重要情報も変数名に含めろ」っていうもの
111デフォルトの名無しさん:2007/11/11(日) 15:35:23
>>109
だからそれが間違ってるって言ってるのね。
読解力がなさ過ぎるだろう、と。
本当に義務教育修了してるのかねこういう奴らってw

繰り返すように、別にJoel氏が言ったからどう、ってことは全くないんだが、
Joel氏が言ってるのは正確にはこうだよ。

[ハンガリアン]
識別情報をあらわす統一的な略号を名前に付加する命名法。

[システムハンガリアン]
ハンガリアンのうち、名前に付加する識別情報が型情報のもの。

[アプリケーションハンガリアン]
ハンガリアンのうち、名前に付加する識別情報が意味論的なもの。

念のために言っておくけど、この話の肝は、ハンガリアンとは、

 - 統一的な略号を名前の一部に含ませる命名法であること
 - 略号の表すものは識別情報であること

であることに注意が必要だよ。
112デフォルトの名無しさん:2007/11/11(日) 15:51:44
とりあえず111が読解力なさすぎなことだけは分かった
113デフォルトの名無しさん:2007/11/11(日) 15:53:20
>>111
途中送信しちまったよ
お前の日本語能力欠如しすぎ

>だからそれが間違ってるって言ってるのね。
その「それ」とは何を指しているのか明確にしろ。話はそれからだ
114デフォルトの名無しさん:2007/11/11(日) 15:55:31
それが間違ってる
こういう奴ら
この話

議論の場で指示代名詞を連発する奴にろくな奴はいない
115デフォルトの名無しさん:2007/11/11(日) 15:56:05
それ = 109の最後の行
116デフォルトの名無しさん:2007/11/11(日) 16:04:32
>>111
>[アプリケーションハンガリアン]
>ハンガリアンのうち、名前に付加する識別情報が意味論的なもの。

>>88
>通貨ならそこまでしなくてもPriceInYenとかPriceInDollarsってすれば済む。
>ynPriceとかdlPriceとかに合理性は見出しにくい。

88はYen、Dollarsに「この値は日本円換算」「この値はドル換算」という意味論的なものを付けているが?
117デフォルトの名無しさん:2007/11/11(日) 16:07:34
三歩歩くと全部忘れる鶏頭なのかねw
だから、そこに「ハンガリアンのうち」と前置きがあるのを読めないのか?w
ハンガリアンとは何かも直前にも書いてあるし、直後にも念を押してるじゃないかだから
118デフォルトの名無しさん:2007/11/11(日) 16:10:28
へ?ああ、馬鹿なのか
119デフォルトの名無しさん:2007/11/11(日) 16:14:27
つまり>>88のやり方を「アプリケーションハンガリアンのようなもの」と評価されるのが嫌なんだろ
>>117にとってはアプリケーションハンガリアン様はもっと高尚にして神聖で、改変の許されないものなんだよ
120デフォルトの名無しさん:2007/11/11(日) 16:24:12
なんかもう呆れた通り越してほほえましいなw
形式ばっかりにこだわって本質が見えてないというかなんというか

歴代ガンダムをまとめて「ガンダム」って呼んだら、ガンダムは初代だけ!ZはちゃんとガンダムZという別物で
とか講釈始められた気分だ
121デフォルトの名無しさん:2007/11/11(日) 16:52:47
>>111にある「ハンガリアン」ってなんだ?
システムハンガリアンやアプリケーションハンガリアンと区別したいので解説頼む。
122デフォルトの名無しさん:2007/11/11(日) 16:53:40
あんまりいじめるなよ
馬鹿なんだから
123デフォルトの名無しさん:2007/11/11(日) 17:00:27
>>121
別に俺の解説を聞いても仕方がなかろう。

Joel氏がなんと言っているかを調べたければJoel氏の文章を自分で読解するしかないし、
一般的な用語法が知りたいなら自分で「調べる」ほかないでしょ。

っていうか、俺の(Joel氏がその三者をどう区別しているか、に対する)見解は111に
表現されていると思うが。

君は「〜のうち」っていう表現の意味するものを知らないの?w
君は「人間のうち、チンコがついているのが男性である」という文書を読んだときに、
同じように「人間と男性の区別って何だろう?」という疑問をもつの?w

だとしたらかなりのお馬鹿さんだよ。
124デフォルトの名無しさん:2007/11/11(日) 17:05:45
>>123
ごめん
痛々しくなってきた

88「人間?哺乳類でいいだろ」
スレ民「哺乳類ってわけかたでもいいな。人間ってカテゴライズするのとやりたいことは似てるな」

お前「似てない!全然似てない!」
スレ民「カテゴライズして名前付けるって意味では一緒だろ」
お前「全然違うんだい!」
125デフォルトの名無しさん:2007/11/11(日) 17:10:20
>>123
ごめん
俺らもう「読解した」からお前の説明一切いらないや
消えて^^
126デフォルトの名無しさん:2007/11/11(日) 17:22:29
>>124
いや悪い、義務教育レベルの読解力を欠く連中に痛いとおもわれても何も堪えないよ。
127デフォルトの名無しさん:2007/11/11(日) 17:36:48
しかし、何かの国際機関の調査で日本の児童生徒の読解力は先進国中最低だ、
って調査が出てたと思ったが、本当に由々しき問題だよこれ。

そもそもJoel氏が件の文書を書いた動機は不当に貶められている(と氏が考えている)
アプリケーションハンガリアンの価値の復権にあるのだが、ここの馬鹿連中は
それが少しも読めてない。

要は氏は唾棄すべきはシステムハンガリアンであってアプリケーションハンガリアンは
称揚すべきものだ、と考えているわけ。
だからそのためには、アプリケーションハンガリアンの、システムハンガリアンとの
違いを強調して読者に理解させる必要がある。

アプリケーションハンガリアンで命名された変数にこめられるものが「意味論」であることを
強調するのはそのためだ。

全く別の言い方をすれば、氏は
「アプリケーションハンガリアンによる命名には意味論的な違いの表象を含む」
と言っているのであって、
「意味論的な違いの表象を含むものがアプリケーションハンガリアンだ」
などとは言ってない。

ようはここの馬鹿どもは
「郵便ポストは赤い」
という文章を
「赤いのは郵便ポストだ」
などと間抜けでトンマな誤読をしているというわけだ。
128デフォルトの名無しさん:2007/11/11(日) 17:44:55
トンマな誤読をしていると思い込んでるだけ

>「意味論的な違いの表象を含むものがアプリケーションハンガリアンだ」
こんなこと誰も言ってない

>>88に対し
お前のも意味論的な違いの表象を含めているから、アプリケーションハンガリアン『のようなものだ』
だからアプリケーションハンガリアンが必要ないのではなく、たまたまお前が天然で似た表記ルールづけを使っていたので「お前は必要性を感じなかった」にすぎないよ

と言っただけ
129デフォルトの名無しさん:2007/11/11(日) 17:49:09
>>88-92の流れを見て勘違いできるのが凄いよなぁ
130デフォルトの名無しさん:2007/11/11(日) 17:55:57
>>128
しっかし馬鹿だなホント

「アプリケーションハンガリアンのようなもの」≠「アプリケーションハンガリアン」

別の言い方をすれば、否定しているのは「アプリケーションハンガリアン」であって
変数名に意味論的な差異をこめることは否定してないの。

だから言ってるじゃん何度も。
意味論的な差異を変数名にこめるのがアプリケーションハンガリアンではない。
Joel氏もそんなことは全然言ってないの。

郵便ポストは赤い((アプリケーションハンガリアンによる命名には意味論的な差異の表象を含む)
といっているのであって赤いのが郵便ポストだなんていってないってのw
131デフォルトの名無しさん:2007/11/11(日) 18:00:51
ようするにプレフィックスの形態をとっていないものを
(広義の)アプリケーションハンガリアンと言ってよいかどうかという話だよな、元々。
132デフォルトの名無しさん:2007/11/11(日) 18:03:54
その通り。

言ってよいかどうかは誰も回答不能だろうけど、一般には「アプリケーションハンガリアン」
という言葉はプリフィクスやサフィックスなどのタグで意味論的な差異を表す
命名法のことを指す。

Joel氏もそう言ってる。
133デフォルトの名無しさん:2007/11/11(日) 18:04:07
>>130
だからさぁ、何したいの?目的がわからん

128である俺(やほかの連中)に「何を理解させたくて説明してる」の?
俺は
・アプリケーションハンガリアンは有用だね
>>88のやり方はアプリケーションハンガリアンみたいなもんだね。それでいってもいいんじゃね?
としか思ってないんだが?
134デフォルトの名無しさん:2007/11/11(日) 18:04:53
>>132
ぶはww
ただそれだけのことをだらだらわけのわからん理屈こねくりまわしてたのかよw
何したいのかサッパリわからんかったわ
135デフォルトの名無しさん:2007/11/11(日) 18:07:06
ごめん。
俺も痛々しくて見ていられない。
136デフォルトの名無しさん:2007/11/11(日) 18:07:14
つまり、ガノタが一般人に、初代ガンダムとガンダムZの違い〜という俺の例えはあってたわけだな
アホくさ
ただの狂信者か
137デフォルトの名無しさん:2007/11/11(日) 18:08:02
Joel氏もそう言ってる(キリッ

な状態だなほんと
138デフォルトの名無しさん:2007/11/11(日) 18:11:04
つまり>>88>>90を読んで

大抵の人
「概念的にはたしかに90の言うとおり、アプリケーションハンガリアンと『同様だな』
アプリケーションハンガリアン(のようなもの)だと言っても過言ではないだろう」

132
「プリフィクスの形態をとってないものをアプリケーションハンガリアンと呼ぶなrftgyふじこ!
>>90はキチガイ!勘違いやろう!俺が説明してやる!!!」
139デフォルトの名無しさん:2007/11/11(日) 18:15:38
まあ鶏頭クンたちは落ちついて>>88に後続するレスを読め

例えば>>89-90
それでもまだ>>138のような寝言が言えるならたいしたもんだよ。
たいしたもん、ってのはもちろん嫌味だけどねw
140デフォルトの名無しさん:2007/11/11(日) 18:23:27
>>139
89書いたの俺なんで口挟むぞ
あくまで88の「プリフィクスは見づらいからアプリ(略)は駄目駄目」という感想に対して、重要である趣旨そのものを説明しただけ
「アプリケーションハンガリアンとは何か」という問われかたをしたときはプリフィクスのことまで含むのは当たり前だろ

子供を諭してたら横から「その説明は哲学的に言うと違いますねフフン」とか言われた気分だよ
141デフォルトの名無しさん:2007/11/12(月) 01:08:27
>>88
変数名のうち「円」,「ドル」を表す部分がどこかわからないじゃん?
もちろん少し考えればわかるけど。
変数名をみて少し考えなきゃならないと、可読性が下がってしまう。

でも、変数名の頭の2つの小文字に意味を持たせるというルールにすると
すぐに(変数名の最初の小文字を見れば)意味が理解できるので
合理性はそれなりにあると思うよ。
142デフォルトの名無しさん:2007/11/12(月) 01:45:17
間違ってると思うよ。
その意見は、「略号と意味を結びつけるコストがゼロである」という
実際にはあり得ない前提に立っている。

それが言いすぎだとしても、少なくとも略号を意味をリンクするコストが、
明示的な命名を読解するコストより低いという前提の物言いではあるわけだ。

これがいかにナンセンスな前提かはプログラマなら経験的にわかるでしょ。
一年後にその訳のわからん略号の溢れるコードをよむ場面を想像してみ。
運よく略号の意味がドキュメント化されていれば少しは救われるが、(それでも
訳のわからん略号を覚えるのは結構骨だ)もしそれすらなかったとしたら・・・
143デフォルトの名無しさん:2007/11/12(月) 02:08:10
そもそも「円」や「ドル」を変数名で表す必要なんてない、ってことで >>87 なんだけどね。
ハンガリアン記法って、型システムが貧弱なC言語とかのための、人力で型システムを一部代行する運用規則だから。

C++みたいな言語で、円とドルが複雑に混在してるコード書くんだったら、
Currency<Yen> price;
みたいにしちゃうほうが、ずっとすっきりする。

人間が目で見て調べなくても、処理系が自動で検査してくれるし。
変換用の演算子とかも定義しとけば、必要に応じて自動で変換もしてくれるだろうし。
144デフォルトの名無しさん:2007/11/12(月) 20:07:28
>>141
別に88のなかで「変数名の最後の単語がkind情報をあらわす」と決めてるかもしれないぞ?
145デフォルトの名無しさん:2007/11/12(月) 20:13:21
>>143に同意。

>>144
そういうのは当然略称一覧(ただのテキストファイルで十分)みたいなのを
保守しつつやるんだろう。
C++のように抽象や概念を直接コード化できれば一番いいのだが、
出来ないんなら、コード化できなかったルールをどこかに書くしかない。
146デフォルトの名無しさん:2007/11/12(月) 20:58:46
通貨の例が不適切だったのでは?
つまり、システムハンガリアン的な要素も含んでいる。

しかし、>>2の安全であるとか安全でないとかであれば、
まだ使い道はあると思う。

たとえば、文字コードだとどうだろう?
S-JISならsHoge, EUC-JPならeHoge, UnicodeならuHoge
結局は同じかな?

>>143
>変換用の演算子とかも定義しとけば、必要に応じて自動で変換もしてくれるだろうし。
演算子のオーバーロードは危険だと思うがな〜

>>144
>別に88のなかで「変数名の最後の単語がkind情報をあらわす」と決めてるかもしれないぞ?
たとえば、香港ドルだとPriceInHongKongDollarとなり、
最後の単語だけみると、USドルと間違えるかも知んないぜ?
>>88がいいたかったのは、変数名の最後より最初のほうが見やすいんじゃね?ってことでしょ
147デフォルトの名無しさん:2007/11/13(火) 10:50:57

日本がハンガリーに負けそうだお

【いくぞ】一番クリックした国が優勝【30,000,000click/min】
http://wwwww.2ch.net/test/read.cgi/news4vip/1194876671/

最強のOCR兵器開発が急務かな
148デフォルトの名無しさん:2007/11/13(火) 10:51:27
すれ違い。。
149デフォルトの名無しさん:2007/11/13(火) 18:09:42
文字コードに関しては、内部は全部 UTF-8 で統一、読み書きのときに変換する、ってのが有効じゃないかな。

あえてやるなら
CodedString<SHIFT_JIS> hoge;
とかだろうけど。
適切な変換演算子定義しとけば、特定の文字コード仮定した処理なんかも期待通りに動くだろうし。
演算子定義しない場合でも、文字コードの違いを型の不一致として検出してはくれるよね。
150デフォルトの名無しさん:2007/11/16(金) 19:28:24
なんでよりにもよって内部がutf-8なわけ?
UTF-32とかならわかるけど、内部コードがMBCSってありえなくね?

151デフォルトの名無しさん:2007/11/16(金) 21:32:55
理由を書かないと独り言だぞw
152デフォルトの名無しさん:2007/11/19(月) 16:18:40
>>150
perlとかrubyとか。
153デフォルトの名無しさん:2008/02/18(月) 10:03:04
ハンガリアン記法でstring& fnameは、どの様に書いたらイイデツカ
154デフォルトの名無しさん:2008/03/06(木) 08:33:32
システムな方ならfnameというのがファイル名だとしてfnTempとかfnDataとか
そんな感じじゃね?

アプリな方ならsTempFileとかsDataFileとかか。
155154:2008/03/07(金) 01:30:05
しまった、アプリ<->システム取り違えてた
156デフォルトの名無しさん:2008/05/10(土) 01:55:21
良スレ
157デフォルトの名無しさん:2008/05/10(土) 05:10:11
1,2,ハンガリアン
2,2,ハンガリアン
ハンガリアン ハンガリアン♪
158デフォルトの名無しさん:2008/05/10(土) 05:34:46
システムハンガリアンの規約でやってたときは、すべての変数にプリフィクス付けてたが
アプリケーションハンガリアンでもすべてに付けないといけないんだろうか?
一部の重要な箇所だけでいいかな。
でもそれだとプリフィクスに相当する部分が左辺と右辺で違うソースだらけになって
ハンガリアン使ってる箇所も気付かず見逃してしまうだろうか。
159デフォルトの名無しさん:2008/05/10(土) 18:53:53
システムハンガリアン:アプリケーションハンガリアン
じゃ分かりにくいから、システムの方はWindows
偽ハンガリアンとか呼びたい。これならいかにも悪
そうだし悪くなった原因も明確
160デフォルトの名無しさん:2008/05/10(土) 20:57:15
システムだろうとアプリだろうとクソはクソ
prefixで変数の素性がわかって便利〜♪なんてのが許されるのは
FORTRANだけなの!
中途半端に変なのつけずに素直に変数名そのものに情報を盛り込みましょう
161デフォルトの名無しさん:2008/05/10(土) 21:01:11
それがアプリケーションハンガリアンじゃね?
162デフォルトの名無しさん:2008/05/10(土) 21:18:47
違うよ
163デフォルトの名無しさん:2008/05/10(土) 21:23:39
接頭辞は1文字じゃないといけないとか
短縮形じゃないといけないとか思ってないか?
164デフォルトの名無しさん:2008/05/10(土) 21:29:18
prefixという形態そのものがクソなんだよ
付随的属性は後ろにつけるのが本来の姿だし読みやすいのだ
これは日本語だろうと英語圏だろうと同じ
165デフォルトの名無しさん:2008/05/10(土) 21:45:39
形容詞は日本語でも英語でも前に付けるもんだが・・・。
166デフォルトの名無しさん:2008/05/10(土) 22:28:05
ハンガリアンでprefixにするのは形容詞相当部分じゃないな、普通
むしろ 〜of xxx とか 〜in xxx のxxxに相当するpostfix的属性のことが多い
それを無理に前に持ってきても読みづらくなるだけで大して役にたたない
まあハンガリー語ではどうか知らんがw
167デフォルトの名無しさん:2008/05/10(土) 22:32:18
日本語だと前だろ?
168デフォルトの名無しさん:2008/05/10(土) 22:34:30
後ろだな
rwMax, colMaxは日本語では「最大行数」、「最大カラム数」だ
169デフォルトの名無しさん:2008/05/10(土) 22:35:05
行数の最大値、カラム数の最大値、だろ。of に相当する使い方すると。
170デフォルトの名無しさん:2008/05/10(土) 22:36:35
言い換えただけ、本質はそういうこと
171デフォルトの名無しさん:2008/05/10(土) 22:39:35
nElems は number of elements だし
172デフォルトの名無しさん:2008/05/10(土) 22:43:10
まあ、元の状態で前か後かなんてどうでもいいってことだ。
「要点は最初に書く」 という離心的な発想は極めて合理的。
最後に書いた方が・・・なんてのは話下手のやること。
173デフォルトの名無しさん:2008/05/10(土) 22:50:04
形容詞じゃないじゃん・・
number of elements = element number なら
むしろelementのほうが形容詞的存在じゃないのか
174デフォルトの名無しさん:2008/05/10(土) 22:50:55
普通は形容詞じゃないって言ったのはお前の方じゃん・・・
175デフォルトの名無しさん:2008/05/10(土) 22:54:45
そうだよ
形容詞だって主張したのはお前じゃん・・
176デフォルトの名無しさん:2008/05/10(土) 22:58:57
形容詞じゃないという主張に関しては、
ああ、そういやそうかもなあ、と思った。
だからそれにそって話をしたら叩かれた・・・。
177デフォルトの名無しさん:2008/05/10(土) 23:02:27
fnTexture // クソ
TextureFileName // カコワルイ
texture_filename // まあ普通だな
textureFilename // 俺はこれかな
178デフォルトの名無しさん:2008/05/11(日) 00:49:52
元々は数十KBのメモリ空間にアセンブラやCでガリガリ詰め込んでた頃の
テクニックだよ。
まあとにかくお前ら「実録!天才プログラマー」を入手して
考案者本人の話を読んでみなよ。

この本は他にもBASICを書いていたころのビル・ゲイツとか、PostScriptの開発
者とか世界で初めてスプレッドシートを開発した人とか、今では名前すら残っ
ていない怪しげな「自称天才」とか、いろいろ面白い話やら手書きのメモやら
が載ってるから買って損はない。

訳者がコンピュータ畑の人じゃないので少〜し読みにくいけど。
179デフォルトの名無しさん:2008/05/11(日) 01:10:24
>元々は数十KBのメモリ空間にアセンブラやCでガリガリ詰め込んでた頃の
>テクニックだよ。

そこまではさすがにさかのぼらないだろ
その時代のPC上のASMやCの言語仕様ってのは
変数名は先頭6文字まで識別とかその程度だから
prefixなんかつけてたらかぶっちまう
180デフォルトの名無しさん:2008/05/11(日) 01:17:41
textureFilename = sourceFilename; //OK
textureFilename = sourceDirectoryname; //NG

fnTextureFilename = fnSourceFilename; //OK
fnTextureFilename = dnSourceDirectoryname; //NG

上でも普通は問題ないが、下なら見た瞬間にfnとdnの意味は分からなくても、なにかおかしいとは感じられる。
思考することなく脊髄反射で判定できるので、頭が悪い人には有効だと思われる。
181デフォルトの名無しさん:2008/05/11(日) 01:19:53
ああ、でもよく考えると8086に移りたての当時は
np (near pointer)/fp (far pointer) だけはつけてたな
これがないとときどきわけわかんなくなったw

>>180
その程度のくだらない例しか思いつかないのかよ
頭が悪い人っておまえのことだろ、もう帰っていいよ
182デフォルトの名無しさん:2008/05/11(日) 01:33:50
>頭が悪い人っておまえのことだろ
正解。だから色々、小細工しようとしてます。
周りと比べて明らかにコードを理解する能力が低いって自覚してる。
他人のコード読むときに書き直しながら理解して、後から戻すなんて無駄なこともしてる。
183デフォルトの名無しさん:2008/05/11(日) 13:16:51
たぶんループしてる話だとは思うんだけど、
アプリケーションハンガリアン的なものっていうのは、使っても問題ない場面を
弁えて抑制的に使う分には確かに有用な場面もあるんだよね。

問題なのはフールプルールじゃない、つまり「馬鹿の一つ覚え」的に乱用して
意味不明な記号あふれる読解不能コードを生産する蓋然性があるってことで。
184デフォルトの名無しさん:2008/05/11(日) 13:55:59
アプリケーションハンガリアンの言う所の「prefix」って
別に無理に短縮形にする必要はないんだろ?
185デフォルトの名無しさん:2008/05/11(日) 14:08:04
そりゃおかしい。
短縮しないのならそもそもprefixにする必要もなかろう。
186デフォルトの名無しさん:2008/05/11(日) 15:29:32
何で?
187デフォルトの名無しさん:2008/05/11(日) 15:44:39
プレフィックスが左右で同じかどうか見るだけなんだから
短縮してなくても問題なくね?
188デフォルトの名無しさん:2008/05/11(日) 16:25:52
長いと打つの面倒だろ
189デフォルトの名無しさん:2008/05/11(日) 16:27:16
インテリセンスで
190デフォルトの名無しさん:2008/05/11(日) 16:27:54
プリフィクスにしてもしなくても長さは大して変わらないと思うが・・・
191デフォルトの名無しさん:2008/05/11(日) 18:57:50
文句あるんならJavaでも使ってろよ。
192デフォルトの名無しさん:2008/05/11(日) 18:59:41
??
193デフォルトの名無しさん:2008/05/11(日) 22:36:58
>>179
シモニイがXerox PARCにいてALTOで動くBravoを書いたころ、
ビル・ゲイツはAltair 8800で動くTinyBASICを書いていた。
その3年後、ベル研のカーニハンらによってC言語が公開された。
時代的にはそんなもの。

シモニイはMicrosoftに移る前から独特な識別子の命名規則を
編み出して使っていた。MSに移った頃は
「あのハンガリー人の書くコードの変数名は変わってる」
と噂されていた。
194デフォルトの名無しさん:2008/05/12(月) 01:43:09
それって個人的に使ってただけで公式に普及してたわけじゃないのでわ
195デフォルトの名無しさん:2008/05/12(月) 01:56:20
普及しだしたのはDOSの最後の方のかWINの最初の方のを
作ってたときだったか。
196デフォルトの名無しさん:2008/05/17(土) 23:14:16
今後、登場する言語にはこんな機能がつくようになりますように。
http://www.kaz.appi.keio.ac.jp/~syl/Hungarian/
197デフォルトの名無しさん:2008/05/18(日) 00:53:08
こいつは C でプログラム組めないんだろうな。
198デフォルトの名無しさん:2008/05/30(金) 16:15:25
ハンガリアンチョップ!
199デフォルトの名無しさん:2008/06/18(水) 03:07:07
新しい言語は強いtypedefを持ってるだろ
200デフォルトの名無しさん:2008/06/18(水) 17:00:05
ポインタなのかリファレンスなのか実体なのかってのの判別は、
typedefでは解決できないんじゃ。
201154:2008/08/02(土) 18:27:12
元々も

 「意味が違う情報を保持する変数には違う印を名前に付ける」

が変質して

 「型が違う変数には違う印を名前に付ける」

とクソになって、最後は

 「型と製品と所属モジュールの情報をコード化してすべての変数に付ける」

というありえないgdgd状態に。
202デフォルトの名無しさん:2008/08/03(日) 11:44:00
元々の論文の "type" は変数の種類、分類を表していたのに
変数の型を表していると誤解されたのが原因と聞いてるけど
203デフォルトの名無しさん:2008/12/29(月) 07:45:45
2も見ねーで語るなよwww
204デフォルトの名無しさん:2009/02/21(土) 00:03:21
今度就職した会社は、完全にシステムハンガリアンを採用しているみたいです。

VBのソースなんだけど、、、

cls
fnc
sub
pub
str
CNST_
asp

とか。で、これらを組み合わせて使ってるんだよね。
定数なんか大文字にしているのに、わざわざCNST_付けてるのって意味ない。
205デフォルトの名無しさん:2009/02/21(土) 02:37:30
クラスが全部clsなのとか……。
206デフォルトの名無しさん:2009/02/21(土) 09:00:18
C++でやってた時、m_clsXXXとゆうのは結構あった。
VBだとm_oXXXもしくはm_objXXXが多かったけど。
207デフォルトの名無しさん:2009/02/21(土) 15:44:47
アンチハンガリアンだが、VB6やVBAみたいに
型と変数名の名前空間が分離していないくせに
大文字小文字も区別しないクソ言語使ってるときには
安直に衝突を回避する策として使えることが分かった。
VB.net以降は少しはマシになったのかな?使ってないから知らんけど。
208デフォルトの名無しさん:2009/02/21(土) 17:31:32
>>207
VBの糞仕様は指摘どおりなんだが、>>204みたいな方式は冗長すぎる頭の悪いやり方だよ。
全然有用じゃない。

普通はこんな感じでやれば糞仕様のVBでももう少しスマートにできる

- 自作クラスはcでプリフィクスする。

- enumは使わずに標準モジュールの定数で代用する。

- 基本、変数名に余分なプリフィクス・サフィックスは付けない。

- ただし、他所製のコンポーネントでクラス名と同じ名前を変数名に使いたい場合は
 IDEの流儀に従ってインスタンス名を数字でサフィックスする。
209デフォルトの名無しさん:2009/02/21(土) 18:58:42
VB6時代だと、画面の標準部品は、MS仕様にあわせていたけど
アレはアレで便利だったと思うけどな。

txtHoge <-- テキストボックス
lblHoge <-- ラベル
btnHoge <-- コマンドボタン

まあ、今はやらんけど結局
hogeText
hogeLabel
hogeButton

になっただけなんだ。
210デフォルトの名無しさん:2009/02/21(土) 19:20:01
Java本でhogeButtonみたいな例を初めて見たとき、
なんだ普通の英語の語順で書けばいいんじゃないかと開眼した。
ハンガリー語という仇名には、ある種の皮肉というか悪意がこもってるかも。
211デフォルトの名無しさん:2009/02/21(土) 19:48:39
>>209
既出だと思うけど標準コントロールのハンガリアン表記は結構有用だと思う。

「なんて名前つけたっけ?」って時もインテリセンスを検索的に使えるし。
ベタにTextとか書くと"text"って単語がコントロール名に使いにくくなるし。
英語的にも関係代名詞使った構文みたいな語順になるから意味が頭に入りやすいし。
212デフォルトの名無しさん:2009/02/21(土) 20:10:23
それでもtextTextBoxのほうが好きだ。
自作コンポーネントの変数追加したら、そこだけ浮いちゃうんだろ?
213デフォルトの名無しさん:2009/02/21(土) 20:15:33
>>210
でも先頭に無いと並んで書いた時に読み辛いんだよね
214204:2009/02/21(土) 21:06:10
grep して調べたら、Functionプロシージャなのに、sub〜のプレフィックスが付いてて、もはやルールが崩壊してるんだよね。

しかもその会社は、DBのテーブルやフィールドが全て大文字で、アンダーバーの区切りなし、母音省略で、かなりやりにくいわ。

辞めた前の担当者だけとかだったらいいけど、会社としての方針なら最悪・・・。
215デフォルトの名無しさん:2009/08/06(木) 16:30:26
216デフォルトの名無しさん:2009/09/06(日) 13:27:40
よくある図式

普通のコードの書き方を覚える
↓(窓の壁)
システムハンガリアンを知る

意味わかんねーし糞うぜー
↓(情弱の壁)
アプリケーションハンガリアンを知る

俺も世間も駄目扱いしてたけど実はそうじゃなかったのか?
↓↑(対立)
でもよくよく考えると駄目じゃね?
217デフォルトの名無しさん:2009/09/06(日) 20:32:37
ポインタだけはpHogeとかつけるな。
ppHogeとか付いて無いと分かんなくなる。
218デフォルトの名無しさん:2009/12/23(水) 15:55:55
219デフォルトの名無しさん:2009/12/27(日) 12:00:25
ハンガリー人を右に
220デフォルトの名無しさん:2010/06/01(火) 09:39:15
ダブルハソガリアッ上
221家電.com:2010/06/01(火) 09:45:12
家電.com
HP
http://Kadencom.chochouo.com

222 忍法帖【Lv=1,xxxP】 :2011/05/20(金) 08:58:35.16
保守
223 忍法帖【Lv=4,xxxP】 :2011/07/11(月) 03:37:25.53
test
224 忍法帖【Lv=8,xxxP】 :2011/07/12(火) 07:07:15.89
test
225 忍法帖【Lv=2,xxxP】
窓辺ななみ