ハンガリアン記法 [part1]
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/08/21(火) 13:14:08さぁ意見を
↓
0002デフォルトの名無しさん
2007/08/21(火) 13:18:26http://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
0003デフォルトの名無しさん
2007/08/21(火) 13:20:050004デフォルトの名無しさん
2007/08/21(火) 13:21:410005デフォルトの名無しさん
2007/08/21(火) 13:25:550006デフォルトの名無しさん
2007/08/21(火) 13:40:110007デフォルトの名無しさん
2007/08/21(火) 13:41:590008デフォルトの名無しさん
2007/08/21(火) 13:54:250009デフォルトの名無しさん
2007/08/21(火) 14:07:25終了
0010デフォルトの名無しさん
2007/08/21(火) 15:42:18個人的にはどっちでもいいと思うけど、むやみやたらに毛嫌いする変な人が多い。
もう見ただけで「うわーもうやってらんね。俺様のスーパー技術者人生としてのプライドに関わることだから。絶対こんなのツカワネ」。
ハンガリアン記法はともかく、
youcanfly()やyou_can_fly()より、YouCanFly()の方が読みやすくないかな?
俺が日本人だから? 英語に馴れてる人なら前者の方が読みやすくなるんだろうか(外人は前者の人が多いと思う)。
0011デフォルトの名無しさん
2007/08/21(火) 15:46:06俺も>>10同様どちらでも構わないと思う。強いて言うならばアプリケーションハンガリアン記法は、採用すべき。
>>2のURLにも書いてあるが・・・
0012デフォルトの名無しさん
2007/08/21(火) 16:32:44> youcanfly()やyou_can_fly()より、YouCanFly()の方が読みやすくないかな?
> 俺が日本人だから? 英語に馴れてる人なら前者の方が読みやすくなるんだろうか(外人は前者の人が多いと思う)。
言語ごとにマジョリティが異なるな
0013デフォルトの名無しさん
2007/08/21(火) 18:41:20読みやすい読みやすくないじゃなくてなんであるかによって使い分ける。
例として、
大文字で初めてCamelCase → クラス名
大文字だけを使う → 定数
小文字で初めてcamelCase → メソッド名
全部小文字で単語間に_を入れる → 変数名
みたいな感じ(あくまで一例、他のルールももちろんあり得る)。
ハンガリアンではないけど見た目で何かすぐわかるので、
ハンガリアンの考え方は取り入れてる感じ。
0014デフォルトの名無しさん
2007/08/21(火) 21:53:00ちがうだろ、>>9のはjoelで全て語り尽くされてるって話だろ?
俺もアプリケーションハンガリアンは推奨派だし使う。
ちなみにシステムハンガリアンは有害。
0015デフォルトの名無しさん
2007/08/22(水) 00:03:54これがC#でIntPtr型ならきっとアプリケーションハンガリアンだろう。
しかし、C++でHWND型とHBRUSH型を使っていれば、
とってもシステムハンガリアンに思えないか?
そう思いつつ、今日もC++でそんな変数名を付けている。
0016デフォルトの名無しさん
2007/08/22(水) 00:13:260017デフォルトの名無しさん
2007/08/22(水) 01:31:220018デフォルトの名無しさん
2007/08/22(水) 10:52:47現在、多くのJavaプログラマがString型オブジェクトならば「str○○○」のように使用しているし、全てが有害って判断は遺憾に思うぞ。
0019デフォルトの名無しさん
2007/08/22(水) 10:55:54…そうか?
0020デフォルトの名無しさん
2007/08/22(水) 10:57:350021デフォルトの名無しさん
2007/08/22(水) 11:22:55Javaで言ったらboolean型がis○○だったりhas○○だったりするくらいじゃね?
0022デフォルトの名無しさん
2007/08/22(水) 12:35:450023デフォルトの名無しさん
2007/08/22(水) 12:53:200024デフォルトの名無しさん
2007/08/22(水) 13:52:01iniファイル文字列
GUI表示文字列
Web表示文字列
これを全部同じstrにくくるとな?
0025デフォルトの名無しさん
2007/08/22(水) 14:03:15疑問にも思わず使ってる連中がいたとしたら、
そいつら全員莫迦なんだから遺憾も糞も。
0026デフォルトの名無しさん
2007/08/22(水) 19:10:470027デフォルトの名無しさん
2007/08/22(水) 21:13:320028デフォルトの名無しさん
2007/08/22(水) 21:28:100029デフォルトの名無しさん
2007/08/22(水) 21:31:40アプリケーションハンガリアンで付けるプレフィクスは型情報じゃない。
0030デフォルトの名無しさん
2007/08/22(水) 22:23:04javaでそれは見たことないな。VB6.0時代なら腐るほど見たが。
0031デフォルトの名無しさん
2007/08/22(水) 23:08:57配列とかリストの変数名を複数形にするのも一種のハンガリアンかな?
0032デフォルトの名無しさん
2007/08/22(水) 23:22:000033デフォルトの名無しさん
2007/08/22(水) 23:26:42foreach (var user in users) {
……
}
0034デフォルトの名無しさん
2007/08/22(水) 23:31:18……
}
胡散クサー
0035デフォルトの名無しさん
2007/08/23(木) 01:12:110036デフォルトの名無しさん
2007/08/23(木) 03:21:08strなんちゃらは有害
0037デフォルトの名無しさん
2007/08/23(木) 07:42:500038デフォルトの名無しさん
2007/08/23(木) 15:15:510039デフォルトの名無しさん
2007/08/23(木) 15:27:11スター派、ストラ派、エスティーアール派などなど
お前等は何て読むよ?
0040デフォルトの名無しさん
2007/08/23(木) 15:36:550041デフォルトの名無しさん
2007/08/23(木) 15:43:410042デフォルトの名無しさん
2007/08/23(木) 16:09:300043デフォルトの名無しさん
2007/08/23(木) 16:30:41bufとかはバフとか言うけどこれだけは何故か略さない
LPTSTRとかの意味が分からなくて小一時間悩んだせいかもしれん
0044デフォルトの名無しさん
2007/08/23(木) 18:29:140045デフォルトの名無しさん
2007/08/23(木) 23:15:44ジャンガリアン記法に見えてしまうのですがどうしたらいいでしょうか?
0046デフォルトの名無しさん
2007/08/23(木) 23:19:3636は、18の言うシステムハンガリアンが全ての場合で
有害だとも言い切れなくないというのに賛成できないだけだと思う。
0047デフォルトの名無しさん
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 が勝手にかかれば版画利案の醜い字面に
耐えることなく同じ効果を享受できる。
0048デフォルトの名無しさん
2007/08/23(木) 23:36:030049デフォルトの名無しさん
2007/08/24(金) 00:10:55コードチェックの自動化ができればいいってこと。単なる強いtypedefだと
Pascalになってしまう(長さが違うだけで違う型です!とか)
0050デフォルトの名無しさん
2007/08/24(金) 06:59:02適切にクラスを作ればいいだけのような。
0051デフォルトの名無しさん
2007/08/24(金) 09:19:570052デフォルトの名無しさん
2007/08/24(金) 10:03:58語尾にNをつけるようにしてる
Nがついてるものはnullチェックしないとダメ、とルール化できる
0053デフォルトの名無しさん
2007/08/24(金) 10:53:490054デフォルトの名無しさん
2007/08/24(金) 11:04:15NonNullもマジでやっちゃうかもな
煩雑極まりないことになりそうだが
0055デフォルトの名無しさん
2007/08/24(金) 17:22:54ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs600/html/hunganotat.asp
0056デフォルトの名無しさん
2007/08/27(月) 15:47:570057デフォルトの名無しさん
2007/08/29(水) 06:07:10土旦土旦 ハンガリアン墓場 旦土旦土
0058デフォルトの名無しさん
2007/08/29(水) 18:21:030059デフォルトの名無しさん
2007/08/31(金) 12:46:250060デフォルトの名無しさん
2007/09/26(水) 17:07:530061デフォルトの名無しさん
2007/11/05(月) 20:45:38m_strName
見た瞬間に、String型でメンバー変数なのね。って分かる
他人のプログラムの文中に
Name
って変数が出てきた時って、みんなどうやって情報集めるの?
カーソルあわせて型とかが出るまで待つの?
0062デフォルトの名無しさん
2007/11/05(月) 21:08:31だいたいは関数とかクラスの宣言見ればわかるし。
出所不明な変数が突然出現したら、一体どこから来た何に使う変数なのかってのを調べなきゃいけない。
型だけわかったって足しにならないよ。
0063デフォルトの名無しさん
2007/11/05(月) 21:17:38サニタイズやエスケープされてるのかが気になるよ。
0064デフォルトの名無しさん
2007/11/05(月) 21:29:56変数を見ただけで型が分かったとして、それが正しいかを結局は調べる必要がある。
0065デフォルトの名無しさん
2007/11/05(月) 21:46:10メンバ変数かどうかも同様。
まさかメモ帳で開発してるわけじゃないだろ?
0066デフォルトの名無しさん
2007/11/05(月) 22:29:59きっと糞ソースばっかり見せられてるから「せめて(システム)ハンガリアンくらい使えよ。(どうせお前じゃアプリケーションハンガリアンなんてできないだろうし)」
って思っちゃうんだな
0067デフォルトの名無しさん
2007/11/05(月) 22:35:38Javaなのにクラスなんて1つもつくれないし、関数も少なめにしなくちゃいかん
0068デフォルトの名無しさん
2007/11/06(火) 22:15:480069デフォルトの名無しさん
2007/11/06(火) 22:45:43限られたリソース空間にプログラムを詰め込もうとすると
構造としてのわかりやすさを犠牲にすることがある、
それゆえ字面のテクなんかでわかりやすさを確保せざるを得ない、
ってことでしょ。
おれはプログラマじゃないから適当に想像してみたw
0070デフォルトの名無しさん
2007/11/06(火) 22:53:11std::vector<char>とstd::vector<unsigned char>あたりが混ざったプログラムが出てきたが、
おいらもハンガリアンについて考え直さないといけないな。
0071デフォルトの名無しさん
2007/11/06(火) 23:13:52今はモンゴリアン。
チョップ。
0072デフォルトの名無しさん
2007/11/07(水) 07:04:140073デフォルトの名無しさん
2007/11/07(水) 12:32:57例えばインテリセンスとかでいちいち型確認してる?
しないね普通。
つまり最初から必要なかったんでしょ。
パラノイア気質の奴が最初から必要もないものを強迫的に必要だと思い込んじゃっただけっぽい。
0074デフォルトの名無しさん
2007/11/07(水) 19:35:22お前が孤独プログラムばっかりしてるってだけの話
0075デフォルトの名無しさん
2007/11/07(水) 22:50:450076デフォルトの名無しさん
2007/11/07(水) 23:58:42君が認められないだけだね。
0077デフォルトの名無しさん
2007/11/08(木) 00:09:13Stringのフィールドでもstr付けるのか?
アクセッサはgetStrhoge()とかになるんだろ?
0078デフォルトの名無しさん
2007/11/08(木) 01:14:41いちにいハンガリアン、にいにいハンガリアン
0079デフォルトの名無しさん
2007/11/08(木) 09:13:23MS信者は嫌ハンガリアンパラノイアになったから
話が盛り上がらないな。
0080デフォルトの名無しさん
2007/11/08(木) 19:23:34俺はシステムハンガリアンも有効だとレスした
IDEによる入力サポートとか、カーソルあわせての型情報とか一切無い環境もあるからな
ってか俺のとこそうだし
と書いても理解してもらえなかった。
多分ここでも理解してもらえないなw
0081デフォルトの名無しさん
2007/11/08(木) 20:13:230082デフォルトの名無しさん
2007/11/08(木) 21:24:050083デフォルトの名無しさん
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
でもどうかね。
確かに一理はあるし、確かに複数の座標系があるときにどの座標系かを区別するような
用途にはある程度適合的かもしれんが、やはり正攻法じゃないと思うな。
0084デフォルトの名無しさん
2007/11/08(木) 22:54:40>>2
0085デフォルトの名無しさん
2007/11/08(木) 22:58:30だからアプリケーションハンガリアンの有用性も疑わしい、といってるんだけど
0086デフォルトの名無しさん
2007/11/08(木) 23:07:31正攻法でなければいけない理由ってなんだ?
0087デフォルトの名無しさん
2007/11/08(木) 23:28:39からアプリケーションハンガリアンが必要なのであって、
Currency<Doller>オブジェクトとかCurrency<Yen>オブジェクトを
つくっておけば、「型」システムに組み込まれるので要らない、みたいな話?
0088デフォルトの名無しさん
2007/11/08(木) 23:44:00ynPriceとかdlPriceとかに合理性は見出しにくい。
あるいは、仮想的な概念として「価値」を考えてそれを型にするのも一つの手だね。
Price.InYenとかPrice.InDollarみたいな感じ。
この考え方は上の複数の座標系にも応用できると思う。
0089デフォルトの名無しさん
2007/11/09(金) 00:15:34何を言ってるんだお前は?
別にアプリケーションハンガリアンは、頭を小文字にとかそういう話をしてるわけじゃないぞ?
「変数名の生成を、その変数の種類(kind)に基づいて特定のルールづけの元行う」
というのが趣旨だ
お前がPriceInYenとかのほうが見やすいというのなら、そうすればいいだけの話
0090デフォルトの名無しさん
2007/11/09(金) 00:24:35それが、アプリケーションハンガリアンなのだが。
0091デフォルトの名無しさん
2007/11/09(金) 00:50:58そもそも「アプリケーションハンガリアン」などというカテゴライズには
最初から何の意味もないことになるな。
だってPriceInYenとかPriceInDollarsなんてのはごく普通の何の変哲もない
命名に過ぎないじゃないか
0092デフォルトの名無しさん
2007/11/09(金) 07:14:00君がたまたま自然に「アプリケーションハンガリアン」を受け入れていただけの話
知ってか知らずかね
何も考えない奴は、変数名に a とか b とかつけるんだぞ
0093デフォルトの名無しさん
2007/11/09(金) 07:20:510094デフォルトの名無しさん
2007/11/09(金) 07:36:29>>88は>>2を先ず読むべきだな。趣旨を理解していない。
0095デフォルトの名無しさん
2007/11/09(金) 08:17:36頭悪いんじゃないの?
だからその趣旨は間違ってる、と言ってるんだと何度言わせるつもり
0096デフォルトの名無しさん
2007/11/09(金) 08:26:27いやただの行為として読んではいるのかも知れないが、文章を書いている人間の
論旨をまったく「読めて」ない。
0097デフォルトの名無しさん
2007/11/09(金) 19:08:29アプリケーションハンガリアンの趣旨は間違ってるって、
つまり変数名は適当な連番でもいいってこと?
0098デフォルトの名無しさん
2007/11/09(金) 20:31:580099デフォルトの名無しさん
2007/11/10(土) 19:37:41明らかに頭悪いのはお前だよ。
0100デフォルトの名無しさん
2007/11/10(土) 19:52:35>>97
ローカル変数なんてわりとどうでもいいんじゃないのかな。
ループカウンタなんてi,j,kで十分だし、ローカル変数にいちいち
アプリケーションハンガリアンなんて使わないね。
そこに使わなければ意味が読み取れないほど関数が長くて意味が分かりにくいの
だとしたら、まずそっちを何とかすべき。
Joelの例は(しばしば彼の記事がそうであるように)、彼の主張を通すための
作ったような印象を受けるね。ありゃ、命名以前の問題としてクソコードだろう。
無論、クラス、メソッド、メンバ変数のようなものなら、意味をきちんと示す
分かりやすい命名をするべきだが、んなのは当たり前の話じゃまいか?
0101デフォルトの名無しさん
2007/11/10(土) 20:25:25> 分かりやすい命名をするべきだが、んなのは当たり前の話じゃまいか?
当たり前だけどできてないから、どうやれば上手くいくかという方法論の話をしている。
0102デフォルトの名無しさん
2007/11/10(土) 20:40:17例えばC++なら、それがアプリケーションドメインの特殊な概念を示す
共通的な何かなら、クラス化するなりtypedefするなりするのが正攻法でしょ。
Joelの言ってることは中途半端だし一貫性も無いように思える。
「当たり前のことが出来てない」んなら、「アプリケーションハンガリアン」
なる規則を導入することで、何かが上手く行くわけはない、よね?
0103デフォルトの名無しさん
2007/11/10(土) 20:42:220104デフォルトの名無しさん
2007/11/10(土) 21:04:18別にjoelって人が言ったからその通り、と言うことはもちろんないんだが、
joelって人は、(ちょうど"PriceInDollars"のように)変数名にその値の意味を
盛り込むことがアプリケーションハンガリアンだ、などとは少しも言ってない。
しつこいようだが、そんなものはアセンブラしかなかった時代から当たり前のように
やっていることだ。
ここの馬鹿連中は「タグ」だの「プリフィクス」だのといった表現が読み取れないのかねw
0105デフォルトの名無しさん
2007/11/10(土) 21:05:49まぁ読解力に欠けるのは明らかにお前だけどね。
0106デフォルトの名無しさん
2007/11/10(土) 22:25:29>読解力がない
よくわかってるじゃないか、自分のこと。
0107デフォルトの名無しさん
2007/11/11(日) 10:00:39>ユーザから来た文字列は(安全でない?Unsafe?文字列という意味で) プレフィックス"us"をもつ名前の変数に格納する。
>HTMLエンコードされた文字列や、素性の安全なことのわかっている文字列は(安全?Safe?な文字列という意味で)プレフィックス"s"を持つ名前の変数に格納する。
>安全でない?Unsafe?文字列という意味でプレフィックス"us"をもつ名前の変数に
>安全でない文字列という意味でプレフィクスをもつ名前の変数
変数名に「安全でない文字列という意味」であるusというプリフィクスをつけよう
0108デフォルトの名無しさん
2007/11/11(日) 11:41:23ひょっとしてネタじゃなくて本気で
「アプリケーションハンガリアンとは、変数名(やメソッド名)にその値の意味を盛り込むことだ」
(とJoel氏は主張しているのだ)と思ってるの?w
しょうがない、ならば質問。
・では、「アプリケーションハンガリアン」と「システムハンガリアン」の違いは?
どっちも共通して「ハンガリアン」という言葉がついてるけどw
・Joel氏はアプリケーションハンガイアンとは何か説明するくだりにおいて、
「タグ」や「プリフィクス」という、意味を狭める言葉をわざわざ使っているわけだが、
もし氏が「アプリケーションハンガリアン」という言葉を君が思っているような意味で
使っているとしたら、なんでわざわざそんな「不適切な」言葉を使ったと思う?
0109デフォルトの名無しさん
2007/11/11(日) 12:19:27・システムハンガリアンとは
アプリケーションハンガリアンの勘違い品
大して意味もない「変数の型情報」を変数名に盛り込むよう推奨したもの
・タグやプリフィクス
アプリケーションハンガリアンの趣旨は「重要情報を変数名に含めれば、その部分を見ただけで間違いが分かって便利」
タグ(プリフィクス)がハンガリアン創生で使われてた手法なので、Joelもそれを推奨している
確かにJoelは別に「プリフィクス以外でもいいんじゃね?」とは一言もいってない。
が、絶対プリフィクスでなければならないとも言っていない
スレ民は「>>88みたいなのもアプリケーションハンガリアンの一種といえるだろう」と言ってるだけ
0110デフォルトの名無しさん
2007/11/11(日) 12:23:29お前「意味」の意味を勘違いしてるだろ
>104と同一人物?
Joel氏や他の人間が言っている「意味」ってのは、usやsのような超重要情報
お前が言ってる「意味」は単に変数名NameやMoneyのようなもの
お前の言うとおり変数名に意味をもたせるのは当たり前
アプリケーションハンガリアンは一歩進んで「重要情報も変数名に含めろ」っていうもの
0111デフォルトの名無しさん
2007/11/11(日) 15:35:23だからそれが間違ってるって言ってるのね。
読解力がなさ過ぎるだろう、と。
本当に義務教育修了してるのかねこういう奴らってw
繰り返すように、別にJoel氏が言ったからどう、ってことは全くないんだが、
Joel氏が言ってるのは正確にはこうだよ。
[ハンガリアン]
識別情報をあらわす統一的な略号を名前に付加する命名法。
[システムハンガリアン]
ハンガリアンのうち、名前に付加する識別情報が型情報のもの。
[アプリケーションハンガリアン]
ハンガリアンのうち、名前に付加する識別情報が意味論的なもの。
念のために言っておくけど、この話の肝は、ハンガリアンとは、
- 統一的な略号を名前の一部に含ませる命名法であること
- 略号の表すものは識別情報であること
であることに注意が必要だよ。
0112デフォルトの名無しさん
2007/11/11(日) 15:51:440113デフォルトの名無しさん
2007/11/11(日) 15:53:20途中送信しちまったよ
お前の日本語能力欠如しすぎ
>だからそれが間違ってるって言ってるのね。
その「それ」とは何を指しているのか明確にしろ。話はそれからだ
0114デフォルトの名無しさん
2007/11/11(日) 15:55:31こういう奴ら
この話
議論の場で指示代名詞を連発する奴にろくな奴はいない
0115デフォルトの名無しさん
2007/11/11(日) 15:56:050116デフォルトの名無しさん
2007/11/11(日) 16:04:32>[アプリケーションハンガリアン]
>ハンガリアンのうち、名前に付加する識別情報が意味論的なもの。
>>88
>通貨ならそこまでしなくてもPriceInYenとかPriceInDollarsってすれば済む。
>ynPriceとかdlPriceとかに合理性は見出しにくい。
88はYen、Dollarsに「この値は日本円換算」「この値はドル換算」という意味論的なものを付けているが?
0117デフォルトの名無しさん
2007/11/11(日) 16:07:34だから、そこに「ハンガリアンのうち」と前置きがあるのを読めないのか?w
ハンガリアンとは何かも直前にも書いてあるし、直後にも念を押してるじゃないかだから
0118デフォルトの名無しさん
2007/11/11(日) 16:10:280119デフォルトの名無しさん
2007/11/11(日) 16:14:27>>117にとってはアプリケーションハンガリアン様はもっと高尚にして神聖で、改変の許されないものなんだよ
0120デフォルトの名無しさん
2007/11/11(日) 16:24:12形式ばっかりにこだわって本質が見えてないというかなんというか
歴代ガンダムをまとめて「ガンダム」って呼んだら、ガンダムは初代だけ!ZはちゃんとガンダムZという別物で
とか講釈始められた気分だ
0121デフォルトの名無しさん
2007/11/11(日) 16:52:47システムハンガリアンやアプリケーションハンガリアンと区別したいので解説頼む。
0122デフォルトの名無しさん
2007/11/11(日) 16:53:40馬鹿なんだから
0123デフォルトの名無しさん
2007/11/11(日) 17:00:27別に俺の解説を聞いても仕方がなかろう。
Joel氏がなんと言っているかを調べたければJoel氏の文章を自分で読解するしかないし、
一般的な用語法が知りたいなら自分で「調べる」ほかないでしょ。
っていうか、俺の(Joel氏がその三者をどう区別しているか、に対する)見解は111に
表現されていると思うが。
君は「〜のうち」っていう表現の意味するものを知らないの?w
君は「人間のうち、チンコがついているのが男性である」という文書を読んだときに、
同じように「人間と男性の区別って何だろう?」という疑問をもつの?w
だとしたらかなりのお馬鹿さんだよ。
0124デフォルトの名無しさん
2007/11/11(日) 17:05:45ごめん
痛々しくなってきた
88「人間?哺乳類でいいだろ」
スレ民「哺乳類ってわけかたでもいいな。人間ってカテゴライズするのとやりたいことは似てるな」
お前「似てない!全然似てない!」
スレ民「カテゴライズして名前付けるって意味では一緒だろ」
お前「全然違うんだい!」
0125デフォルトの名無しさん
2007/11/11(日) 17:10:20ごめん
俺らもう「読解した」からお前の説明一切いらないや
消えて^^
0126デフォルトの名無しさん
2007/11/11(日) 17:22:29いや悪い、義務教育レベルの読解力を欠く連中に痛いとおもわれても何も堪えないよ。
0127デフォルトの名無しさん
2007/11/11(日) 17:36:48って調査が出てたと思ったが、本当に由々しき問題だよこれ。
そもそもJoel氏が件の文書を書いた動機は不当に貶められている(と氏が考えている)
アプリケーションハンガリアンの価値の復権にあるのだが、ここの馬鹿連中は
それが少しも読めてない。
要は氏は唾棄すべきはシステムハンガリアンであってアプリケーションハンガリアンは
称揚すべきものだ、と考えているわけ。
だからそのためには、アプリケーションハンガリアンの、システムハンガリアンとの
違いを強調して読者に理解させる必要がある。
アプリケーションハンガリアンで命名された変数にこめられるものが「意味論」であることを
強調するのはそのためだ。
全く別の言い方をすれば、氏は
「アプリケーションハンガリアンによる命名には意味論的な違いの表象を含む」
と言っているのであって、
「意味論的な違いの表象を含むものがアプリケーションハンガリアンだ」
などとは言ってない。
ようはここの馬鹿どもは
「郵便ポストは赤い」
という文章を
「赤いのは郵便ポストだ」
などと間抜けでトンマな誤読をしているというわけだ。
0128デフォルトの名無しさん
2007/11/11(日) 17:44:55>「意味論的な違いの表象を含むものがアプリケーションハンガリアンだ」
こんなこと誰も言ってない
>>88に対し
お前のも意味論的な違いの表象を含めているから、アプリケーションハンガリアン『のようなものだ』
だからアプリケーションハンガリアンが必要ないのではなく、たまたまお前が天然で似た表記ルールづけを使っていたので「お前は必要性を感じなかった」にすぎないよ
と言っただけ
0129デフォルトの名無しさん
2007/11/11(日) 17:49:090130デフォルトの名無しさん
2007/11/11(日) 17:55:57しっかし馬鹿だなホント
「アプリケーションハンガリアンのようなもの」≠「アプリケーションハンガリアン」
別の言い方をすれば、否定しているのは「アプリケーションハンガリアン」であって
変数名に意味論的な差異をこめることは否定してないの。
だから言ってるじゃん何度も。
意味論的な差異を変数名にこめるのがアプリケーションハンガリアンではない。
Joel氏もそんなことは全然言ってないの。
郵便ポストは赤い((アプリケーションハンガリアンによる命名には意味論的な差異の表象を含む)
といっているのであって赤いのが郵便ポストだなんていってないってのw
0131デフォルトの名無しさん
2007/11/11(日) 18:00:51(広義の)アプリケーションハンガリアンと言ってよいかどうかという話だよな、元々。
0132デフォルトの名無しさん
2007/11/11(日) 18:03:54言ってよいかどうかは誰も回答不能だろうけど、一般には「アプリケーションハンガリアン」
という言葉はプリフィクスやサフィックスなどのタグで意味論的な差異を表す
命名法のことを指す。
Joel氏もそう言ってる。
0133デフォルトの名無しさん
2007/11/11(日) 18:04:07だからさぁ、何したいの?目的がわからん
128である俺(やほかの連中)に「何を理解させたくて説明してる」の?
俺は
・アプリケーションハンガリアンは有用だね
・>>88のやり方はアプリケーションハンガリアンみたいなもんだね。それでいってもいいんじゃね?
としか思ってないんだが?
0134デフォルトの名無しさん
2007/11/11(日) 18:04:53ぶはww
ただそれだけのことをだらだらわけのわからん理屈こねくりまわしてたのかよw
何したいのかサッパリわからんかったわ
0135デフォルトの名無しさん
2007/11/11(日) 18:07:06俺も痛々しくて見ていられない。
0136デフォルトの名無しさん
2007/11/11(日) 18:07:14アホくさ
ただの狂信者か
0137デフォルトの名無しさん
2007/11/11(日) 18:08:02な状態だなほんと
0138デフォルトの名無しさん
2007/11/11(日) 18:11:04大抵の人
「概念的にはたしかに90の言うとおり、アプリケーションハンガリアンと『同様だな』
アプリケーションハンガリアン(のようなもの)だと言っても過言ではないだろう」
132
「プリフィクスの形態をとってないものをアプリケーションハンガリアンと呼ぶなrftgyふじこ!
>>90はキチガイ!勘違いやろう!俺が説明してやる!!!」
0139デフォルトの名無しさん
2007/11/11(日) 18:15:38例えば>>89-90
それでもまだ>>138のような寝言が言えるならたいしたもんだよ。
たいしたもん、ってのはもちろん嫌味だけどねw
0140デフォルトの名無しさん
2007/11/11(日) 18:23:2789書いたの俺なんで口挟むぞ
あくまで88の「プリフィクスは見づらいからアプリ(略)は駄目駄目」という感想に対して、重要である趣旨そのものを説明しただけ
「アプリケーションハンガリアンとは何か」という問われかたをしたときはプリフィクスのことまで含むのは当たり前だろ
子供を諭してたら横から「その説明は哲学的に言うと違いますねフフン」とか言われた気分だよ
0141デフォルトの名無しさん
2007/11/12(月) 01:08:27変数名のうち「円」,「ドル」を表す部分がどこかわからないじゃん?
もちろん少し考えればわかるけど。
変数名をみて少し考えなきゃならないと、可読性が下がってしまう。
でも、変数名の頭の2つの小文字に意味を持たせるというルールにすると
すぐに(変数名の最初の小文字を見れば)意味が理解できるので
合理性はそれなりにあると思うよ。
0142デフォルトの名無しさん
2007/11/12(月) 01:45:17その意見は、「略号と意味を結びつけるコストがゼロである」という
実際にはあり得ない前提に立っている。
それが言いすぎだとしても、少なくとも略号を意味をリンクするコストが、
明示的な命名を読解するコストより低いという前提の物言いではあるわけだ。
これがいかにナンセンスな前提かはプログラマなら経験的にわかるでしょ。
一年後にその訳のわからん略号の溢れるコードをよむ場面を想像してみ。
運よく略号の意味がドキュメント化されていれば少しは救われるが、(それでも
訳のわからん略号を覚えるのは結構骨だ)もしそれすらなかったとしたら・・・
0143デフォルトの名無しさん
2007/11/12(月) 02:08:10ハンガリアン記法って、型システムが貧弱なC言語とかのための、人力で型システムを一部代行する運用規則だから。
C++みたいな言語で、円とドルが複雑に混在してるコード書くんだったら、
Currency<Yen> price;
みたいにしちゃうほうが、ずっとすっきりする。
人間が目で見て調べなくても、処理系が自動で検査してくれるし。
変換用の演算子とかも定義しとけば、必要に応じて自動で変換もしてくれるだろうし。
0144デフォルトの名無しさん
2007/11/12(月) 20:07:28別に88のなかで「変数名の最後の単語がkind情報をあらわす」と決めてるかもしれないぞ?
0145デフォルトの名無しさん
2007/11/12(月) 20:13:21>>144
そういうのは当然略称一覧(ただのテキストファイルで十分)みたいなのを
保守しつつやるんだろう。
C++のように抽象や概念を直接コード化できれば一番いいのだが、
出来ないんなら、コード化できなかったルールをどこかに書くしかない。
0146デフォルトの名無しさん
2007/11/12(月) 20:58:46つまり、システムハンガリアン的な要素も含んでいる。
しかし、>>2の安全であるとか安全でないとかであれば、
まだ使い道はあると思う。
たとえば、文字コードだとどうだろう?
S-JISならsHoge, EUC-JPならeHoge, UnicodeならuHoge
結局は同じかな?
>>143
>変換用の演算子とかも定義しとけば、必要に応じて自動で変換もしてくれるだろうし。
演算子のオーバーロードは危険だと思うがな〜
>>144
>別に88のなかで「変数名の最後の単語がkind情報をあらわす」と決めてるかもしれないぞ?
たとえば、香港ドルだとPriceInHongKongDollarとなり、
最後の単語だけみると、USドルと間違えるかも知んないぜ?
>>88がいいたかったのは、変数名の最後より最初のほうが見やすいんじゃね?ってことでしょ
0147デフォルトの名無しさん
2007/11/13(火) 10:50:57日本がハンガリーに負けそうだお
【いくぞ】一番クリックした国が優勝【30,000,000click/min】
http://wwwww.2ch.net/test/read.cgi/news4vip/1194876671/
最強のOCR兵器開発が急務かな
0148デフォルトの名無しさん
2007/11/13(火) 10:51:270149デフォルトの名無しさん
2007/11/13(火) 18:09:42あえてやるなら
CodedString<SHIFT_JIS> hoge;
とかだろうけど。
適切な変換演算子定義しとけば、特定の文字コード仮定した処理なんかも期待通りに動くだろうし。
演算子定義しない場合でも、文字コードの違いを型の不一致として検出してはくれるよね。
0150デフォルトの名無しさん
2007/11/16(金) 19:28:24UTF-32とかならわかるけど、内部コードがMBCSってありえなくね?
0151デフォルトの名無しさん
2007/11/16(金) 21:32:550152デフォルトの名無しさん
2007/11/19(月) 16:18:40perlとかrubyとか。
0153デフォルトの名無しさん
2008/02/18(月) 10:03:040154デフォルトの名無しさん
2008/03/06(木) 08:33:32そんな感じじゃね?
アプリな方ならsTempFileとかsDataFileとかか。
0155154
2008/03/07(金) 01:30:050156デフォルトの名無しさん
2008/05/10(土) 01:55:210157デフォルトの名無しさん
2008/05/10(土) 05:10:112,2,ハンガリアン
ハンガリアン ハンガリアン♪
0158デフォルトの名無しさん
2008/05/10(土) 05:34:46アプリケーションハンガリアンでもすべてに付けないといけないんだろうか?
一部の重要な箇所だけでいいかな。
でもそれだとプリフィクスに相当する部分が左辺と右辺で違うソースだらけになって
ハンガリアン使ってる箇所も気付かず見逃してしまうだろうか。
0159デフォルトの名無しさん
2008/05/10(土) 18:53:53じゃ分かりにくいから、システムの方はWindows
偽ハンガリアンとか呼びたい。これならいかにも悪
そうだし悪くなった原因も明確
0160デフォルトの名無しさん
2008/05/10(土) 20:57:15prefixで変数の素性がわかって便利〜♪なんてのが許されるのは
FORTRANだけなの!
中途半端に変なのつけずに素直に変数名そのものに情報を盛り込みましょう
0161デフォルトの名無しさん
2008/05/10(土) 21:01:110162デフォルトの名無しさん
2008/05/10(土) 21:18:470163デフォルトの名無しさん
2008/05/10(土) 21:23:39短縮形じゃないといけないとか思ってないか?
0164デフォルトの名無しさん
2008/05/10(土) 21:29:18付随的属性は後ろにつけるのが本来の姿だし読みやすいのだ
これは日本語だろうと英語圏だろうと同じ
0165デフォルトの名無しさん
2008/05/10(土) 21:45:390166デフォルトの名無しさん
2008/05/10(土) 22:28:05むしろ 〜of xxx とか 〜in xxx のxxxに相当するpostfix的属性のことが多い
それを無理に前に持ってきても読みづらくなるだけで大して役にたたない
まあハンガリー語ではどうか知らんがw
0167デフォルトの名無しさん
2008/05/10(土) 22:32:180168デフォルトの名無しさん
2008/05/10(土) 22:34:30rwMax, colMaxは日本語では「最大行数」、「最大カラム数」だ
0169デフォルトの名無しさん
2008/05/10(土) 22:35:050170デフォルトの名無しさん
2008/05/10(土) 22:36:350171デフォルトの名無しさん
2008/05/10(土) 22:39:350172デフォルトの名無しさん
2008/05/10(土) 22:43:10「要点は最初に書く」 という離心的な発想は極めて合理的。
最後に書いた方が・・・なんてのは話下手のやること。
0173デフォルトの名無しさん
2008/05/10(土) 22:50:04number of elements = element number なら
むしろelementのほうが形容詞的存在じゃないのか
0174デフォルトの名無しさん
2008/05/10(土) 22:50:550175デフォルトの名無しさん
2008/05/10(土) 22:54:45形容詞だって主張したのはお前じゃん・・
0176デフォルトの名無しさん
2008/05/10(土) 22:58:57ああ、そういやそうかもなあ、と思った。
だからそれにそって話をしたら叩かれた・・・。
0177デフォルトの名無しさん
2008/05/10(土) 23:02:27TextureFileName // カコワルイ
texture_filename // まあ普通だな
textureFilename // 俺はこれかな
0178デフォルトの名無しさん
2008/05/11(日) 00:49:52テクニックだよ。
まあとにかくお前ら「実録!天才プログラマー」を入手して
考案者本人の話を読んでみなよ。
この本は他にもBASICを書いていたころのビル・ゲイツとか、PostScriptの開発
者とか世界で初めてスプレッドシートを開発した人とか、今では名前すら残っ
ていない怪しげな「自称天才」とか、いろいろ面白い話やら手書きのメモやら
が載ってるから買って損はない。
訳者がコンピュータ畑の人じゃないので少〜し読みにくいけど。
0179デフォルトの名無しさん
2008/05/11(日) 01:10:24>テクニックだよ。
そこまではさすがにさかのぼらないだろ
その時代のPC上のASMやCの言語仕様ってのは
変数名は先頭6文字まで識別とかその程度だから
prefixなんかつけてたらかぶっちまう
0180デフォルトの名無しさん
2008/05/11(日) 01:17:41textureFilename = sourceDirectoryname; //NG
fnTextureFilename = fnSourceFilename; //OK
fnTextureFilename = dnSourceDirectoryname; //NG
上でも普通は問題ないが、下なら見た瞬間にfnとdnの意味は分からなくても、なにかおかしいとは感じられる。
思考することなく脊髄反射で判定できるので、頭が悪い人には有効だと思われる。
0181デフォルトの名無しさん
2008/05/11(日) 01:19:53np (near pointer)/fp (far pointer) だけはつけてたな
これがないとときどきわけわかんなくなったw
>>180
その程度のくだらない例しか思いつかないのかよ
頭が悪い人っておまえのことだろ、もう帰っていいよ
0182デフォルトの名無しさん
2008/05/11(日) 01:33:50正解。だから色々、小細工しようとしてます。
周りと比べて明らかにコードを理解する能力が低いって自覚してる。
他人のコード読むときに書き直しながら理解して、後から戻すなんて無駄なこともしてる。
0183デフォルトの名無しさん
2008/05/11(日) 13:16:51アプリケーションハンガリアン的なものっていうのは、使っても問題ない場面を
弁えて抑制的に使う分には確かに有用な場面もあるんだよね。
問題なのはフールプルールじゃない、つまり「馬鹿の一つ覚え」的に乱用して
意味不明な記号あふれる読解不能コードを生産する蓋然性があるってことで。
0184デフォルトの名無しさん
2008/05/11(日) 13:55:59別に無理に短縮形にする必要はないんだろ?
0185デフォルトの名無しさん
2008/05/11(日) 14:08:04短縮しないのならそもそもprefixにする必要もなかろう。
0186デフォルトの名無しさん
2008/05/11(日) 15:29:320187デフォルトの名無しさん
2008/05/11(日) 15:44:39短縮してなくても問題なくね?
0188デフォルトの名無しさん
2008/05/11(日) 16:25:520189デフォルトの名無しさん
2008/05/11(日) 16:27:160190デフォルトの名無しさん
2008/05/11(日) 16:27:540191デフォルトの名無しさん
2008/05/11(日) 18:57:500192デフォルトの名無しさん
2008/05/11(日) 18:59:410193デフォルトの名無しさん
2008/05/11(日) 22:36:58シモニイがXerox PARCにいてALTOで動くBravoを書いたころ、
ビル・ゲイツはAltair 8800で動くTinyBASICを書いていた。
その3年後、ベル研のカーニハンらによってC言語が公開された。
時代的にはそんなもの。
シモニイはMicrosoftに移る前から独特な識別子の命名規則を
編み出して使っていた。MSに移った頃は
「あのハンガリー人の書くコードの変数名は変わってる」
と噂されていた。
0194デフォルトの名無しさん
2008/05/12(月) 01:43:090195デフォルトの名無しさん
2008/05/12(月) 01:56:20作ってたときだったか。
0196デフォルトの名無しさん
2008/05/17(土) 23:14:16http://www.kaz.appi.keio.ac.jp/~syl/Hungarian/
0197デフォルトの名無しさん
2008/05/18(日) 00:53:080198デフォルトの名無しさん
2008/05/30(金) 16:15:250199デフォルトの名無しさん
2008/06/18(水) 03:07:070200デフォルトの名無しさん
2008/06/18(水) 17:00:05typedefでは解決できないんじゃ。
0201154
2008/08/02(土) 18:27:12「意味が違う情報を保持する変数には違う印を名前に付ける」
が変質して
「型が違う変数には違う印を名前に付ける」
とクソになって、最後は
「型と製品と所属モジュールの情報をコード化してすべての変数に付ける」
というありえないgdgd状態に。
0202デフォルトの名無しさん
2008/08/03(日) 11:44:00変数の型を表していると誤解されたのが原因と聞いてるけど
0203デフォルトの名無しさん
2008/12/29(月) 07:45:450204デフォルトの名無しさん
2009/02/21(土) 00:03:21VBのソースなんだけど、、、
cls
fnc
sub
pub
str
CNST_
asp
とか。で、これらを組み合わせて使ってるんだよね。
定数なんか大文字にしているのに、わざわざCNST_付けてるのって意味ない。
0205デフォルトの名無しさん
2009/02/21(土) 02:37:300206デフォルトの名無しさん
2009/02/21(土) 09:00:18VBだとm_oXXXもしくはm_objXXXが多かったけど。
0207デフォルトの名無しさん
2009/02/21(土) 15:44:47型と変数名の名前空間が分離していないくせに
大文字小文字も区別しないクソ言語使ってるときには
安直に衝突を回避する策として使えることが分かった。
VB.net以降は少しはマシになったのかな?使ってないから知らんけど。
0208デフォルトの名無しさん
2009/02/21(土) 17:31:32VBの糞仕様は指摘どおりなんだが、>>204みたいな方式は冗長すぎる頭の悪いやり方だよ。
全然有用じゃない。
普通はこんな感じでやれば糞仕様のVBでももう少しスマートにできる
- 自作クラスはcでプリフィクスする。
- enumは使わずに標準モジュールの定数で代用する。
- 基本、変数名に余分なプリフィクス・サフィックスは付けない。
- ただし、他所製のコンポーネントでクラス名と同じ名前を変数名に使いたい場合は
IDEの流儀に従ってインスタンス名を数字でサフィックスする。
0209デフォルトの名無しさん
2009/02/21(土) 18:58:42アレはアレで便利だったと思うけどな。
txtHoge <-- テキストボックス
lblHoge <-- ラベル
btnHoge <-- コマンドボタン
まあ、今はやらんけど結局
hogeText
hogeLabel
hogeButton
になっただけなんだ。
0210デフォルトの名無しさん
2009/02/21(土) 19:20:01なんだ普通の英語の語順で書けばいいんじゃないかと開眼した。
ハンガリー語という仇名には、ある種の皮肉というか悪意がこもってるかも。
0211デフォルトの名無しさん
2009/02/21(土) 19:48:39既出だと思うけど標準コントロールのハンガリアン表記は結構有用だと思う。
「なんて名前つけたっけ?」って時もインテリセンスを検索的に使えるし。
ベタにTextとか書くと"text"って単語がコントロール名に使いにくくなるし。
英語的にも関係代名詞使った構文みたいな語順になるから意味が頭に入りやすいし。
0212デフォルトの名無しさん
2009/02/21(土) 20:10:23自作コンポーネントの変数追加したら、そこだけ浮いちゃうんだろ?
0213デフォルトの名無しさん
2009/02/21(土) 20:15:33でも先頭に無いと並んで書いた時に読み辛いんだよね
0214204
2009/02/21(土) 21:06:10しかもその会社は、DBのテーブルやフィールドが全て大文字で、アンダーバーの区切りなし、母音省略で、かなりやりにくいわ。
辞めた前の担当者だけとかだったらいいけど、会社としての方針なら最悪・・・。
0215デフォルトの名無しさん
2009/08/06(木) 16:30:260216デフォルトの名無しさん
2009/09/06(日) 13:27:40普通のコードの書き方を覚える
↓(窓の壁)
システムハンガリアンを知る
↓
意味わかんねーし糞うぜー
↓(情弱の壁)
アプリケーションハンガリアンを知る
↓
俺も世間も駄目扱いしてたけど実はそうじゃなかったのか?
↓↑(対立)
でもよくよく考えると駄目じゃね?
0217デフォルトの名無しさん
2009/09/06(日) 20:32:37ppHogeとか付いて無いと分かんなくなる。
0218デフォルトの名無しさん
2009/12/23(水) 15:55:550219デフォルトの名無しさん
2009/12/27(日) 12:00:250220デフォルトの名無しさん
2010/06/01(火) 09:39:150221家電.com
2010/06/01(火) 09:45:12HP
http://Kadencom.chochouo.com
■ このスレッドは過去ログ倉庫に格納されています