トップページ⇒tech
1001コメント320KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
巷ではハンガリアン記法がズタボロに叩かれている。

よく「C#ではハンガリアン使わないようにとMSが言ってるんだよ。ボケ」
と言われているが、その理由までは追求していない。

C#では型付けが弱い為に、ハンガリアンの意味があまりないという事だ。
C/C++みたく型付けが強い言語ではハンガリアンって有用じゃないだろうか。

みんなだってポインタの先頭には「p」とか書くだろ?
0002デフォルトの名無しさんNGNG
もうすぐW杯ですね。
0003デフォルトの名無しさんNGNG
char *str ;
0004デフォルトの名無しさんNGNG
>char *str ;
そりゃイカン、そりゃイカンぞぉ>>3
0005デフォルトの名無しさんNGNG
ハンガリー記法を解説してるHPない?
0006日下部圭子 ◆ib749tYo NGNG
In article >>1, デフォルト名無しさん/sage/1 wrote:
> C#では型付けが弱い為に、ハンガリアンの意味があまりないという事だ。

「C#では型付けが弱い」と言ってる時点でこの人はダメでしょう。

----------------------------------
||//
(@_@) Kusakabe Keiko
----------------------------------
00071NGNG
>>6
>「C#では型付けが弱い」と言ってる時点でこの人はダメでしょう。

すまん、これはすべてがオブジェクト型の間違い。
型付けと言った方がわかりやすいかと思って・・・
0008デフォルトの名無しさんNGNG
ハンガレ?
0009デフォルトの名無しさんNGNG
っていうかな、これからの言語では「これはポインタ?」とか気にしなくて
いい言語が主流になってくるのよ、Javaとかね。

だから、型を気にしなきゃいけないC/C++は、どんどん廃れていく方向にある
わけ、絶滅はしないけど使われる分野は狭くなっていくのは確実。

だから、廃れていくC/C++と一緒にハンガリアンもやめましょうってこった。
0010ななしいNGNG
LONG lABC
LPLONG plABC
DWORD dwABC
LPDWORD pdwABC
WORD wABC
LPWORD pwABC
BYTE bABC
LPBYTE pbABC
RECT rcABC
SIZE siABC
POINT ptABC
HANDLE hABC
LPVOID pABC
BOOL fABC
char szABC[]
CString strABC
CBrush brshABC
CPen penABC
なんちゃって
0011  NGNG
>>9
参照か実体か判らず、途中で化けるようなアフォ言語なぞを何故
優れているかのように言う?
0012デフォルトの名無しさんNGNG
どうしてもやるなら、'_'で区切って欲しい。>ハンガリアン派
読みにくい。
0013デフォルトの名無しさんNGNG
>>1
ドキュメントちゃんと読んだ方がいいぞ。
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpapndx/html/_cor_naming_guidelines.asp
Naming Guidlines

ドキュメントを読んだ上でハンガリアンを使うべきではない理由として考えられること。

・すべてオブジェクト指向であり型なんぞ無限に増産される中で、
一貫したハンガリアン表記はできない。
 少なくとも、クラス、インターフェース、構造体、列挙型用の変数に
それぞれを表すプリフィックスを付けても意味ないわな。

・多数の言語で作成されたクラスライブラリを互いに利用し合うので、
各言語内の型に応じて勝手にプリフィックスを作られたら混乱のもとだな。
かといって、Universal Type Nameの名称から略称を取るのでは、
各言語で型の呼び方とずれるから直感的でもないわな。

・変数名が的確に何を行うオブジェクトなのかを表していれば、
そのオブジェクトが何をできるか(=何の機能を持っているか=型が何か)
わかるだろ。
0014デフォルトの名無しさんNGNG
>>12
"_"も使うなと言っているので・・・
00159NGNG
>>11
少なくともGCがなくて、変数の先頭に型情報を名づけるアフォ言語
よりは優れてるだろ。
0016ハンギョレ記法NGNG
ハンガリー人がどう思ってるか誰か聞いてきてください。
0017デフォルトの名無しさんNGNG
>>13
つーか、1が言いたいのはC#の仕様じゃなくて、C/C++でハンガリアン
が有効じゃないかって言いたいんじゃないか?
0018デフォルトの名無しさんNGNG
>>9

Java,C/C++の比較でそんなこと言うなよ。
おおざっぱすぎ。
こいつ、動的な片付けの言語とかつかったことあんの。

だいたいCもC++も、はんがりあんなんていらないだろ。
0019 NGNG
んでハンガリアン記法って何?
ポーランド記法と関係有る?
0020デフォルトの名無しさんNGNG
予想外のタイミングで処理が一時停止する
危険のあるGCはない方がいいのだが。
意識的に制御するんなら最初からない方が。
むしろランタイムライブラリの仕様の中で
ヒープの管理を工夫すればと。
0021デフォルトの名無しさんNGNG
>>15
>変数の先頭に型情報を名づけるアフォ言語

これって、どの言語のこと?
00221NGNG
>>13
ども勉強になります。
ハンガリアンを徹底的に排除するんでなくて、良い部分は残していけばいいんじゃないかと
思いまして。
俺が使っているハンガリアン(?)は

m_ ・・・クラスのメンバ変数につける、これは俺も必要か疑わしい。
s_ ・・・staticなメンバにつける。
g_ ・・・グローバル変数につける、グローバル変数使わないからこれも疑わしい。
p ・・・ポインタにつける、意図的にNULLが代入されている場合がある事がわかる。
C ・・・クラス名の先頭につける。

くらいですね、スコープを明確にしたいという狙いもあります。
0023デフォルトの名無しさんNGNG
class T{ int m_length;
public: T(int length) : m_length(length) {}
};
とかを考えると、m_は案外つけといた方がいいかも。

>>変数の先頭に型情報を名づけるアフォ言語
>これって、どの言語のこと?
Perlっしょ(w
0024デフォルトの名無しさんNGNG
>>21
>変数の先頭に型情報を名づけるアフォ言語
話の流れからして、C/C++のハンガリアン記法のことだと思われ
0025日下部圭子 ◆ib749tYo NGNG
In article >>22, 1/22 wrote:

> 俺が使っているハンガリアン(?)は

それはハンガリアン記法ではないですね。

ハンガリアン記法の是非の議論になると、かならずプレフィックスの類は
すべてハンガリアン記法であるようなことをおっしゃる方がいますが、
スコープに基づいた命名規則は、ハンガリアン記法とは言いません。

----------------------------------
||//
(@_@) Kusakabe Keiko
----------------------------------
0026デフォルトの名無しさんNGNG
メンバ変数になんか付ける人は割と多いね。
@を付ける事を強制してるRubyなんかも有るし。
002713NGNG
>>17
>つーか、1が言いたいのはC#の仕様じゃなくて、C/C++でハンガリアン
>が有効じゃないかって言いたいんじゃないか?

たぶん、そういうことだろうとは思ったんだけど・・・
ネイティブexeを作るなら、従来どおりでも構わんと思うけど、
そうでないなら、やっぱり.NETの命名ガイドラインには沿った方が
いいのではないかと思う。
(クラスライブラリを共有する気があるなら)

>>22
>s_ ・・・staticなメンバにつける。
メンバ変数自体をprivateで宣言すると思うので、
その場合には、実質的にどういう命名規則を付けても
仕事のプロジェクトメンバーとかで合意が取れていればいいと思う。
publicだとその名前が公開されるので、MSの方針に準拠で。
ってのはどうだろう?中途半端か・・・。

>C ・・・クラス名の先頭につける。
頭のCになじみがあるのはわかるけど、
大半はクラスだから付けなくても。
この場合、構造体はどうします?

>くらいですね、スコープを明確にしたいという狙いもあります。

メンバ変数なんかだと、明示的にthisとかMeとか自分自身を
表すキーワードを付けるとよいかなとも思うけど、全部に付けたらうっとしいか・・・。

>スコープを明確にしたいという狙いもあります。

スコープを明確に。これは確かにある。
privateメンバがprivateメンバだと結構わかりにくいんだよな。
ローカル変数がローカル変数がg(Graphicsクラス)とかのしょぼさだと
privateメンバが目立つからいいが・・・。
ローカルといえど、そんな変数名はあんまりだし。
0028デフォルトの名無しさんNGNG
スコープをきちんと使っていればある時点で見える変数なんて
そうそう増えない。てか、そうすべきなの。
むしろクソ長くなった変数名でやたら
行の折り返しだらけになるとみずらいぞ。
変なソフト会社だと名前付けのルールうだうだやって、
やたら長い名前付けさせるのが好きで困る。
プログラム全体の形の見易さが重要なのに。

m_dwHogeraHogeHoge =
XXX_YYY_hogehote_z(UBX_hogerahogehote_xxxx(
CONVERT_HOGERAHOGEHOGE(dwMYZZZp_xxxzzz, &YX_Zzzzabcdef, .................
0029デフォルトの名無しさんNGNG
繰り返すが、
どうしてもやるなら、'_'で区切って欲しい。>ハンガリアン派
読みにくい。
0030デフォルトの名無しさんNGNG
>>22
それハンガリアンちゃうし
0031デフォルトの名無しさんNGNG
変数名は、
i_money_all_of_the_world
iMoneyAllOfTheWorld
で前者がいい、ってこと?
それとも、
i_MoneyAllOfTheWorld
ってこと?
00321NGNG
>>27
>仕事のプロジェクトメンバーとかで合意が取れてい
その合意がs_ということで・・・
っていうか、staticメンバはあまり使わないですね・・・

>この場合、構造体はどうします?
構造体はなにもつけません。
C++では構造体もクラスも同じなんですが、メソッドがあるのが
クラスという事で一応Cをつけて区別してます、好みの問題かな。

>>28
たしかに命名規則に拘って、ソースが見難いのでは本末転倒なので
ハンガリアンは大体1文字、最大でも4文字くらいにとどめています。
0033デフォルトの名無しさんNGNG
>>32
だからそれはハンガリアンちゃうって
00341NGNG
>>25
>>30
一応、プレフィックスという事で・・・
みんな、ハンガリアンは駄目で、プレフィックスはOKなんですか?

>>29
int *m_p_n_Hoge;
って事ですか?それとも
int *p_Hoge;
くらいにしとけって事ですか?
0035デフォルトの名無しさんNGNG
>>34
メンバ変数は見分けつかないと困るんで、私は m_ つける。

ハンガリアンも

 h   ハンドル h
 n   整数
 u   符号なし整数
 sz  Cの文字列
 wsz wchar_t の文字列
 str  std::string
 bstr BSTR 文字列 (CComBSTR, _bstr_t だったりすることも)
 p  ポインタ

ぐらいは使うな。特に文字列は種類が多すぎて、一目見て分からないと死ぬ。
0036日下部圭子 ◆ib749tYo NGNG
In article >>34, 1/sage/34 wrote:

> みんな、ハンガリアンは駄目で、プレフィックスはOKなんですか?

ハンガリアン記法のキモは、名前に型情報を載せるというところでしょう。
プレフィックスだとかポストフィックスだとか、そういうレベルの
話ではなくて。

----------------------------------
||//
(@_@) Kusakabe Keiko
----------------------------------
0037デフォルトの名無しさんNGNG
MSDNからコピペしたとき、uMsgとか、lParamが紛れ込むという罠。
00381NGNG
>>36
>ハンガリアン記法のキモは、名前に型情報を載せるというところでしょう。

なるほど、ではハンガリアンという事で・・・
日下部さんはハンガリアン記法は使わない方ですか?
よろしければ使わない理由を教えてください。
0039デフォルトの名無しさんNGNG
>>37
そもそも構造体のフィールド名がハンガリアンという罠。
0040デフォルトの名無しさんNGNG
確かに圭子タンの言う通りハンガリアンよりもプレ(ポスト)フィックスの話になってるな。
0041デフォルトの名無しさんNGNG
ハンガリアン マンセー!!
0042デフォルトの名無しさんNGNG
モンゴリアン マンセー!
0043プレフィックスマンセーNGNG
でも、周囲の誰も賛同してくれないので使わない今日この頃。
でも、メンバ変数は後ろに _

変数名のバリエーションを考えるのにハンガリアンは便利だし、
なにげにプログラミングで時間がかかるのが変数名を考え出すことなので、
そういうところでハンガリアンは重宝したり。
int nCar とchar *szCar みたいなー。(例えが悪いか)
0044デフォルトの名無しさんNGNG
>>40
純粋なハンガリアン記法は、さすがにルールが複雑で使ってるヤツはいないと思われ。
0045デフォルトの名無しさんNGNG
>>44
変数名はマジャル(ハンガリー語)でつけていますが、なにか?
0046名無しさん@XEmacsNGNG
どういう文字使うの > マジャル
0047デフォルトの名無しさんNGNG
>>46
ほれ。
http://www.freedict.com/onldict/hun.html
エンコードは中央ヨーロッパ言語な。関係ないのでsage。
0048デフォルトの名無しさんNGNG
SDKだと、構造体のメンバ全部に同じプレフィックスが付いてるのがあるよな。
特にGDI関係のに多い。

typedef struct tagBITMAPINFOHEADER {
 DWORD biSize;
 LONG biWidth;
 LONG biHeight;
 WORD biPlanes;
 ……

すっげー無意味。
0049デフォルトの名無しさんNGNG
それはハンガリアンというより、構造体ごとにメンバの名前空間が分かれてな
かった大昔のコンパイラ用っぽい。
0050デフォルトの名無しさんNGNG
>>48
UNIX 由来の構造体でも多いな。struct stat とか。

これも

 p->st_mtime

とか書いてあった場合に p の型がすぐ分かるというメリットが、ないでもない。積極的に推す
気はないが。
0051デフォルトの名無しさんNGNG
ではプレフィックスは是か非か
0052デフォルトの名無しさんNGNG
プレフィックスは是
0053デフォルトの名無しさんNGNG
プレフィックスは星
0054デフォルトの名無しさんNGNG
>>1 よ。
漏れはずっと待ってるんだが一体いつまで待たせる氣だ。 ご・る・あ!
0055デフォルトの名無しさんNGNG
片足ダチョウのエルフ
0056_NGNG
僕は
struct → s
class → c
グローバル変数 → g
メンバー変数 → m
定数 → k
ってやってるなぁ。

ハンガリアン自体はMS内でも賛否両論って何かで読んだよ。
カトラーはハンガリアンが嫌いじゃなかったっけ?
0057_NGNG
>>19
MSのハンガリー人プログラマのチャールズ=シモニーが考えたから
ハンガリアン記法らしい。
0058追記NGNG
>>56
enum→e
スコープでprefix分けますね。

enum eKind = { kA, kB }
class cA { eKind mKind }
とか
cString* gString = mString;
とか単に名前のバッティングを避けるため付けてる気がする。
型で分けるのは助長だと思うな。

>>57
ここに載ってた。この人賛成なんだよね。
http://www.tokyo-nazo.net/~tenten/free/20020401.html
http://www.tokyo-nazo.net/~tenten/free/20020402.html
http://www.tokyo-nazo.net/~tenten/free/20020403.html
0059デフォルトの名無しさんNGNG
勘弁してくれ。
0060デフォルトの名無しさんNGNG
なんだかわからんが、struct tmのメンバーのtm_のようなものか?
0061デフォルトの名無しさんNGNG
つーかなぜいまさらこんな議論を...
0062デフォルトの名無しさんNGNG
char *str;っていかんのか?
0063デフォルトの名無しさんNGNG
char *char_ptr_str;
が正解
0064デフォルトの名無しさんNGNG
psz〜もしくはps〜ってことだろ。
現在はMSもハンガリアンを否定してるんで、
今更わざわざ会わせる必要はない
0065デフォルトの名無しさんNGNG
なあ、このスレの日下部さんはホンモノなのか?だとしたら。。。
















好きです。
0066デフォルトの名無しさんNGNG
char *signed_8bit_char_ptr_str;
が正解
0067デフォルトの名無しさんNGNG
勝手にsignedとか決めつけてるし
勝手に8bitとか決めつけてるし
0068デフォルトの名無しさんNGNG
本物のハンガリアンの解説サイトってない?
0069デフォルトの名無しさんNGNG
http://www.asahi-net.or.jp/~TC2K-STU/
0070デフォルトの名無しさんNGNG
つーかハンガリアンって環境(=MS)きめ打ちのような気もするが
0071てんてん@ yankee.tokyo-nazo.netNGNG
>>58
くだんのページの管理者です。
ハンガリアンは全面的に賛成というわけではないです(w
プレフィクスをつけるような命名規約があるなら、ハンガリアンである必要は無いと思っています。
結局は
・プレフィックス付きの命名規約賛成
・プレフィックス付きの命名規約がハンガリアンしかない!
・自分で作るのは面倒くさい
・ハンガリアン使うか・・・
という感じ。
0072デフォルトの名無しさんNGNG
 ポインタ変数 → p
 ハンドル → h
 グローバル変数 → g_
 private以外のメンバ変数 → m_
漏れが使うプレフィクスはコレ位。
ちなみに p,h は後始末を忘れない為のマーク。
g_,m_ はGrep一発で定義位置を洗い出す為のマーク。
(Privateに付けないのは、Grepの必要が無いから)
あと↓の規約も併用。
 struct/class → 頭文字大文字
 定数 → 全部大文字
0073デフォルトの名無しさんNGNG
auto_ptrもp〜ってつけるの?
0074デフォルトの名無しさんNGNG
>後始末を忘れないため
後始末を忘れたくないんなら、「リソースの獲得は初期化」イディオムを使えばいいんじゃないの?
俺はポインタにpってプレフィクスつけるけど、その目的は最初にコーディングする時点で
「->」と「.」のどっちを使うかを悩まなくてすませるためかな。ちなみにaut_ptrの変数にもpを付けてる。

>private以外のメンバ変数
privateじゃないメンバ変数なんて使わないんじゃ? 使ってるの?

>グローバル変数
グローバル変数もC++では使わないなぁ。せいぜいクラスのstatic変数だから、
定義位置は自明だしなぁ。

>struct/class → 頭文字大文字
>定数 → 全部大文字
これは俺もやってる。
0075デフォルトの名無しさんNGNG
 ハンガリアン記法って、飽くまで「命名方法に仲間内の共通認識を持って
作業効率を上げる」のが目的じゃないの?
それが俺系であれMS系であれUNIX系であれ、手段は変わらないと思う。

 アスキー出版の「実録!天才プログラマー」って本の一番最初で、
チャールズ・シモニィのインタビューに詳しくあるよん。
0076デフォルトの名無しさんNGNG
>>73
気になりますよね。
auto_ptr の類は皆さんはどうしていますか?

>>74
間違って delete したりしませんか?

私は必死に考えて q をつけてるのですが、やはり美しくない気がします。
q を選んだ理由は p と字形が似ているのと p の次なのと
他の文字よりちょっと下がっていて見やすいからです。
0077デフォルトの名無しさんNGNG
>グローバル変数もC++では使わないなぁ。
変数、といっても、クラスのインスタンスとしての変数だったら
グローバル変数はいくつか使わない?
アプリケーションクラスあたりはグローバルにしておくとらくちんなんだけど…
0078デフォルトの名無しさんNGNG
グローバル変数のかわりに static メンバを使うから使わないなあ。

たまにウィンドウ関係のインスタンスをデバッグ用にグローバルにしておくと
キャプションにリアルタイムにデバッグ情報を表示できて便利だと思う事があるくらい。
0079デフォルトの名無しさんNGNG
ハンガリアンなんて最初から使っていませんが、なにか?
008074NGNG
>>76
いや、そもそもdeleteを自分で行うことがないから。ほとんどの場合は、
auto_ptrとboost::shared_ptrを使う。ごくまれに生ポインタを使うのは、
明らかにそのポインタを削除する必要がない場合だけ。
具体的に言うと、
CApp{
  CGraphic graphic_;
  CMouse mouse_;
pubic:
  void Draw(void){
    // マウス位置によって表示すべき絵が変わる。
    // マウスには、アプリクラスを通してアクセス。
    graphic_.Draw(this);
  }
};
こんな風に、上位クラスのthisが渡されてくるような場合は、管理が
わけわかんなくなるのが怖いから生ポインタ。
結局、「deleteしなくていい」ように選択しているから、間違って消す
ことはないよ。
もう一度書くと、俺が「p」をつけるのは、メンバアクセス演算子の
「.」と「->」を間違えないようにするため。まあでも、最近はコンテナに
入れたポインタを一体どう表現したらいいものやらと悩むことしきり。
プレフィクス「p」も、いいかげん破綻気味だよ。

>>77
そういう状況の場合は、Singletonパターンをやってる。シンプルな
Meyers's Singletonを。もし知らないんなら、Effective C++を読もう。
というか、もし知らなくてグローバルにおいてるんなら、君のアプリは
謎のバグに悩まされてたりしないか?

>>79
別にいいんじゃ? 俺も今は使わなくなったよ。プレフィクスが
いくつか残ってるだけ。
0081デフォルトの名無しさんNGNG
ハンガリーって何?食えるの?美味いの?
0082デフォルトの名無しさんNGNG
ハンガリアン?
グローバル以外はうざったいだけ。

普通は関数を短く書くから、ちょっとスクロールさせれば宣言が見えるでそ?
構造体をtypedefするときはライブラリ関数をうまくつくって
上流のPG組む人にはメンバを意識させないようにするし。
0083デフォルトの名無しさんNGNG
これもハンガリアンと言っていいのかどうか知らんが、
物理量を区別するのにも便利。
freqHoge 周波数
voltHoge 電圧
currHoge 電流
pwrHoge 電力
dbHoge デシベル値
一度使ったら手離せません(w
008483NGNG
あと、intの場合、「i」と「n」を異常に使い分けてます。
0085デフォルトの名無しさんNGNG
>>81
食えるよ。ちょっと臭みがあって万人向けではないが、慣れるとそれがたまらないらしい。
0086デフォルトの名無しさんNGNG
>>81
下痢するからやめろ。
0087デフォルトの名無しさんNGNG
本来抽象化するための識別子に型名を入れるのはある意味逆行かもしれない。
仕様が変わりまくる仕事を3連発でやらされたときにそう思ったことがある。
実体が long なのに名前にshortが付いてたり、、、とか
0088デフォルトの名無しさんNGNG
>>83
nFrequencyHogeとかでいいんじゃないの?
0089デフォルトの名無しさんNGNG
hoge_freq
hoge_volt
hoge_curr
hoge_pwr
hoge_db

つーかこうせんか?
struct Hoge {
  int freq, volt, curr, pwr, db;
};


0090デフォルトの名無しさんNGNG
Hogeは何の構造体ぢゃ?
0091デフォルトの名無しさんNGNG
周波数と電圧と電流と電力とデシベル値の構造体。
0092デフォルトの名無しさんNGNG
てか、名前で型が変わるような言語にすればいいのに。
0093デフォルトの名無しさんNGNG
それは
a$ 文字列
a% 整数
a! 単精度浮動小数点数
a# 単精度浮動小数点数
というやつのことでしょうか。
0094デフォルトの名無しさんNGNG
>>93
DEFINT I-K

っていうか、版画利庵否定はいいんだけど、
あらゆる pref, suf を否定するのは勘弁してほしい。

メンバ変数かどうか、クラス変数(static)かどうかくらいつけてもいいだろう?


0095デフォルトの名無しさんNGNG
>>94
> あらゆる pref, suf を否定するのは勘弁してほしい。
してないよ?

> メンバ変数かどうか、クラス変数(static)かどうかくらいつけてもいいだろう?
型を明示しても無意味だと思うが、スコープを明示するのは意味あると思う。
0096デフォルトの名無しさんNGNG
> > メンバ変数かどうか、クラス変数(static)かどうかくらいつけてもいいだろう?
> 型を明示しても無意味だと思うが、スコープを明示するのは意味あると思う。

意味ねーよ
0097デフォルトの名無しさんNGNG
こういう話題、夏房は好きそうだな。
0098デフォルトの名無しさんNGNG
>>96
内側の変数が外側の変数を隠すのを防ぐためにも有用。
0099デフォルトの名無しさんNGNG
>>98
おまえ、死ね!
0100デフォルトの名無しさんNGNG
有用とか言ってるやつと仕事したくない。
0101デフォルトの名無しさんNGNG
>>98
痛いヤシ
0102デフォルトの名無しさんNGNG
>>98
面倒臭がらずに、
this->
付けろ。
0103デフォルトの名無しさんNGNG
>>102
禿同。thisとかself使えば名前にスコープの情報を持たせなくても
可読性はあがる。っていうか、用意されてるんだから使えよ・・・。

ハンガリアーンが有用なんていってる香具師で仕事の出来る奴見たことないぜ。
いるのかもしれんが、少なくともおれの周りにはいない。
0104デフォルトの名無しさんNGNG
>>103
ローカル変数定義し忘れ or スペル間違いしててもコンパイルとおりそうだな。
0105デフォルトの名無しさんNGNG
プリフィクス(ハンガリアン含む)使う奴は馬鹿
変数の型が分からなくなるようなソースは糞
0106デフォルトの名無しさんNGNG
>>105
そもそも、変数の型なんてわからなくても問題ないと思うが。
0107デフォルトの名無しさんNGNG
>106
たまに問題になるよ。
0108デフォルトの名無しさんNGNG
>>107
たまにねぇ。
俺はオブジェクトにしろ変数にしろ、常に型を意識してるが。
0109デフォルトの名無しさんNGNG
>>108
間違ってたらコンパイラが指摘してくれる。
コンパイラが指摘できない問題は人間が意識してないといけないけど。
0110デフォルトの名無しさんNGNG
型名を含む変数名って、使うのはHWND -> hとかRECT -> rc
とか、それぐらいだな。名前考えるのがあんまり意味無い場合とか。
Windowsのイベントハンドラの引数HWND MSG WPARAM LPARAM -> h m w l
なんてそのまんま。これは型名とはちょっと違うか。
一時的な変数が多いときにrc_new, rc_old みたいなことはするかも。
それでもm_hogeとかは、まるっきり無意味なんでやらない。
0111デフォルトの名無しさんNGNG
>>105
その通り。だって保守性悪いもん、変数の型を意識しないといけない糞コードなんて。
0112デフォルトの名無しさんNGNG
>>110
プリフィクス使う奴は馬鹿
rc_new, rc_old
よっておまえも馬鹿
0113デフォルトの名無しさんNGNG
prefixなんて使う? >>110ならtmpとかにしとけばいいじゃん。
一時的に小さいブロックで使う変数ならtmpでいいし、他の変数と名前が
バッティングするなら変数に意味を持たせればイイ。
0114デフォルトの名無しさんNGNG
>>113まじでtmpで良いと思うか?
ウインドウズプログラムしてると、
rcFrame,rcClient,rcToolbarとかその他いろいろ同時に必要になるじゃん
FrameRect,ClientRect,ToolbarRectにするとか?
0115デフォルトの名無しさんNGNG
MFC使うとき->ハンガリアン
それ以外->not ハンガリアン
これで決まり。
0116デフォルトの名無しさんNGNG
>>114
変数名大文字は嫌いだ…(笑)。
それで良くない?変数の「意味」が分かってれば型なんて自ずと想像できるよ。

>MFC使うとき->ハンガリアン
>それ以外->not ハンガリアン
>これで決まり。
MFCの時もnot ハンガリアンです…自社のコーディング規約に
  ・ハンガリアン記法は使用しない事。変数名の付け方は以下に述べる方法で…
とか書いてあったYO!!
0117115NGNG
おりもハンガリアン使いたくないけれどMFCのクラスにnot ハンガリアンを混ぜるの気持ち悪いよね。
当然規約優先で良いとおもうけれど。
0118デフォルトの名無しさんNGNG
>>117
確かに(笑)。読みやすくはなるけど、気持ち悪い。逆に他の言語でも
ハンガリアン使われると気持ち悪いしさ。MFCだけにしてくれって感じ。
0119デフォルトの名無しさんNGNG
定数 -> 全部大文字
参照 -> r
ポインタ -> p
性的変数 -> s

このくらいか…
0120デフォルトの名無しさんNGNG
漏れも>>110氏と同じで h、rc くらいしか付けないな。
0121デフォルトの名無しさんNGNG
たとえば一時オブジェクトで名前付けが面倒なとき
HPEN hpen = 〜;
とするか、
HPEN pen = 〜
とするか、どっち?
hpenはprefixにも見えるけど、一応構造待命そのままのつもり。
struct AAA_struct;だったら
aaaとするか、aaa_structとするかみたいな。
0122デフォルトの名無しさんNGNG
HPEN TmpPen = 〜;
0123デフォルトの名無しさんNGNG
>>122
それはちょっとイヤ過ぎるage
0124デフォルトの名無しさんNGNG
>>121 hpen_tmp
0125デフォルトの名無しさんNGNG
>121
HPEN pen;
もしくは
HPEN temp;
0126デフォルトの名無しさんNGNG
http://hadakaa.up.to
ロリはここに逝ってよい!ゴラァ!
  iii■∧  /
━ (,, ゜Д゜) / ━━━━━ ∧∧━━    ∧∧
   |   つ ∇   (゜Д゜;)   (゜Д゜;)
   |  |┌─┐   /⊂   ヽ    /⊂  ヽ
 〜|  ||□|  √ ̄ (___ノ〜 √ ̄ (___ノ〜
   ∪∪ |   |  ||   ━┳┛  ||   ━┳┛
 ̄ ̄ ̄ ̄|   | ====∧==========
    / ̄ ̄ ̄ ̄ ̄ ̄ ̄   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    |  すげー!!サンプルだけで抜けるよ!!!
0127ななし@VB使いNGNG
今まで、他言語の経験もなく、VB(A)ばかりを使ってきたので、ハンガリアンスタイルを
肯定する立場でしたが、VB6のコードをVB.NETに移植したとき、プレフィクスと実際の型
が乖離するので、激しく鬱になりました。

(例)
VB6.0 Dim lngHoge As Long
 ↓
VB.NET Dim lngHoge As Integer

プリミティブな型だけなら、ハンガリアン記法のメリットが大きいという見方
もわからないではないけど、そもそも、C言語での数値オブジェクトのサイズは
処理系依存でしかない訳で、「型」を名前の一部にするのはリスクが大きいと
思います。(日本語下手糞でスマソ)
0128デフォルトの名無しさんNGNG
>>127
VBのもハンガリアンなのか?
ハンガリアン否定派に混じって命名規約全般徹底否定派が暗躍しているので
曖昧な所で「ハンガリアン」というのはやめれ
0129デフォルトの名無しさんNGNG
>>127
なんでC基準になってるんだ?
VB.NETはC#基準だから、型のサイズは規定されてるんじゃないの
0130デフォルトの名無しさんNGNG
>>127
周りの言語がみんな標準の整数型が32ビットで
MS がコロコロ仕様変えるの好きなのがわかっているのに
ビットまで含んだ命名規約使ってたほうが悪い。
含んでいいのはせめて signed か unsigned かって事くらいか。

まあ lng は VB 標準の命名規約だったからしょうがないけど。
0131デフォルトの名無しさんNGNG
VBって社会的な迷惑ですね
0132ななし@VB使いNGNG
>>130
イヤ、それはわかりますけど、何しろMSがその命名を推奨してたんですから(苦笑)
VB6.0までは数値型の仕様変更がなかったので、破綻もなく、それなりに便利だった
のですが。
σ 的には、VB.NETへの移行のタイミングでハンガリアンスタイルを廃止するのがよい
機会かと。
0133デフォルトの名無しさんNGNG
型を意識してプログラムを組むのは、当たり前だ。
型を意識しないでプログラミングなんて言うのは、
所詮、初心者プログラマだと思うが。

これと、ハンガリアン記法が趣味に合うかというのは別の話だし、
(実際、俺の趣味には合わない。)
ネーミングで型を明確にするのかというのも別の話だ。
ネーミングで型を明確にすると言うのは悪くもないと思うが、
MSの用にバシバシ仕様変更されると、移行作業で問題が出るだろう。

MSが.NETへの以降のためにつくった後付の理論を、
鵜呑みにしてる厨房がなんと多いことか。(夏休みの学生か?)
0134デフォルトの名無しさんNGNG
半狩り案は見た目が嫌だな。変数名に大文字と小文字が入るから
ソースが凸凹して読みにくい。
0135デフォルトの名無しさんNGNG
>>134
じゃぁ、ptr_intとか、str_nameとかにしなさい。
0136デフォルトの名無しさんNGNG
>>133
じゃぁ、仕様変更がほとんどない状況においての、ネーミングで型を明確にするメリットは?
0137デフォルトの名無しさんNGNG
>>136
× ネーミングで型を明確にするメリットは?
○ ネーミングで型が明確になるのがメリット
0138デフォルトの名無しさんNGNG
>>137
ネーミングで型が明確になっても嬉しいとは思わないけどなぁ。
0139デフォルトの名無しさんNGNG
>>136-137
VB6.0まではその恩恵があったんですが。
0140デフォルトの名無しさんNGNG
>>138
あんたは厨
0141デフォルトの名無しさんNGNG
>>140
モジュールで定義されてる巨大な構造体の各メンバをユーザ側から
いちいち書き換えてた時にはまぁ、役に立ったけど。
それだってそもそも、想定される構造体操作関数くらい作っておけよ
という感じだし。
0142デフォルトの名無しさんNGNG
>>141
暗黙のキャストとか気にならん?
0143デフォルトの名無しさんNGNG
理由がない限り、特に気にしなくていいような型にしてるし。
小数→整数 変換なんて滅多に起こさないから、逆に目立つし。

ハンガリアン使わないと型がわからなくなる程大量の変数を
一つの関数にぶち込むことはまずないし。
0144デフォルトの名無しさんNGNG
>>143
気になる状況など
俺にような優秀な人間には
存在しないってことね
0145デフォルトの名無しさんNGNG
>>144
ハンガリアンに頼ってるような環境が普通以下だと思われ。
0146デフォルトの名無しさんNGNG
最高ですか?
0147デフォルトの名無しさんNGNG
>>144
誤解してるかもしれないので念のため言っとくが
俺はハンガリアンなんて使ってないぞ
型を意識するのはプログラマの基本だと言っている
べつにネーミングでやらなくてもいい
0148デフォルトの名無しさんNGNG
>>147 の >>144 は >>145 の間違い
0149デフォルトの名無しさんNGNG
>>147
なるべく意識しなくてすむようにするのが設計の基本だ。
0150デフォルトの名無しさんNGNG
イチニ ハンガリアン
ニイニ ハンガリアン
ハンガリアン ハンガリアン
0151デフォルトの名無しさんNGNG
>>149
お前は意識しなくてすむように設計しての実際意識しない
俺は意識しなくてすむように設計はするが意識はする
それだけの違いだ
まあ気にするな
0152デフォルトの名無しさんNGNG
ゲーム屋です
無駄な型変換をしないように意識したいので
int n
unsigned int u
float f
double d
を使ってます。無いと心労。
0153デフォルトの名無しさんNGNG
>>152
整数と小数の使い分けはまだわかる。
それ以上はそれらが混在するような状態が間違いなのでは?
(構造体やクラスのメンバ変数にシビアな型を持たせすぎとか…
ゲーム屋じゃ場合によってはしょうがないけど)
0154デフォルトの名無しさんNGNG
>>153
同意。数値計算とかだと全部小数とかでむしろ分かりやすい場合が多いんだけど、
ゲーム屋さんとかだと整数/小数が混在するから仕方無いと思う。

…けどint/unsignedとfloat/doubleはどうだろう…。個人的には使い分けるような
局面になったことがないから何とも言えないな。
0155デフォルトの名無しさんNGNG
>152
おまえの言う「無駄な型変換」の意味がわからん。

そもそもハードはどれ?
普通はdoubleなんか使わない。
大体unsignedなんか型変換したって実行効率には影響しないぞ?
0156デフォルトの名無しさんNGNG
>無駄な型変換
変数名に型情報がついてない-->変数の型が分からない-->とりあえずキャスト
マズー。
0157デフォルトの名無しさんNGNG
宣言を見ないでキャストするあなたが素敵
0158デフォルトの名無しさんNGNG
ジャンガリアン・ハムスター
0159ageNGNG
アイ━(゚∀゚)━( ゚∀)━(亜 ゚)━( 遺 )━(゚ 慕)━(∀゚ )━(゚∀゚)━ボ!!!!
0160デフォルトの名無しさんNGNG
ハンガリアン記法とモンゴリアンチョップってなにが違うんですか?
0161 NGNG
お国が違う。
0162デフォルトの名無しさんNGNG
要するに変数名に型情報なんて入れちゃったら動的束縛の際に
マズー、てことじゃないの? 仕様変更てのもレンジの差こそあれ、根は同じ。
0163デフォルトの名無しさんNGNG
あげちゃったわけでつか。
あげちゃったわけでつか。
あげちゃったわけでつか。
あげちゃったわけでつか。
あげちゃったわけでつか。
あげちゃったわけでつか。
あげちゃったわけでつか。
あげちゃったわけでつか。
                       氏ねよ、クズが。
0164デフォルトの名無しさんNGNG
void Hoge::Bar(baz foo){
  this->foo = foo;
}
0165デフォルトの名無しさんNGNG
>>156
> 変数名に型情報がついてない-->変数の型が分からない

(・∀・) アフォ!
(・∀・) タイーホ!
(・∀・) fusianasan!

一体どういう局面で、変数名に型情報がないだけで型が分からないなんて状況になるんだ?
0166デフォルトの名無しさんNGNG
以前、グローバル変数てんこ盛りのソースを、
補完機能の無いエディタもgrepも使わず改造すれ、
という仕事した事があるが、この時ばかりは
「アフォどもはハンガリアン使っとけ」と激しく思った。
0167デフォルトの名無しさんNGNG
>> 166
ナルホド、版画利安てアフォども救済のためにあったのか!!
0168デフォルトの名無しさんNGNG
ロッキー「ハ〜ンガ〜リア〜〜ン! ハ〜ンガ〜リア〜〜ン!」

ワーワー
0169アフォルトの名無しさんNGNG
>>166-167
あのなあ、その場合、変数名にジャンガリアン適用する前にする事が一杯あるだろ?
そして、それが済めばモンゴリアンは不要になるはずだが。
0170167NGNG
もちろん漏れもそう思ったサ。
しかしその頃の漏れはまだ入社したばかりのペーペーで、
しかもその仕事ってのが銀行の基幹システムのモノだったから、
上からの指示無くしてソースに触れることが許されてなかったんだYO!

しかも指示っつーのが「日本語に変換されたソース」による変更例、もしくは
「このロジックを用いている場所は間違ってる」とか書いてあるだけで、
肝心の修正個所は「各自ソース見て洗い出せ」。

>>167のように思った漏れの気持ち、分かってくれよな?
0171170NGNG
やな事思い出して感情が昂ぶってたせいかミステイク。
167ではなく166だった。スマソ。
0172デフォルトの名無しさんNGNG
識別子の名付け方は暴乱堂のVCL、CLXやサンプルプログラムなどに準拠して付けてます。
0173アフォルトの名無しさんNGNG
>>170
気持ちはわかる、漏れもそんなソース/環境はイヤだ。
が、そういう気持ちになったのは、ソースがハンガリアン適用していないせいでは
ないだろう?
漏れが 169 で 「ジャンガリアン適用する前にする事が一杯あるだろ」 と書いた
のは 166 にそうしろというのではなく、166 の言うところの「アフォども」 に改善
してくれと要求するにしてもハンガリアンは関係無いだろ、という意味だ。
0174デフォルトの名無しさんNGNG
ハーンガーリア〜〜〜ン♪
かーのかっちゃん♪
0175デフォルトの名無しさんNGNG
唐揚げ
0176デフォルトの名無しさんNGNG
ハンガリアンと唐揚げは、どっちがうまうま?
0177デフォルトの名無しさんNGNG
腹減った、早く唐揚げをくれ
0178デフォルトの名無しさんNGNG
>>176
カニバリストには前者。
0179デフォルトの名無しさんNGNG
そうか、漏れは唐揚げだ
0180デフォルトの名無しさんNGNG
結論: 179の唐揚げが一番うまうま
ハンガリアンに喰われてこい >179
0181デフォルトの名無しさんNGNG
いやだ。漏れが食うのだ。
0182デフォルトの名無しさんNGNG
モンゴリアン マンセー!
0183デフォルトの名無しさんNGNG
サンガリアンは大阪人
ジャンガリアンはハムスター
モンゴリアンはマッチョマン
ハンガリアンは原始人
0184デフォルトの名無しさんNGNG
プレフィックスの話しに戻ってスマソ。

class CHoge{
private:
int m_instanceState;// インスタンス変数
static int sm_classState; //クラス変数
};

複数のスレッドから呼び出されるインスタンスの場合、
クラス変数なのか、インスタンス変数なのか気にならないか?

俺は気になる。
0185 ◆i.HARPeeuc NGNG
>>184
いつでもクラスの宣言に戻って確認できますが何か?
0186デフォルトの名無しさんNGNG
つーかメンバ変数を外部から(直接)呼ぶ気ですか >>184 は。
しかも private だし…
0187デフォルトの名無しさんNGNG
>>186
「呼び出す」って言葉の使い方が変だけど(「参照する」では?)、
マルチスレッドの話をしてると思われ。
0188デフォルトの名無しさんNGNG
有用とか言ってるやつと仕事したくない。
0189デフォルトの名無しさんNGNG
cx ..幅, cy ..高さ というのは意義が理解できる
cxHogehoge .. Hogehogeの幅
cyHogehoge .. Hogehogeの高さ

p..ポインタ, r .. 参照も許せるな。
pHogehoge .. Hogehogeへのポインタ。
rHogehoge .. Hogehogeへの参照。

wHogehoge .. WORDのHogehoge
lHogehoge ... LONGのHogehoge
なんの意味があるんだろう。

k .. 日下部というのもいいかもしれない。
kIme .. 日下部が使っているIME。

つっこみどころ満載だから、やめておこう。。。
0190デフォルトの名無しさんNGNG
> k ..
(;´Д`)
0191デフォルトの名無しさんNGNG
knk
nxt
0192デフォルトの名無しさんNGNG
assert(kIme != ATOK);
とか?
0193デフォルトの名無しさんNGNG
assertion failed!
0194デフォルトの名無しさんNGNG
そうか、漏れは唐揚げだ
0195デフォルトの名無しさんNGNG
相変わらずクソスレだなあ
0196デフォルトの名無しさんNGNG
ハンガリアンからしてクソなんだからしょうがない。
0197デフォルトの名無しさんNGNG
えいごリアン
0198デフォルトの名無しさんNGNG
えいリアン
0199デフォルトの名無しさんNGNG
すずきアン
0200デフォルトの名無しさんNGNG
こしアン
0201デフォルトの名無しさんNGNG
┌─────────────────────────┐
│☆☆☆☆☆☆☆―おいらの胸の心の愛 ―☆☆☆☆☆☆☆│
│☆    ┏━┓┏┳┓      ┏┳━━━┳━┓┏┓    ☆│
│☆    ┣━┫┃┃┣┳━━┛┣━┳┓┣━┛┃┃    ☆│
│☆    ┗━┛┣╋┛┗┳┓┏┛  ┃┣┛    ┃┃    ☆│
│☆    ┏━━┛┣┓┣┛┃┃┏━┛┃┏━━┛┃    ☆│
│☆    ┗━━━┛┗┛  ┗┛┗━━┛┗━━━┛    ☆│
│☆       ┏┳┓┏┳┓    ┏┳━━┳┳┓         ☆│
│☆       ┃┃┣┛  ┗┳━┛┃ ━ ┃┃┃         ☆│
│☆       ┃┃┣┓┃┏┻┓┏┫┏┓┃┃┃         ☆│
│☆       ┗┫┃┗┫┃  ┃┃┗┛┃┃┃┗┓       ☆│
│☆         ┗┛  ┗┛  ┗┛    ┗┻┻━┛       ☆│
│☆                             ▼▼▼▼   ☆│
│☆    本日 PM 3:00 開演   場所 空地      ・__・    ☆│
│☆             来ないやつは殺す    〇      ☆│
│☆                            3     .☆│
│☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆│
└─────────────────────────┘
0202デフォルトの名無しさんNGNG
どういう文字使うの > マジャル
0203デフォルトの名無しさんNGNG
基本的にはラテン文字のようだ。
ロヴァーシュ文字なんてのもあったらしい。
http://bosei.cc.u-tokai.ac.jp/~hukaya_s/Pages/Japanese_Pages/Computers/Macintosh/mac_fonts.html#%83A%83%93%83J%81[_%8C%C3%91%E3%83n%83%93%83K%83%8A%81[%95%B6%8E%9A%81i%83%8D%83%94%83@%81[%83V%83%85%95%B6%8E%9A%81j%97p%83t%83H%83%93%83g
0204デフォルトの名無しさんNGNG
ポーランド人が考え出したからポーランド記法。
M$も真似してハンガリー人が考えたから....。

>9
> っていうかな、これからの言語では「これはポインタ?」とか気にしなくて
> いい言語が主流になってくるのよ、Javaとかね。
Java/C#にもポインタがある。Java/C#ではポインタのことを参照と呼ぶ。
Java/C#で無いものはポインタではなくポインタ操作、メモリ操作、アドレス操作である。

> だから、型を気にしなきゃいけないC/C++は、どんどん廃れていく方向にあるわけ、絶滅はしないけど使われる分野は狭くなっていくのは確実。
> だから、廃れていくC/C++と一緒にハンガリアンもやめましょうってこった。
Java/C#はC/C++よりも強く型付け(very strongly typed)された言語だ。
Java/C#でハンガリアン記法をやめた理由は、グローバル関数、グローバル変数を宣言することができない(する必要が無い)からだ。
0205デフォルトの名無しさんNGNG
> >>13
> ハンガリアンを徹底的に排除するんでなくて、良い部分は残していけばいいんじゃないかと思いまして。
Javaの仕様では徹底的に排除しても支障はないと思います。
むしろ残しておくことは混乱を招く可能性が高まります。

> 俺が使っているハンガリアン(?)は
> m_ ・・・クラスのメンバ変数につける、これは俺も必要か疑わしい。
Java/C#にはグローバル変数を定義できないからJavaのフィールド(メンバ変数/属性)区別するものが無く、全く不要。
Javaでは、staticなフィールドはすべて final になるようなものを推奨されている。
純粋論者は インスタンスフィールド(staticでないフィールド(メンバ変数/属性))はすべてprivateにすべきだ、という。
0206デフォルトの名無しさんNGNG
>むしろメソッド(メンバ関数/操作)には
> s_ ・・・staticなメンバにつける。
Java/C#ではstaticなメソッド(メンバ関数/操作)は、インスタンスメソッドと違い、クラス名.メソッド名、として呼び出すためstaticかどうかはこれを見ただけで判断でき、不要。
むしろJavaでのメソッド名は動詞にすることを推奨されている。
例 :

public boolean compareTo(BigDecimal value){
//compareToメソッドの実装
}

public static boolean compareTo(BigDecimal value1, BigDecimal value2){
//compareToメソッドの実装
}
0207デフォルトの名無しさんNGNG
Java/C#では、staticフィールド(メンバ変数/属性)でかつfinalな変数は、すべて大文字で単語の区切りにアンダースコアで記述する。
例 : public static final String FINAL_VALUE_OF_STRING;

> g_ ・・・グローバル変数につける、グローバル変数使わないからこれも疑わしい。
Java/C#にはグローバル変数を定義できないから区別するものが無く、全く不要。

> p ・・・ポインタにつける、意図的にNULLが代入されている場合がある事がわかる。
Javaではクラスのコンストラクタが生成したオブジェクト,配列はすべて必ず参照変数となるため不要。Javaの値型はプリミティブ型(C/C++の基本データ型int, doubleなどと同じ)のみである。C#では、基本データ型を参照変数としても値変数としても定義できてしまう。
0208デフォルトの名無しさんNGNG
> C ・・・クラス名の先頭につける。
Javaではクラスを定義しそのスコープの内側でメソッドを実装なければコンパイルエラーとなるからつける必要が無い。
C#ではインターフェースと区別するためにCをつけたいときがあるそうだ。
逆に、インターフェース名の頭にIをつけるというM$のガイドラインがある。
(Javaではインターフェースとクラス、どちらを継承しているかの区別は、extends, implementsキーワード(C++/C#だと両方とも:を使うため区別できない)を見ただけでわかるためこのような区別は不要)。
Javaではむしろクラス名はできる限り名詞にすることが推奨されている。
0209デフォルトの名無しさんNGNG
ついでに、
Javaではパッケージ名(C#/C++のnamespace)にはドメイン名を付加することが推奨されている。
2chが開発したあるパッケージ名なら、 net.2ch.www.foo.bar とか。
C#ではなぜかパッケージ名の頭文字を大文字で宣言することを推奨している。これではクラスかパッケージかの区別がつきにくい。

C#ではなぜかメソッド(メンバ関数/操作)名の頭文字を大文字で宣言することを推奨している。
これではコンストラクタとメソッド(メンバ関数/操作)との区別が付きにくくなる。
0210デフォルトの名無しさんNGNG
Java厨
必死すぎてなんか哀れ
0211デフォルトの名無しさんNGNG
>>209
C# が大文字好きなのは Delphi の影響かもね。
0212デフォルトの名無しさんNGNG
まあ、こんなのまで使って型を意識する必要はないよね。
あ、そーゆーとこ組む人は別ね。
ポインタになるやつはそれっぽい名前つけるし、
あえてきにすんのは少数か整数か?って程度か?
スコープに関してはやる意味がみつからん。
でも開発にうんこ野郎がいてグローバルとか使いまくってたら、
そら、ハンガリアンつかわな死ぬわな。
0213デフォルトの名無しさんNGNG
>>204-209
> Java/C#にはグローバル変数を定義できないからJavaのフィールド(メンバ変数/属性)区別するものが無く、全く不要。
なぜグローバル変数を定義できないから、メンバ変数だけの話になるか分からん。
メンバ変数を区別するのはグローバル変数の他にローカル変数があるだろ。

> 純粋論者は インスタンスフィールド(staticでないフィールド(メンバ変数/属性))はすべてprivateにすべきだ、という。
そして、フィールドにアクセスするときにはフィールド側にm_をつけるのではなくアクセッサ側にget setを
つけるわけだね。考え方としてはm_と同じなんだけどね。
ちなみにC#ではget setなんて余計なものをつけなくてもプロパティという方法でアクセッサと同じ利点が
得られる。そのときのプロパティ名と(private)メンバ変数名を区別するためにm_が有効。
ちなみにm_はスコープの話なのでハンガリアンではないのだが。

あと名前で役目を区別するのに省略形を使用するかそうでないのを使用するかの違いだけって言いたくなる点が多いね。
それじゃハンガリアン(?)の考え方自体を否定していることにならないんだけどね。
例 頭にCでクラス/名詞にしたらクラス sをつけたらstatic/すべて大文字で単語の(略)

おっと>>209ではあれほど型を気にすんなといっていたのに、クラスかパッケージ、
コンストラクタとメソッドは区別すんのか
0214デフォルトの名無しさんNGNG
>>213
> あと名前で役目を区別するのに省略形を使用するかそうでないのを使用するかの違いだけって言いたくなる点が多いね。
> それじゃハンガリアン(?)の考え方自体を否定していることにならないんだけどね。
ハンガリアンで使うのは、役目じゃなくて型名の省略形では。もっと原始的。
0215デフォルトの名無しさんNGNG
                          (・∀・)ハンガリアンイクナイ!!

=( ・A・)ハンガリアンイイ!!            (・∀・)ハンガリアンイクナイ!!

              ハンガリアンイイ( ・A・)(・∀・ )ハンガリアンイクナイ!!

                     バシバシ::ノヽ/て::
              ハンガリアンイイ!!( 'A`)ノ('∀` )ハンガリアンイクナイ!!
                        ::ヽヘ/::

(・∀・)ムハンガリアンイクナイ!!         Σ('A` )Σ('∀` )

(・∀・)ハンガリアンイクナイ!! イイ('A` )= ('∀` )=イクナイ!!

イクナイ!!(;・∀・)イイ!!('A` )('∀` )イクナイ!!

ワ-ワ- ,;;⌒;;;,'⌒';;⌒;,ワ-ワ-
    (,:;,ゞ.;:.:.: ;:;.:;. )
0216デフォルトの名無しさんNGNG
>>213
Java/C#で
フィールド(メンバ変数/属性)とローカル変数を区別するために変数名の頭に特定の文字をつける必要性が無いのは、
フィールドはクラスの内側直下のスコープ内にしか記述することができない。ローカル変数はメソッドの内側直下のスコープ内にしか記述することができない。
これにより、変数名を見なくても一目見ただけでローカル変数とフィールドの区別が簡単にできる。だから不要・

C#のget,setは独自に改良し、オーバーロード、オーバーライドすることはできないのか?

メソッドは頭文字すべて小文字にすればきにするほどの問題はない。
コンストラクタはクラス名と同じで、クラスの頭文字は大文字によりコンストラクタも必然的に大文字になる。

そうすることで、これらのクラスからインスタンスを生成し、実際に使用したとき、コードの可読性に悪影響をほとんど与えない。

型名を気にしないとは言っていない。
型名の頭にIやCをつけるよりも一目見ただけでクラスがどのような振る舞い、機能を持っているかが解るような名前(モデル名)にすべきだということである。
これはグローバル変数である、とかローカル変数であるとかインターフェースであるとかクラスであるとかいう情報よりも
それが何をするためクラスか、何をするためのメソッドか、どのようなものをあらわす変数かが簡単にイメージできるような情報を名前に含める方が重要である。

XP, RUP的な発想では解りやすさが重要視される。
どうだ?
0217デフォルトの名無しさんNGNG
>>216
> フィールドはクラスの内側直下のスコープ内にしか記述することができない。ローカル変数はメソッドの内側直下のスコープ内にしか記述することができない。
へー。フィールドはメソッドから見えないんだー。
メソッド内にa++とあってこのaがフィールドかローカル変数かどうやって区別するのかな?

> C#のget,setは独自に改良し、オーバーロード、オーバーライドすることはできないのか?
出来るに決まってんじゃん。アフォですか?
0218デフォルトの名無しさんNGNG
>へー。フィールドはメソッドから見えないんだー。
見えるに決まってんじゃん。お前こそアフォですか?
{}と (){}の違いで区別できるだろが。

C#に独自のget,setがあったとしてもそれほどのメリットを享受できるとは思わないな。そもそもそんな話には興味が無い。
0219bloomNGNG

http://www.agemasukudasai.com/bloom/
0220デフォルトの名無しさんNGNG
>>218
> 見えるに決まってんじゃん。お前こそアフォですか?
皮肉ですよ(プ

> メソッド内にa++とあってこのaがフィールドかローカル変数かどうやって区別するのかな?
この質問に答えてください。

> C#に独自のget,setがあったとしてもそれほどのメリットを享受できるとは思わないな。そもそもそんな話には興味が無い。
興味が無いなら持ち出すな。
0221デフォルトの名無しさんNGNG
>>220
お前暇人ですね。C#信者ですね?

>この質問に答えてください。
なるほど。フィールドと同じ名のローカルではバッティングする説明がなかったな。
とりあえずthis使え

get,setを持ち出したのは >>216
0222デフォルトの名無しさんNGNG
>>221
> とりあえずthis使え
それはそれで一つの案だな。
常にthisをつけると決めるのであれば名前で区別できるようにする必要はない。

> get,setを持ち出したのは >>216
その通りだ。誰に言ってるか分かりにくいから今度からはリダイレクトつけるようにしろ。
0223デフォルトの名無しさんNGNG
思いっきり古い発言にオフトピするのでageない。

>変数の先頭に型情報を名づけるアフォ言語=Perl
で納得されてるようだがそれ少し違うと思う(^^;
Perlの記号プレフィクスは、

$ 汎用スカラ変数
@ スカラ変数の集合による配列
% スカラ変数の集合によるハッシュ(awkの連想配列相当)
& 関数(サブルーチンやメソッド)“前方参照でなければ省略可”
* 同名の上記4種の集合(グロブ名) (void型に近い?)

っつー機能分類記号で、どっちかっというと演算子に近い。
なので、文字列なのか整数なのか浮動小数点なのかとか
そういう変数型分類とは全然関係ないので
ハンガリアンも使いたくなる場面は多いのよ。
特に $pstr = \$str みたくリファレンスの間接参照を
通常変数と混在させざるをえないときとか。
なのでクラス定義多用でオブジェクトにカプセル化
してかないと、なかなかすっきりせんのだわ(^^;

(汚い言語仕様であることは否定しないが、もともとストリームエディタ系簡易言語だしぃ?)
(これでも御先祖様の sed と比較すれば相当な進化だよ)
0224デフォルトの名無しさんNGNG
> 思いっきり古い発言にオフトピするのでageない。

対象が古くても、発言に対するレスならオフトピとは言わないと思うが・・・。
0225デフォルトの名無しさんNGNG
sed よりも awk の方が、より近い先祖だと思うが...
















で、awk に比べると退化...
0226デフォルトの名無しさんNGNG
>>217
なにか?
0227デフォルトの名無しさんNGNG
>>586
オナーニ中
0228デフォルトの名無しさんNGNG
>>124
国境を越えた各国警察の合同捜査により
逮捕
0229デフォルトの名無しさんNGNG
>>157
あー言っちゃったよ
あいたた
0230デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0231デフォルトの名無しさんNGNG
yahooニュースのトップ項目に載るほどのことか
0232デフォルトの名無しさんNGNG
>>183
きわめてそれっぽい
0233デフォルトの名無しさんNGNG
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0234デフォルトの名無しさんNGNG
識別子の名付け方は暴乱堂のVCL、CLXやサンプルプログラムなどに準拠して付けてます。
0235デフォルトの名無しさんNGNG
最高裁への上告は認められなくなったから、これで事実上判決確定だよ。
逆転も何もないって。
勢いで上告なんかしても一発で上告却下(門前払い)だよ。

二審も一審を支持。これに対して上告しようにも、
刑事訴訟と同様、自由に上告できるってもんでもないのです。
民事訴訟法312条 (上告の理由) 1項
「上告は、判決に憲法の解釈の誤りがあること
その他憲法の違反があることを理由とするときに、することができる。」
http://www.m-net.ne.jp/~doba/goto/hon.htm

ようするに上告しても今の制度では100%無駄。
これで完全終了ってことか。
0236デフォルトの名無しさんNGNG
もう始まってるんだね。
この板も既に対象に・・・

http://headlines.yahoo.co.jp/hl?a=20030109-00000021-zdn-sci
0237デフォルトの名無しさんNGNG
>>948
それは同意。
匿名だから何をしてもいい。と思っている香具師が多すぎる。

HP荒らしとか個人情報貼り付けとか嘘の犯罪予告とか。
とにかく多くの人を釣り逃げ煽り逃げ荒らし逃げすればいいと思っている奴が多い
0238デフォルトの名無しさんNGNG
削除依頼板作業所に貼ったほうが良い予感
0239デフォルトの名無しさんNGNG
                   /\        /\
                   /:::::::ヽ____/::::::::ヽ、
                  丿 ::.__  .:::::::::::::  __  ::::ヽ_
                 / /。 ヽ_ヽv /: /。ヽ  ::::::ヽ
 -┼-   丿~~~|     / / ̄ ̄√___丶  ̄ ̄\  ::::|            ■ ■
 -┼-   /~~~~/ ━━━ | .:::::::::: / / tーーー|ヽ     ..::::: ::|━━━━━━  ▼ ▼ 
  .|       丿      | .:::::.  ..: |    |ヽ        ::|            ● ●
                | :::    | |⊂ニヽ| |      :::::| \
              / /| :    | |  |:::T::::| !      .::| \ \\
             / / \:    ト--^^^^^┤      丿 \\\ \\\

                      お、大阪・・・・        
0240デフォルトの名無しさんNGNG
相手のIP教えていただくには
どういった手続きをとればいいんですかね?
0241デフォルトの名無しさんNGNG
ACCS、任天堂、警察のみなさ〜ん!!
24歳童貞もよ(ニュー速いちのうんこ好き) ◆RKlw/UJGqg
が著作権侵害の犯罪教唆しましたよ〜!!
http://live2.2ch.net/test/read.cgi/news/1041919882/717


717 :24歳童貞もよ(ニュー速いちのうんこ好き) ◆RKlw/UJGqg :03/01/09 00:01 ID:PgSHqi/K
>>699
おまいら買ったらすぐにnyに流せよ。

0242デフォルトの名無しさんNGNG
ハイテク捜査課に通報しますた。
0243デフォルトの名無しさんNGNG
じゃ、俺も串で
0244デフォルトの名無しさんNGNG
http://headlines.yahoo.co.jp/hl?a=20030109-00000021-zdn-sci

一応ニュースになるんだね。
0245デフォルトの名無しさんNGNG
公衆に向かって電波ゆんゆんなカキコを垂れ流す事では。
0246デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0247デフォルトの名無しさんNGNG
よしゆき陥落したかヽ(`Д´)ノ ウワァァァン
0248デフォルトの名無しさんNGNG
こういう物は量より質です。はい。
質があるかはしりませんが(w
0249デフォルトの名無しさんNGNG
そういうのは厳しくなりそう
P2Pとかに潜るんでしょう
0250デフォルトの名無しさんNGNG
暴力団なんて散弾銃向けて追い出せばいいじゃねーか。
持ってないの?散弾銃。
0251デフォルトの名無しさんNGNG
 自分が2chにこなくても、風評被害が出てしまっては取り返しが
付きませんので。
0252デフォルトの名無しさんNGNG
そういうことだったんですか(^_^;)
でもね・・・
そ ん な こ と は 一 秒 あ れ ば 思 い 付 く こ と
だと思いませんか?(^_^;)
つまり、今の手法ってのが選ばれたってことから
そのやり方は選択されなかったことは自明かと・・・・。
0253デフォルトの名無しさんNGNG
ドピュッ!タラーリ
0254デフォルトの名無しさんNGNG
すまん!2連かきになっちまった!俺はマンコとしかかけない小心者なんでメロンパンとは別だからな!!
0255デフォルトの名無しさんNGNG
ウソでも言うな!
0256デフォルトの名無しさんNGNG
にちゃんはもう終わりだな
0257デフォルトの名無しさんNGNG
GAっていつのまに2ちゃんねるアニメランキング1位になったんだ?(w
0258デフォルトの名無しさんNGNG
2ちゃんを叩く連中の主張には一辺の理もないの
アンダスタン?(^_^;)
0259デフォルトの名無しさんNGNG
gannbattekudasai
0260山崎渉NGNG
(^^)
0261デフォルトの名無しさんNGNG
ということはなにか固定のほとんどは地方出身だということか。
0262山崎渉NGNG
(^^)
0263山崎渉NGNG
(^^)
0264デフォルトの名無しさんNGNG
お国が違う。
0265デフォルトの名無しさんNGNG
荒すな
0266デフォルトの名無しさんNGNG
つーか識別子ぐらい自由につけさせてくれ
0267デフォルトの名無しさんNGNG
ageてみる
0268デフォルトの名無しさんNGNG
ハンガリアンってハングル文字使ってる人のこと?
0269デフォルトの名無しさんNGNG
それはハングラー
0270デフォルトの名無しさんNGNG
ハンガリアンっておなか減ってる人のこと?
0271デフォルトの名無しさんNGNG
ハングリアンってCMあったな昔
0272デフォルトの名無しさんNGNG
ハンバーグラーっていつの間にか抹殺されてたよな。
0273デフォルトの名無しさんNGNG
脱獄囚が再収用されたんだろ
0274山崎渉NGNG
(^^)
0275山崎渉NGNG
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0276山崎渉NGNG
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0277デフォルトの名無しさんNGNG
>>>>>>>>>>
0278デフォルトの名無しさんNGNG
>>1
>>みんなだってポインタの先頭には「p」とか書くだろ?

書かねーよ
0279スマートポインタを使うよ派NGNG
>>278
書くよ…。
0280デフォルトの名無しさんNGNG
むしろケツだな。
0281ビューティーを紡ぐよ派NGNG
>>278
書くよ…。
0282デフォルトの名無しさんNGNG
識別子の名付け方は暴乱堂のVCL、CLXやサンプルプログラムなどに準拠して付けてます。
0283デフォルトの名無しさんNGNG
>>278
ポインターは真似るな。
クラスメンバーのm_XXXがぜったいに作らない。
つーかMSめんどくせーもんつけるなよといいたい。
0284山崎 渉NGNG
(^^)
0285デフォルトの名無しさんNGNG
C++でメンバ変数を全部構造体にまとめてるんですけど、
コーディングスタイルとしてはどうでしょうか?
自分としては、m_をつけるよりもスマートだと思ってますが・・・。

class CFoo
{
public:
void Clear(void) { ZeroMemory(&m, sizeof(m)); };
// 〜省略〜
private:

// メンバ変数
struct {
int X;
int Y;
bool Active;
} m;

};
0286_NGNG
http://homepage.mac.com/hiroyuki44/hankaku07.html
0287_NGNG
http://homepage.mac.com/hiroyuki44/
0288デフォルトの名無しさんNGNG
版画利案なんておっさんプログラマーしか使わん
ヤングはJava的記法だよ。
0289デフォルトの名無しさんNGNG
ハンガリアンダイナマイトォォォォォォォォォォッ!!!!!
0290デフォルトの名無しさんNGNG
>>285
C++じゃないけど、VBの仕事の時にグローバル変数でそんな感じでやってた。
コード補完ができて一石二鳥。C++じゃないので::とか言わないように。
0291デフォルトの名無しさんNGNG
ハンガリアンチョップ
0292デフォルトの名無しさんNGNG
ん〜・・・少なくてもCやC++なら犯狩庵でもいいと思うけどなぁ〜。
Javaなら要らんかもしれないけど、クセでやっちゃうな。
0293デフォルトの名無しさんNGNG
つーかハンガリアンを否定している奴の気が知れない。
クラスの始めはCで始めるとか大文字で始めるとか
メソッドなら小文字で始めるとか
ローカル変数には_を付けるとか
無駄なものはいくらでも有る。
0294lisperNGNG
やっぱ p は predicate だよね
0295デフォルトの名無しさんNGNG
>>293
無駄だと思うなら、やめればいい。
0296デフォルトの名無しさんNGNG
つか、ハンガリアンじゃなかったらどう書くのよ
0297デフォルトの名無しさんNGNG
BCBの書き方(型名じゃなくてプロパティの名前ね)が結構好き。
Pascalっぽいっていうのかな?
0298デフォルトの名無しさんNGNG
ポインタと参照はほかと区別するべきだと思うが、
それ以外で面倒なprefixを付ける理由が分からない。
変数名を見ただけで大体分かるような名前付けをするべき。
0299デフォルトの名無しさんNGNG
スコープはほかと区別するべきだと思うが、
それ以外で面倒なprefixを付ける理由が分からない。
変数名を見ただけで大体分かるような名前付けをするべき。
0300デフォルトの名無しさんNGNG
データ型はほかと区別するべきだと思うが、
それ以外で面倒なprefixを付ける理由が分からない。
変数名を見ただけで大体分かるような名前付けをするべき。
0301デフォルトの名無しさんNGNG
>>298
ポインタと参照も分かるような名前を付けろよ。
HogePointerとかHogeReferenceとかさぁ。
iCountだったらCountIntegerだ。
CFooじゃなくてFooClassとすればもっと分かりやすいし。
0302デフォルトの名無しさんNGNG
大文字で始まる名詞はCとかつけるまでもなくクラス。
0303デフォルトの名無しさんNGNG
そもそもこれまで、世界で最も大きく最も成功しているソフトハウスであるMSが
全面的に採用していたにもかかわらず、
ハンガリアンは支持と不支持がまっぷたつに分かれてたわけだろ?

MSがいち抜けた今、天秤がどっちに傾くかは核爆発を見るより明らかだろうが。
沈みかけの泥舟からはさっさと脱出しなさい。
0304デフォルトの名無しさんNGNG
>>302
そんな糞ルールつくんなって。小文字だろうが大文字だろうが
クラスはクラスだろ。コード見れば分かる。
iで始まる名詞はint型とか大文字で始まる名詞はクラスとかイヤになる。
0305デフォルトの名無しさんNGNG
エディタで細かく色分けしてくれれば、そもそも命名規則なんてつける必要ないのかもよ?
まぁ、最初は色覚えるのに苦労するかも知れないけど。
0306デフォルトの名無しさんNGNG
命名規則なんて人間がその場で分かるようにするためのものよ。
コンパイラのためでもないし、遠く離れた定義見れば分かるから
いらないと言うものじゃない。

iloopと書いてあるだけでintのloop用変数と分かる。便利じゃないか。
0307デフォルトの名無しさんNGNG
Cプログラマは変数宣言を関数の頭でする癖を持ってる人が多いってことが
命名に影響を与えてる気はする。
これが普通のJavaプログラマだったら、変数は使う直前で宣言する。
スコープが小さいから一目で型が何なのか分かる。
少なくともprefixに型名を加えること(>>306のiloop)はない。
0308デフォルトの名無しさんNGNG
>>307
つまりスコープが遠い位置にあるメンバ変数などにはprefixをつけろと。
0309デフォルトの名無しさんNGNG
>>308
メンバ変数は宣言自体が見当たらない、
そして開発者にとってクラスのメンバ変数名が何であるか知ってるはずであり、
型は自明であるから付ける必要はない。
0310デフォルトの名無しさんNGNG
つうか、グローバル変数なんてもんがあるのも原因かもなー
0311私見NGNG
つーかprefix,suffixの有無くらいでソースが読みにくくなるとか
言ってる香具師は修行が足らん。

が、最低限グローバルオブジェクトはプロジェクト内で、
ローカルオブジェクトはメソッド単位で、というように
スコープ範囲とスコープが一致するモノ同士は
統一されるべき。

例えばメソッドA,メソッドBのローカル変数の命名規約は、
各関数内で統一されてりゃ問題無い。
が、メソッドA,Bの属するクラスCのメンバは統一されるべき。
だがクラスDのメンバと統一する必要は無い。
(強い関連を持ってるなら統一すべきだが)
0312デフォルトの名無しさんNGNG

我流ほど危険な物はない。
ハンガリアン記法は、天才プログラマーが作った物なんだから
あれこれと批判しないで、それに従って自分の物にすべき。
結局は、それが最良の道だ。
0313デフォルトの名無しさんNGNG
俺は変数名はとにかく短くしたいので、a b c d e f というようにつけてます。
0314デフォルトの名無しさんNGNG
俺も覚えはじめはそうだったけど、あとあと泣く羽目になるんだよな
0315デフォルトの名無しさんNGNG
正直おいらのソースなんか誰も見ないからまったく関係ない
0316デフォルトの名無しさんNGNG
>>307
変数宣言しないBASICサイキョ
0317デフォルトの名無しさんNGNG
> そして開発者にとってクラスのメンバ変数名が何であるか知ってるはずであり、
他人が作ったとか、忘れるとか、思いつかないんだろうか?

> 型は自明であるから付ける必要はない。
自明でないのは自明であるから付ける必要がある。つーか「自明」って説明できないだけでしょ。

count ← ほら何型か言ってごらん(w

0318デフォルトの名無しさんNGNG
ハンガリアンチョップ
0319_NGNG
http://homepage.mac.com/hiroyuki44/
0320デフォルトの名無しさんNGNG
>>317への反論
定義を見れば分かる。

↑の反論
だったらa b cとかもコメントを見れば分かるな。
そういうことじゃないでしょ。
定義やコメントを見なくてもわかるようにしようね。
0321デフォルトの名無しさんNGNG
>>317
多くの場合整数型だろうなぁ
0322デフォルトの名無しさんNGNG
ようし。次の問題だ。
color ← 何型だ?
0323デフォルトの名無しさんNGNG
COLORREF
0324デフォルトの名無しさんNGNG
最新のIDEを使えば
その場で型もコメントも定義も分かる。
これはテキストエディタでは不可能なことだ。

    I D E マ ン セ ー
0325デフォルトの名無しさんNGNG
>>317
>>そして開発者にとってクラスのメンバ変数名が何であるか知ってるはずであり、
>他人が作ったとか、忘れるとか、思いつかないんだろうか?
メンバ変数くらいIDEで確認しろよ。
0326デフォルトの名無しさんNGNG
>>324-325
IDE厨氏ね。世の中にはテキストエディタを使わなきゃならない
かわいそうな奴らもいるんだよ。
0327デフォルトの名無しさんNGNG
>>327
兎に角、一目で分かる名前付けしてみろってことだ。
0328デフォルトの名無しさんNGNG
>>326な。
0329デフォルトの名無しさんNGNG
>>323 ハズレ
0330デフォルトの名無しさんNGNG
>>327
なるほど、型名も一目で分かるprefix肯定派ですね。
0331デフォルトの名無しさんNGNG
なんつうか、C系言語はIDEが糞なんだろうな。
0332デフォルトの名無しさんNGNG
全てのC++プログラマはOOでプログラムしろ!
グローバル変数なんて使うな!
プリプロセッサ(#define)も使うな!

といってみるテスト。
0333デフォルトの名無しさんNGNG
コメント使えばいいだけだろ
0334デフォルトの名無しさんNGNG
>>324
IDEつかわんでも言語仕様によってはすぐにわかってしまうものがあったりする。
Javaとか。
0335デフォルトの名無しさんNGNG
>>332
ついでに、ポインタ演算もメモリ操作も構造体も共用体もオペレータ定義も
グローバル関数も実装多重継承
使うな!

といってみるテストを追加してみてはと一定見るテスト。

C++のコンパイラでグローバル変数などを使用するとコンパイルエラーを
吐き出すようなオプションがあれば楽チンのようじゃが。
0336デフォルトの名無しさんNGNG
theAppとかもトップレベルの関数もしくはクラスの静的メソッド/プロパティで
取得すんの?
0337デフォルトの名無しさんNGNG
>>332,335
boostのソースでも見てこい。
0338デフォルトの名無しさんNGNG
>>337
見た。
久しぶりにCソース見たってのもあるけど、完全に意味不明。
正直ハンガリアンを少し認めてしまった。使用がないのかも・・・
シンプルなJavaマンセーってな感じです。
0339デフォルトの名無しさんNGNG
グローバル変数は初期化順序の問題があるからC++じゃ使わないだろ
0340デフォルトの名無しさんNGNG
cin,cout
0341デフォルトの名無しさんNGNG
> グローバル変数は初期化順序の問題があるからC++じゃ使わないだろ
シングルトンなオブジェクトをグローバルにしてる。
0342デフォルトの名無しさんNGNG
>>341
それはSingletonパターンにしたクラスがどうしてもグローバル変数に
なってしまうのだということをいいたい?
0343デフォルトの名無しさんNGNG
>>337
新規に開発するときは>>332,335の言うとおりにすべきだと思うのさ。
ふるいのを流用するならアダプタクラスを使ってどうにかしたほうがいいと
思うなあ。
0344デフォルトの名無しさんNGNG
  ∧_∧__フムフム・・
 ( ´ー`/  /
 (   ,/_〇                   ♪
 |   |旦                ♪   ∧∧ セッケイショ
 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|            ヽ(゚∀゚)ノ   デキマシタ!!
  | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |             (  へ)
  |              |             く


   ∧_∧  ハンゴリアーン!!
 |\ΦДΦ)   /|
 ○ <  ζ) <  ○                   人人
 | >  旦  > |               <   ∧∧  キュワアアアアア!!!
 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|              ヽ(゚Д゚ )ノ
  | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |                (  へ)
  |              |                 く
0345デフォルトの名無しさんNGNG
VisualStudio.Netだと変数にカーソル合わせるだけで
型名がわかるから無理にハンガリアン記法にする必要は無いと聞いたが
0346デフォルトの名無しさんNGNG
おい、そのまえにVS.NETなどというIDE使わずとも、言語仕様から
余計なゴミ(グローバルシリーズなど)を排除することで無理に
バンガリアンにする必要がない理由はいくらでもあるわい。

というのはC++とJavaやC#などを比較した場合などに限った話だが。
0347デフォルトの名無しさんNGNG
>>346
ローカル変数とクラス変数を廃止してから言ってください。
0348デフォルトの名無しさんNGNG
>>347は何もわかっていないようだ
0349341NGNG
>>342
そうともいう。
0350デフォルトの名無しさんNGNG
>>347
それでどうやってプログラムを組むのだ
0351デフォルトの名無しさんNGNG
使うのはこんなもんスね。ほかはいらん。
メンバ変数 m_Age;
ポインタ pFriend;
ポインタなメンバ変数 m_pMother;
真偽値 bDead;
真偽値なメンバ変数 m_bMarried;
0352デフォルトの名無しさんNGNG
あとグローバル変数 g_, ファイルスコープ内のスタティック変数 s_
ぐらいは使ってるな。逆に bool の b は使ってない。m_isCacheValid
みたいな名前にしちゃってる。
0353デフォルトの名無しさんNGNG
>>347
>>350
わかってないねぇ。
たとえグローバル変数をなくしてもローカル変数やクラス変数があるのだから
ハンガリアンにする理由はなくならないんだよ。
それにSingletonというグローバル変数までなくすことは出来ない。
0354デフォルトの名無しさんNGNG
スコープ情報を変数名につけるのはハンガリアンとは違うだろ
0355デフォルトの名無しさんNGNG
ハンガリアンについては、別に「これがハンガリアン」という厳密な
定義はないからねぇ。みんな俺ハンガリアンの話をする。
0356デフォルトの名無しさんNGNG
ハンガリアンってプリフィクスのことか?
0357デフォルトの名無しさんNGNG
m_
s_
g_
p
あたりはハンガリアン由来では?
0358デフォルトの名無しさんNGNG
p_はハンガリアンだがm_, s_, g_はハンガリアンではない。ただのプリフィクス
0359デフォルトの名無しさんNGNG
>>353
クラス変数なんて、

クラス名.静的変数名

とかくだけでわかるからJavaやC#でいちいちハンガリアンにする
馬鹿なことをする必要もないのだが。
0360デフォルトの名無しさんNGNG
>>359
お前は自分のクラスのクラス変数に
いちいちクラス名をつけているのか?(w
0361デフォルトの名無しさんNGNG
typedef CHoge ThisClass;

...

ThisClass.StaticProperty;
0362デフォルトの名無しさんNGNG
スレタイで笑った
0363デフォルトの名無しさんNGNG
ほんとにハンガリーの人は、ポインタの前に p ってつけたり、
整数型の変数の前に int って付けたりしてるんですか?
0364デフォルトの名無しさんNGNG
>>363
コイツ クサッ
0365デフォルトの名無しさんNGNG
>>360
アホ。外部から使うときだけにきまっとるだろうが。

Javaで定数を定義するときはpublic static finalにして
アンダースコアで区切って全部大文字にしろというのがあるな。

インスタンスフィールドを定義するときはメソッドと同じような文字区切り、
わかりやすい名前にしろと。

インスタンスフィールドとローカル変数との区別は、
thisキーワードを使って

this.インスタンスフィールド

とかけばよい。むしろthisキーワードはそのためにあるようなもの。


スーパークラスのインスタンスフィールドを呼び出すときも

super.インスタンスフィールド

かけばよい。

ハンガリアンの必要性も全くない。
0366デフォルトの名無しさんNGNG
Javaならそれでもいいんだけど
C++においてはthis->nameになってなんかイヤダ。
this.nameとかけるなら俺はそうするんだけど・・・
0367デフォルトの名無しさんNGNG
#define (*this) This
0368デフォルトの名無しさんNGNG
>>367
逆ですよ?
0369デフォルトの名無しさんNGNG
>>366
そんなときは参照っすよ、参照!
0370デフォルトの名無しさんNGNG
this.nameよりも、this->nameのほうが速そうな印象を受ける。
ただ、思ったこと書いてみただけsage
0371デフォルトの名無しさんNGNG
>>365
>インスタンスフィールドとローカル変数との区別は
>thisキーワードを使って

同一クラス内でも常にアクセサを使って取得するってのはどうよ。
インスタンスフィールドに直に触れるのはアクセサ内とコンストラクタ内に限定。

private int foo;
public int getFoo() { return foo; }

のとき this.foo も foo もダメで常に getFoo()。
あるいはローカルに int foo = getFoo(); とコピーしてアクセス。
0372デフォルトの名無しさんNGNG
フィールドもメソッドも必ずthis付けてる。
メソッドの場合、this付けないとstaticメソッドと勘違いする可能性があり、
効率が悪くなると思うがどうよ?
0373デフォルトの名無しさんNGNG
>>372
static メソッドこそクラス名を頭に書くだろ。自クラス内だとしても。
0374372NGNG
>>373
そういう手もあったか。
漏れはstaticメソッドはCなどでいう関数の意識が強い(特にprivate staticなメソッド)から、
何も付けてない。
実際のところどっちが多いのよ?
1--------
インスタンスメソッド:this付き
クラスメソッド:何もつけない
2--------
インスタンスメソッド:何もつけない
staticメソッド:クラス名付き
0375デフォルトの名無しさんNGNG
ネイティブハンガリー人だけど、何か質問ある?
0376デフォルトの名無しさんNGNG
こんにちは、世界をハンガリアンで書いて
0377デフォルトの名無しさんNGNG
もしかしたら、文字化けして変に表示されるかも

ウンーコタベテーロ
0378デフォルトの名無しさんNGNG
>>377
氏ね
0379デフォルトの名無しさんNGNG
自クラス内のメソッドはどちらにしても何も付けないと誤読しやすい。
static メソッドをクラス名修飾付で、というのはやっていなかったが
これからそうしようと思う。
2ちゃんを見てるのも無駄ではなかった。Thanks.
0380山崎 渉NGNG
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0381デフォルトの名無しさんNGNG
ちょっとまってジャンガリアン
0382デフォルトの名無しさんNGNG
私、ジャンガリアン。名前はリコです。
皆私をジャガリコって呼んでます。
ヨロシクね。ムホッ
0383デフォルトの名無しさんNGNG
Msgとかがハンガリアンっていうやつなんですか?
0384デフォルトの名無しさんNGNG
msg
cnt
ptr
wnd
prc
0385デフォルトの名無しさんNGNG
保守sage
0386デフォルトの名無しさんNGNG
エヴァンゲリアンは駄目なんですか?
0387デフォルトの名無しさんNGNG
オブジェクトは変数名のあとにつけよう。

hoge *unkohoge=new hoge;
delete unkohoge;

0388デフォルトの名無しさんNGNG
お忘れですか?
こんばんわ馬鹿避けの隔離スレですよ?
0389デフォルトの名無しさんNGNG
ちょっと待て!英語リアン
ちょっと待て!デロリアン
ちょっと待て!バタリアン
0390○に入る文字を入れよNGNG
ちょっと待て!赤毛の
ちょっと待て!毛無し
ちょっと待て!のし○
0391デフォルトの名無しさんNGNG
今月のCマガで宮坂電人がハンガリアン批判してるね。
0392デフォルトの名無しさんNGNG
lpsz萌え
0393デフォルトの名無しさんNGNG
a long pointer to string that is zero tarminated.
0394デフォルトの名無しさんNGNG
'l' 'p' 's' 'z' '\n'
0395元ハンガリアン使用者NGNG
今でもポインタの pHoge だけは使っておりますが、他は時代にそぐわないでしょう。
そんなハンガリアンのエピタフを考えました。

利点は大きかったが、欠点はもっと大きかった。

REST IN PEACE.
0396デフォルトの名無しさんNGNG
モンゴリアン記法でも考えようぜ
0397デフォルトの名無しさんNGNG
モッコリまん呼称も考えまふ
0398デフォルトの名無しさんNGNG
ハンガリアン使いって、とにかくプリフィックスさえつければ無問題と思ってるから
クラスや変数のネーミングがめちゃくちゃ。

まあ、言語的センスのないプログラマが多い職場にはおすすめの規約だろうよ。
0399デフォルトの名無しさんNGNG
>まあ、言語的センスのないプログラマが多い職場にはおすすめの規約だろうよ。
日本国内では極めて有効っと φ(.. )メモメモ
0400デフォルトの名無しさんNGNG
 long lIllegalIndex;
 long illegal_index;

下のほうが断然見やすいと思うのは漏れだけか。
0401デフォルトの名無しさんNGNG
>>400
断然、君だけです。
0402デフォルトの名無しさんNGNG
ハンガリアンはハングルのぱくりニダ!
0403デフォルトの名無しさんNGNG
>>400
そんなイリーガルな変数名持ってこられても困るよ
0404デフォルトの名無しさんNGNG
>>400
ネーミングが気持ち悪いほど悪趣味だね
もしかしてJava厨?
0405ヽ(´ー`)ノNGNG
キャメルノーテーションは書き易いが読みにくい…と思うのだがどうか。
0406デフォルトの名無しさんNGNG
>>404
オマエは、何でもかんでもJava厨で片づける厨だな

Javaは illegalIndex だろ
0407デフォルトの名無しさんNGNG
漏れは Illegal より Invalid のが好き。

と思ったら無効と不正って良く考えたら意味違うな。
0408400NGNG
>>404
大文字の I と小文字の l が並ぶ変数名をでっちあげただけなんだが。
ハンガリアンが見やすいとか言ってる香具師への反証と思いねぇ。

#読みやすい単語で付けろとか言い出したりして…
0409デフォルトの名無しさんNGNG
>>408
あのー、ハンガリアンって何だか知ってます?
0410デフォルトの名無しさんNGNG
とりあえず、全角英数で変数名つける香具師は氏ね。
0411デフォルトの名無しさんNGNG
全角でコンパイル通るのか?
0412デフォルトの名無しさんNGNG
>>411
志村〜UNICODE!UNICODE!
0413デフォルトの名無しさんNGNG
とりあえず、変数名や関数名に大文字が入ってると
すごく違和感がある
というか、ハンガリアンは読みにくいんだよね
0414デフォルトの名無しさんNGNG
え、UNICODEなら通るのかよ。知らなかった。
0415デフォルトの名無しさんNGNG
うにこーどに半角も全角もねぇ。
0416デフォルトの名無しさんNGNG
昔の“常識”,今の“非常識”
ttp://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20031002/1/
0417デフォルトの名無しさんNGNG
新人プログラマです
もしその変数が外部変数で構造体へのポインタのときどうつけますか?
pExKouzoutai
p移行の形容ごとに大文字にする癖があるんですがどうでしょう
0418デフォルトの名無しさんNGNG
使うなって言ってんだろうが、ゴルァ(#゚Д゚)
0419デフォルトの名無しさんNGNG
>>417
外部変数使うな。
pSomeStructure
でいいんでないの?
0420417NGNG
>>418
じゃどういう基準でつけたらいいでつか?

>>419
つかいたくないのは激しく同意なんですが
制御関係になったらいるなーという感じです

ちなみにクラス、関数、メソッドの命名規約も
個人のオナニーだと思いました。ぜんぜん呪文ですね・・・
0421デフォルトの名無しさんNGNG
>>420
>制御関係になったらいるなーという感じです

要りません。
プログラマの悪い癖です。
自分の分野は教科書通りの分野じゃないから教科書に載っている通りにはならないと言って逃げないで下さい。
教科書通りの分野なんてこの世に存在しません。
グローバル変数は!!必要ありません!!
0422デフォルトの名無しさんNGNG
>>421
いや…、あとでハード接続するときとかどうしても必要なときがあるんだ。
外部ハードがまだ準備されてないときにグローバル変数を用意して、
そのハードのレジスタだと見立ててプログラムを組むときがあるんだよ。
もちろんハード屋から物が上がってくればレジスタに置き換えるから
最終的にはグローバル変数はなくなるんだが…一時的には使うんだな。

自分の分野じゃないから知らないとか言わないでそういうこともあるんだと理解して欲しい。
0423デフォルトの名無しさんNGNG
>>422
その話がどうして

>どうしても必要なとき

になると思うのか知りたい。
お前必要だと思い込んでるだけちゃうんかと。
0424423NGNG
>>422
君が何を読んだのかわかったよ
http://pc2.2ch.net/test/read.cgi/tech/1056716338/674-678

人から聞いた話だけで判断するなよ。
いいか、もう一度繰り返す。

お前必要だと思い込んでるだけちゃうんかと。
それこそ抽象化しておくべき物とちゃうんかと。
0425デフォルトの名無しさんNGNG
>>424
´д`)ノ教えてエライ人。
定数としてグローバルなconst変数定義するのは間違い?
代わりにどう書けば良いの?
0426デフォルトの名無しさんNGNG
ノリタガリアン大満足

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

とかいいつつ漏れは趣味で書く時は一つだけ例外的にグローバルにしてるのがある。
EffectiveC++に書いてあったフールプルーフなNullをちょこちょこ変更してるのがあるのだが、
それだけはグローバルに置いた。
0428デフォルトの名無しさんNGNG
何で名前空間を使わない。馬鹿か
0429423NGNG
>>428
俺に対してのレスか?
だとしたら使ってるぞ。

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

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


これで満足か?
0442デフォルトの名無しさんNGNG
で、LonghornのWinFXはハンガリアン使ってるんですか?
どうよ。
0443デフォルトの名無しさんNGNG
とうの昔に MS はハンガリアンを捨てたわけだが。
0444ケンケンNGNG
シシシシシシシシシ
0445441NGNG
>>431
ツッコミ入れたのに反応なしかコノヤロー!
0446431NGNG
>>441
ぎゃふん。
0447デフォルトの名無しさんNGNG
>>445
ひねりすぎだ。
0448デフォルトの名無しさんNGNG
アリアハン
0449デフォルトの名無しさんNGNG
アハンああん
0450デフォルトの名無しさんNGNG
ttp://pc2.2ch.net/test/read.cgi/tech/1003674814/
相互リンクーヽ(´ー`)ノ
0451デフォルトの名無しさんNGNG
>>93
QB: A& 長整数
VB: A@ 通貨

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

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

...

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

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

「プレデタ〜」
>もう、何もかも間違ってる。
0460デフォルトの名無しさんNGNG
>>10
今更だけどLPVOID pvABCじゃないか
0461デフォルトの名無しさんNGNG
http://hp.vector.co.jp/authors/VA017405/hungarian.html
0462デフォルトの名無しさんNGNG
折角上がった事だし、突っ込んどくか…

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

これでいい?
0463デフォルトの名無しさんNGNG
韓国語 → 朝鮮語
0464デフォルトの名無しさんNGNG
このスレ的には kr朝鮮語
0465デフォルトの名無しさんNGNG
北朝鮮と韓国で微妙に語彙が違うらしいけど、

kr_SK
kr_NK

とか分かれてるの?
0466デフォルトの名無しさんNGNG
ハンガリアン、仕事では使わないけど個人で作るものでは使ってるよ、たまに接頭辞どうするかで思い切り迷う
0467デフォルトの名無しさんNGNG
朝鮮語は kr じゃなくて ko だぞ。
北朝鮮 ko_KP
韓国 ko_KR
0468デフォルトの名無しさんNGNG
国敗れてハンガリアン
0469デフォルトの名無しさんNGNG
int main(int iArgc, char **ppszArgv);
0470デフォルトの名無しさんNGNG
>>465
「言語_地域」だって判ってる?
0471デフォルトの名無しさんNGNG
ところで__int64ってどうしてる。
0472デフォルトの名無しさんNGNG
QWORDで128ビットだぜ
0473デフォルトの名無しさんNGNG
北朝鮮 co_N
韓国 co_S
0474デフォルトの名無しさんNGNG
jp_JA
0475デフォルトの名無しさんNGNG
>>473
それはQWORD qwHoge;でいいでないかい?
0476デフォルトの名無しさんNGNG
おさらい
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
0477デフォルトの名無しさんNGNG
ハンガリアンって自分で作った構造体とかはどうすんだ?
0478デフォルトの名無しさんNGNG
>>477
適当に省略した物を使う。API関係からはこんな感じ。
OPENFILENAME:ofn
WNDCLASS   :wc
RECT:rc POINT:pt
476に出ているような基本的な型と違って、複数同時に使うわけでなければそれをそのまま変数名にしていいみたい。

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

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

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

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

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

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

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

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

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

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

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

お願い、もっとまともなコンパイラとリソース頂戴。
0544デフォルトの名無しさんNGNG
>>543
まったく同じ
0545デフォルトの名無しさんNGNG
ハンガリー人ドーピングしまくりじゃねえか。
クソなのは規約だけじゃなかったようだ。
0546デフォルトの名無しさんNGNG
                \ │ /
                 / ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )< くっちゃらはぴはぴ!
                 \_/   \_________
                / │ \
                    ∩ ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< くっちゃらはぴはぴ!
Py厨〜〜〜〜!    >( ゚∀゚ )/ |    / \__________
________/ |    〈 |   |
              / /\_」 / /\」               ̄     / /
0547デフォルトの名無しさんNGNG
Cだとハンガリアンがうれしいかなぁ
C++だとメンバ変数にm_がついてないのは勘弁
C#だとあんまり意味ないね
ようは自分の都合だけで書かない心構えさえ出来ていたら
その都度、ベストな出来るはずなんだけど
0548デフォルトの名無しさんNGNG
fはフラグの意味でboolに使っている。
floatはどうしようかと考えたらhdを思いついた。
これでいいよな。
0549デフォルトの名無しさんNGNG
スコープを意味するプリフィクスは、ハンガリアンではないとあれほど…
0550デフォルトの名無しさんNGNG
boolにするならbでいいじゃん
0551548NGNG
>>550
bool/BOOLにbはなんだか違和感があって……、慣れの問題?
ただ今のところfloatを使う機会はないんだけどさ。
0552デフォルトの名無しさんNGNG
>>549
どう違うか説明してみろや
どっちも接頭修飾だ
0553デフォルトの名無しさんNGNG
>>552
型名をプレフィックスにつけるのがハンガリアン出身のMSのプログラマが考案した本来のハンガリアン記法であって、スコープのはMSがそれと同時に提唱しただけ。
0554デフォルトの名無しさんNGNG
>>548
MSDN内でもBOOLはbだったりfだったりバラバラだねえ
0555デフォルトの名無しさんNGNG
iteratorにit使い出したらこれが気に入ってハンガリアンやめられなくなった。
0556548NGNG
よくよく考えればhはハンドル。
どこかでhがshortだと書いていたページを見た気がするのだが、今探しても見つからない。
となるとfloatをどうするかは振り出しに。
sはStringだと書いてあるところと、shortと書いてあるところが両方あるから、sdはやめた方が良さそうだ。

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

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

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

同様に、float も、d ではなく、 f (float は浮くという意味で、浮動小数点の意) で省略したほうがいいと思うよ。
0560デフォルトの名無しさんNGNG
俺は整数型はbit長と符号で全部区別している。
用途で区別するのはわかりにくい。
組み込みのメモリが少ない状況でやってるから、ヘタに抽象的にできないってのはあるが。
浮動小数点もほとんど使わない。つーか使えない用途だ…
0561デフォルトの名無しさんNGNG
めんどいからStringはstrにしてる
0562デフォルトの名無しさんNGNG
諸々のtypedefされたマイナーな型のプリフィックス考えるのめんどいから
ハンガリアンやめた
0563デフォルトの名無しさんNGNG
面倒臭いから返り値はretにしている
0564デフォルトの名無しさんNGNG
>>563
それは、ハンガリアンじゃない
0565デフォルトの名無しさんNGNG
iRetだとアセンブラスレに行きたくなるな
0566548NGNG
>>559
いやそもそもBOOL/boolにfを使いたいことから考え出したんで、そりゃちょっと勘弁してくれ。
0567デフォルトの名無しさんNGNG
is付けろ
0568デフォルトの名無しさんNGNG
>548
ここは思い切って short/int/long/float/double は全部 n にするとか。
整数と浮動小数の違いを意識する必要って、あまりないと思うのだが。
逆に分ける必要があるなら、>560のように、bit長や符号の違いでも
分けるべきだと思う。
0569デフォルトの名無しさんNGNG
予想しないとこで丸められると困るから整数と浮動小数は分けるだろ
0570デフォルトの名無しさんNGNG
ここは思い切ってハンガリアンをやめるとか。
変数の型を意識する必要って、あまりないと思うのだが。
逆に分ける必要があるなら、>560のように、bit長や符号の違いでも
分けるべきだと思う。
0571548NGNG
とことん使い尽くすか、全く使わないか……。
その間はないのかよ。
0572デフォルトの名無しさんNGNG
>569
浮動小数→整数はコンパイラが警告出すから、「整数と小数の区別」で防げる程度の
「予期しない丸め」はハンガリアン使わずとも防げると思うが。
キャスト等で警告を殺す椰子に、ハンガリアンの効果があるとも思えんし。
0573548NGNG
結局、558案を元に浮動小数点数型は全て f に統一、bool(もちろんBOOLも)は b/isにすることにしました。
もちろん今まで書いたやつはそのまま放って置くw
0574デフォルトの名無しさんNGNG
やねうらおのソースもハンガリアン記法っぽかった。
0575デフォルトの名無しさんNGNG
>>571
そんな優柔不断ではまとまりに欠ける。
0576デフォルトの名無しさんNGNG
>>573
Byteはどーする?
MSDNだとBYTEのプリフィックス、n、b、byの3種類あるんだよなあ
0577デフォルトの名無しさんNGNG

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

この本のヒトもアンチハンガリアンっぽ。
0580デフォルトの名無しさんNGNG
中途ハンガリアン(適度にハンガリアン)が楽だと思うのだが・・・

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

漏れは、ローカル変数に鍵って idx とか cnt とか、用途でプレフィックス
つけたりするけど、みんなこんなのは名前に淹れてるの?
0582デフォルトの名無しさんNGNG
半端リアン
0583デフォルトの名無しさん05/02/05 20:48:28
VHDLにもハンガリアンと来た
世も末だ
規約で縛りつかなきゃ読めんようなコードを書くやつにコードを書かせるな!
VBでも書いてろ!
0584デフォルトの名無しさん05/02/14 19:31:32
>>583
工エエェェ(´д`)ェェエエ工工
半端なソフト屋あがりにハード作らせるなよと・・・
0585デフォルトの名無しさん2005/04/12(火) 23:34:47
いただきハンガリアン
0586デフォルトの名無しさん2005/04/13(水) 13:21:02
そんなにハンガリアンがいいものなら、
なぜ言語仕様にしないのか
0587デフォルトの名無しさん2005/04/13(水) 15:56:45
符号付整数: nHoge
符合無整数: uHoge
としてる俺。
0588デフォルトの名無しさん2005/04/25(月) 20:11:20
コード上では変数のプロパティってnameしかないわけだけど
colorとかscopeとかtypeとかも持たせたら分かりやすいかも
scopeとreferenceはぜひとも欲しいなあ
0589デフォルトの名無しさん2005/04/25(月) 20:23:25
>>588
よくわかんないけど、Rubyとかの話か?
0590デフォルトの名無しさん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>
みたいなの
0591デフォルトの名無しさん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をそのまま使うのは再考すべきだが。
0592デフォルトの名無しさん2005/04/25(月) 22:24:32
>>591
素晴らしい!その通りですね!!
0593デフォルトの名無しさん2005/04/25(月) 23:55:41
szTextを見ても型がわからない俺にはハンガリアンは無用の長物。
szって何の型なのかおしえろよ
0594デフォルトの名無しさん2005/04/26(火) 00:01:31
orzText
0595デフォルトの名無しさん2005/04/26(火) 01:51:12
>593
sz : string zero terminated.
0596デフォルトの名無しさん2005/04/26(火) 16:55:47
つまり文字列をしまうchar/TCHAR/WCHAR配列ってことだ。
たまにchar *とかTCHAR *やらWCHAR *に使うやつもいるが。
0597デフォルトの名無しさん2005/04/26(火) 21:22:47
それどころかJavaにハンガリアンを持ち込んだときに
(この点の是非は問わない)までStringインスタンスに
szを付けるヤツがいる。
zがなにだかまるでわからずに付けてるわけだ。
0598デフォルトの名無しさん2005/04/26(火) 22:35:34
Javaは使ったこと無いけどstd::stringにはstrを使っている。
0599デフォルトの名無しさん2005/05/20(金) 19:23:24
ゲーム屋さんだけど便利だなと思うときが
たとえばマップデータをセル区切りで持っていて、実際の座標は3D空間。
こんなときに

MapData
0600デフォルトの名無しさん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;   //スカラー値の代入

結構型付け意識せんなんから変数名から型がわかるのは便利だと思う。
かといって構造体やらクラスやらにわざわざ変なのつける必要もないと思う。
0601デフォルトの名無しさん2005/05/20(金) 20:15:38
まぁ使い方次第やな。
使えん派の出してくる例は極端すぎ。
0602デフォルトの名無しさん2005/05/22(日) 10:11:30
新潟ハンガレ、超ハンガレ!
0603デフォルトの名無しさん2005/05/22(日) 13:33:31
ハンガリアンに替わる新記法、韓ガリアンをお前たちで開発してください。
0604デフォルトの名無しさん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のドキュメントを通じて世に広まってしまった、ということらしい。
0605デフォルトの名無しさん2005/05/24(火) 06:25:41
だいたいさー文字列しか使えないってのがおかしい
ルビをふれるようにするとかコーディングする時
文字入力するんじゃなくて宣言部からマウスでドラッグしてくるとかで
関連づけを名前だけで行うなんて原始的なことをやめたら
こういうちまちましたテクニックは無意味になるでしょう
0606デフォルトの名無しさん2005/05/24(火) 19:45:45
>>605
キー入力より速い開発手法を確立したら後世に名が残せると思われ
0607デフォルトの名無しさん2005/05/26(木) 01:30:43
>606
モールス信号なんてどうだ
ttp://slashdot.jp/article.pl?sid=05/05/07/2128217&topic=97&mode=thread
0608デフォルトの名無しさん2005/05/26(木) 22:31:05
GUIがないと何も出来なくなるな
0609デフォルトの名無しさん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とかにしたほうがいいと思ったりはしないのか。
0610デフォルトの名無しさん2005/05/28(土) 17:20:42
>>609
なかなか反論として説得力あるな。
俺もハンガリアンつかってたが、貶すだけではなくて対案があるといい。

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

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

0611デフォルトの名無しさん2005/05/29(日) 14:14:17
最近はローカル変数・引数には原則p/r/it/is以外は何もつけなくなってきた。
すぐそこに宣言が見えるからプレフィックスを付ける意味がないと思うようになった。
0612デフォルトの名無しさん2005/05/29(日) 16:24:32
Cだとp位は要るかも知れないけど、俺C++だからpも要らないや。
0613デフォルトの名無しさん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 とかを付けることによって読みやすくなったコードは読んだことが無い。
0614デフォルトの名無しさん2005/05/30(月) 13:49:27
boolはisなりbなりつけたほうがわかりやすくない?
bool isConnectToClient;
とか。
つけない場合はどういう変数名にすればわかりやすいのかな。

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

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

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

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

>>625
も、もしや、まさかマジで>>622使ってる人ですか??
0627デフォルトの名無しさん2005/06/13(月) 22:24:11
>>626
そういうときには引数の方を単に n にしたり、メンバ変数をnNumberのように略せず仮引数をnNumみたいに略したりする。
さらにコンストラクタなら同じ名前でもコンパイル通る。
class Hoge
{
  int nFoo;
public:
  hoge(int nFoo) : nFoo(nFoo) {}
};
0628デフォルトの名無しさん2005/06/13(月) 22:24:58
>>626
おうよ。あたぼうよ。
昔はな。
それで、いい加減うんざりして、
いまはストレート派だ。
変数に飾りはいらねえ。
0629デフォルトの名無しさん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
おお、「変数に飾りはいらねえ」って、むやみやたらにカッコイイ!
0630デフォルトの名無しさん2005/06/13(月) 22:54:01
あー、すみません。↑の 624 てのは、>>626の間違いでした m(__)m
0631デフォルトの名無しさん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にする。
0632631とか2005/06/13(月) 23:09:22
ちなみに629のコンストラクタもメンバにthis->を補えば通る。
0633デフォルトの名無しさん2005/06/13(月) 23:36:45
>>631-632
>>629 のは、実験的にやってみただけっすw
newの例外ってのは、これからお勉強するので、
よくわからず。

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

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

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

class Tekitou{
int m_nX;
int m_nY;
};

って書くのがベター?

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

どもです m(__)m
0640デフォルトの名無しさん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;
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

class CMapData {
unsigned char *m_pbyMap;
};

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

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

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

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

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

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

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

 char hoge[10];
 char *phoge;

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


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

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

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

と聞いてもムダか。
なんでこういう輩は具体的に聞くと逃げるのか?
0687デフォルトの名無しさん2005/07/08(金) 00:32:40
>>686
675じゃないし痛い目ってほどじゃないけど、sizeof(&hoge)とsizeof(&phoge)
は違う値になるよね?自分はpなんかつけないけど(型検査してくれる言語で型
を変数名に付けたくなる状況はそんなに多くないと思うんだけど)。
0688デフォルトの名無しさん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;
}
0689デフォルトの名無しさん2005/07/08(金) 08:26:35
>>686
マジレスだけど、痛い目にはあってないんでしょ。
当然じゃん。

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

hoge[10][10]

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


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


> m_aabyData[10][10];

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

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

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

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

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

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

>>749
おいおい。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

結論

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ハンガリアン否定派
・全否定はしないよ。糞環境でがんばってくださいねw
↑
ここで煽るからこじれる。
0802デフォルトの名無しさん2005/07/10(日) 15:04:38
違う違う

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

特にここ。

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

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


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

Dim strHoge As Integer

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

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

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

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

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

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

class Number{};

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

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

で、なんでC#とC,C++はまったく違う概念でできているのに同一視してるの?
0841デフォルトの名無しさん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 くらいは使える環境なんでしょ?
0842デフォルトの名無しさん2005/07/14(木) 16:14:08
>>833
>Dim strHoge As Integer

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

SaveData

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

引き継いだEXEを実行したところ、重要な処理に流れない
↓
手元にあるソースによると、流れるはずなんだがなぁ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

javaでは皆無。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

別に対立スレじゃないんだから罵りあう必要ないのに。
0985デフォルトの名無しさん2005/07/21(木) 00:52:22
ということにしたいのですね。
0986デフォルトの名無しさん2005/07/21(木) 01:00:53
>984
もう飽きただけ。
正直好きにしろw
0987デフォルトの名無しさん2005/07/21(木) 15:20:07
使わない人間は「使わないことが正しい」という信念を持っている。
使う人間はどうなのかなぁ。俺にはわからない。
ただ、使うことが正しいというのなら、
「ハンガリアン以前には正しい方法は無かった」ということになって
これには首肯出来ないな
0988デフォルトの名無しさん2005/07/22(金) 11:06:15
プレフィクスはやめろ、ハンガリアンハンガリアン
0989デフォルトの名無しさん2005/07/22(金) 12:03:47
>>988
城島乙
0990デフォルトの名無しさん2005/07/22(金) 13:11:38
int n;
0991デフォルトの名無しさん2005/07/22(金) 13:12:10
long l;
long long ll;
short h;
0992デフォルトの名無しさん2005/07/22(金) 13:12:49
BYTE by;
WORD w;
DWROD dw;
QWORD qw;
0993デフォルトの名無しさん2005/07/22(金) 13:13:37
float f;
double d;
long double ld;
0994デフォルトの名無しさん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";
0995デフォルトの名無しさん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)();
0996デフォルトの名無しさん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;
0997デフォルトの名無しさん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;
0998デフォルトの名無しさん2005/07/22(金) 13:32:19
HRESULT hr, hResult;

void *pv;
VARIANT v;

BSTR bs;

IUnknown *punk, *pUnknown;
0999デフォルトの名無しさん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
千!
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。