ちょっと待て!ハンガリアン
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGよく「C#ではハンガリアン使わないようにとMSが言ってるんだよ。ボケ」
と言われているが、その理由までは追求していない。
C#では型付けが弱い為に、ハンガリアンの意味があまりないという事だ。
C/C++みたく型付けが強い言語ではハンガリアンって有用じゃないだろうか。
みんなだってポインタの先頭には「p」とか書くだろ?
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGそりゃイカン、そりゃイカンぞぉ>>3
0005デフォルトの名無しさん
NGNG0006日下部圭子 ◆ib749tYo
NGNG> C#では型付けが弱い為に、ハンガリアンの意味があまりないという事だ。
「C#では型付けが弱い」と言ってる時点でこの人はダメでしょう。
----------------------------------
||//
(@_@) Kusakabe Keiko
----------------------------------
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNGいい言語が主流になってくるのよ、Javaとかね。
だから、型を気にしなきゃいけないC/C++は、どんどん廃れていく方向にある
わけ、絶滅はしないけど使われる分野は狭くなっていくのは確実。
だから、廃れていくC/C++と一緒にハンガリアンもやめましょうってこった。
0010ななしい
NGNGLPLONG 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参照か実体か判らず、途中で化けるようなアフォ言語なぞを何故
優れているかのように言う?
0012デフォルトの名無しさん
NGNG読みにくい。
0013デフォルトの名無しさん
NGNGドキュメントちゃんと読んだ方がいいぞ。
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpapndx/html/_cor_naming_guidelines.asp
Naming Guidlines
ドキュメントを読んだ上でハンガリアンを使うべきではない理由として考えられること。
・すべてオブジェクト指向であり型なんぞ無限に増産される中で、
一貫したハンガリアン表記はできない。
少なくとも、クラス、インターフェース、構造体、列挙型用の変数に
それぞれを表すプリフィックスを付けても意味ないわな。
・多数の言語で作成されたクラスライブラリを互いに利用し合うので、
各言語内の型に応じて勝手にプリフィックスを作られたら混乱のもとだな。
かといって、Universal Type Nameの名称から略称を取るのでは、
各言語で型の呼び方とずれるから直感的でもないわな。
・変数名が的確に何を行うオブジェクトなのかを表していれば、
そのオブジェクトが何をできるか(=何の機能を持っているか=型が何か)
わかるだろ。
0014デフォルトの名無しさん
NGNG"_"も使うなと言っているので・・・
00159
NGNG少なくともGCがなくて、変数の先頭に型情報を名づけるアフォ言語
よりは優れてるだろ。
0016ハンギョレ記法
NGNG0017デフォルトの名無しさん
NGNGつーか、1が言いたいのはC#の仕様じゃなくて、C/C++でハンガリアン
が有効じゃないかって言いたいんじゃないか?
0018デフォルトの名無しさん
NGNGJava,C/C++の比較でそんなこと言うなよ。
おおざっぱすぎ。
こいつ、動的な片付けの言語とかつかったことあんの。
だいたいCもC++も、はんがりあんなんていらないだろ。
0019
NGNGポーランド記法と関係有る?
0020デフォルトの名無しさん
NGNG危険のあるGCはない方がいいのだが。
意識的に制御するんなら最初からない方が。
むしろランタイムライブラリの仕様の中で
ヒープの管理を工夫すればと。
0021デフォルトの名無しさん
NGNG>変数の先頭に型情報を名づけるアフォ言語
これって、どの言語のこと?
00221
NGNGども勉強になります。
ハンガリアンを徹底的に排除するんでなくて、良い部分は残していけばいいんじゃないかと
思いまして。
俺が使っているハンガリアン(?)は
m_ ・・・クラスのメンバ変数につける、これは俺も必要か疑わしい。
s_ ・・・staticなメンバにつける。
g_ ・・・グローバル変数につける、グローバル変数使わないからこれも疑わしい。
p ・・・ポインタにつける、意図的にNULLが代入されている場合がある事がわかる。
C ・・・クラス名の先頭につける。
くらいですね、スコープを明確にしたいという狙いもあります。
0023デフォルトの名無しさん
NGNGpublic: T(int length) : m_length(length) {}
};
とかを考えると、m_は案外つけといた方がいいかも。
>>変数の先頭に型情報を名づけるアフォ言語
>これって、どの言語のこと?
Perlっしょ(w
0024デフォルトの名無しさん
NGNG>変数の先頭に型情報を名づけるアフォ言語
話の流れからして、C/C++のハンガリアン記法のことだと思われ
0025日下部圭子 ◆ib749tYo
NGNG> 俺が使っているハンガリアン(?)は
それはハンガリアン記法ではないですね。
ハンガリアン記法の是非の議論になると、かならずプレフィックスの類は
すべてハンガリアン記法であるようなことをおっしゃる方がいますが、
スコープに基づいた命名規則は、ハンガリアン記法とは言いません。
----------------------------------
||//
(@_@) Kusakabe Keiko
----------------------------------
0026デフォルトの名無しさん
NGNG@を付ける事を強制してるRubyなんかも有るし。
002713
NGNG>つーか、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それハンガリアンちゃうし
0031デフォルトの名無しさん
NGNGi_money_all_of_the_world
iMoneyAllOfTheWorld
で前者がいい、ってこと?
それとも、
i_MoneyAllOfTheWorld
ってこと?
00321
NGNG>仕事のプロジェクトメンバーとかで合意が取れてい
その合意がs_ということで・・・
っていうか、staticメンバはあまり使わないですね・・・
>この場合、構造体はどうします?
構造体はなにもつけません。
C++では構造体もクラスも同じなんですが、メソッドがあるのが
クラスという事で一応Cをつけて区別してます、好みの問題かな。
>>28
たしかに命名規則に拘って、ソースが見難いのでは本末転倒なので
ハンガリアンは大体1文字、最大でも4文字くらいにとどめています。
0033デフォルトの名無しさん
NGNGだからそれはハンガリアンちゃうって
00341
NGNG>>30
一応、プレフィックスという事で・・・
みんな、ハンガリアンは駄目で、プレフィックスはOKなんですか?
>>29
int *m_p_n_Hoge;
って事ですか?それとも
int *p_Hoge;
くらいにしとけって事ですか?
0035デフォルトの名無しさん
NGNGメンバ変数は見分けつかないと困るんで、私は m_ つける。
ハンガリアンも
h ハンドル h
n 整数
u 符号なし整数
sz Cの文字列
wsz wchar_t の文字列
str std::string
bstr BSTR 文字列 (CComBSTR, _bstr_t だったりすることも)
p ポインタ
ぐらいは使うな。特に文字列は種類が多すぎて、一目見て分からないと死ぬ。
0036日下部圭子 ◆ib749tYo
NGNG> みんな、ハンガリアンは駄目で、プレフィックスはOKなんですか?
ハンガリアン記法のキモは、名前に型情報を載せるというところでしょう。
プレフィックスだとかポストフィックスだとか、そういうレベルの
話ではなくて。
----------------------------------
||//
(@_@) Kusakabe Keiko
----------------------------------
0037デフォルトの名無しさん
NGNG00381
NGNG>ハンガリアン記法のキモは、名前に型情報を載せるというところでしょう。
なるほど、ではハンガリアンという事で・・・
日下部さんはハンガリアン記法は使わない方ですか?
よろしければ使わない理由を教えてください。
0039デフォルトの名無しさん
NGNGそもそも構造体のフィールド名がハンガリアンという罠。
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG0043プレフィックスマンセー
NGNGでも、メンバ変数は後ろに _
変数名のバリエーションを考えるのにハンガリアンは便利だし、
なにげにプログラミングで時間がかかるのが変数名を考え出すことなので、
そういうところでハンガリアンは重宝したり。
int nCar とchar *szCar みたいなー。(例えが悪いか)
0044デフォルトの名無しさん
NGNG純粋なハンガリアン記法は、さすがにルールが複雑で使ってるヤツはいないと思われ。
0045デフォルトの名無しさん
NGNG変数名はマジャル(ハンガリー語)でつけていますが、なにか?
0046名無しさん@XEmacs
NGNG0047デフォルトの名無しさん
NGNGほれ。
http://www.freedict.com/onldict/hun.html
エンコードは中央ヨーロッパ言語な。関係ないのでsage。
0048デフォルトの名無しさん
NGNG特にGDI関係のに多い。
typedef struct tagBITMAPINFOHEADER {
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
……
すっげー無意味。
0049デフォルトの名無しさん
NGNGかった大昔のコンパイラ用っぽい。
0050デフォルトの名無しさん
NGNGUNIX 由来の構造体でも多いな。struct stat とか。
これも
p->st_mtime
とか書いてあった場合に p の型がすぐ分かるというメリットが、ないでもない。積極的に推す
気はないが。
0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG漏れはずっと待ってるんだが一体いつまで待たせる氣だ。 ご・る・あ!
0055デフォルトの名無しさん
NGNG0056_
NGNGstruct → s
class → c
グローバル変数 → g
メンバー変数 → m
定数 → k
ってやってるなぁ。
ハンガリアン自体はMS内でも賛否両論って何かで読んだよ。
カトラーはハンガリアンが嫌いじゃなかったっけ?
0058追記
NGNGenum→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デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNGが正解
0064デフォルトの名無しさん
NGNG現在はMSもハンガリアンを否定してるんで、
今更わざわざ会わせる必要はない
0065デフォルトの名無しさん
NGNG好きです。
0066デフォルトの名無しさん
NGNGが正解
0067デフォルトの名無しさん
NGNG勝手に8bitとか決めつけてるし
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNG0071てんてん@ yankee.tokyo-nazo.net
NGNGくだんのページの管理者です。
ハンガリアンは全面的に賛成というわけではないです(w
プレフィクスをつけるような命名規約があるなら、ハンガリアンである必要は無いと思っています。
結局は
・プレフィックス付きの命名規約賛成
・プレフィックス付きの命名規約がハンガリアンしかない!
・自分で作るのは面倒くさい
・ハンガリアン使うか・・・
という感じ。
0072デフォルトの名無しさん
NGNGハンドル → h
グローバル変数 → g_
private以外のメンバ変数 → m_
漏れが使うプレフィクスはコレ位。
ちなみに p,h は後始末を忘れない為のマーク。
g_,m_ はGrep一発で定義位置を洗い出す為のマーク。
(Privateに付けないのは、Grepの必要が無いから)
あと↓の規約も併用。
struct/class → 頭文字大文字
定数 → 全部大文字
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG後始末を忘れたくないんなら、「リソースの獲得は初期化」イディオムを使えばいいんじゃないの?
俺はポインタにpってプレフィクスつけるけど、その目的は最初にコーディングする時点で
「->」と「.」のどっちを使うかを悩まなくてすませるためかな。ちなみにaut_ptrの変数にもpを付けてる。
>private以外のメンバ変数
privateじゃないメンバ変数なんて使わないんじゃ? 使ってるの?
>グローバル変数
グローバル変数もC++では使わないなぁ。せいぜいクラスのstatic変数だから、
定義位置は自明だしなぁ。
>struct/class → 頭文字大文字
>定数 → 全部大文字
これは俺もやってる。
0075デフォルトの名無しさん
NGNG作業効率を上げる」のが目的じゃないの?
それが俺系であれMS系であれUNIX系であれ、手段は変わらないと思う。
アスキー出版の「実録!天才プログラマー」って本の一番最初で、
チャールズ・シモニィのインタビューに詳しくあるよん。
0076デフォルトの名無しさん
NGNG気になりますよね。
auto_ptr の類は皆さんはどうしていますか?
>>74
間違って delete したりしませんか?
私は必死に考えて q をつけてるのですが、やはり美しくない気がします。
q を選んだ理由は p と字形が似ているのと p の次なのと
他の文字よりちょっと下がっていて見やすいからです。
0077デフォルトの名無しさん
NGNG変数、といっても、クラスのインスタンスとしての変数だったら
グローバル変数はいくつか使わない?
アプリケーションクラスあたりはグローバルにしておくとらくちんなんだけど…
0078デフォルトの名無しさん
NGNGたまにウィンドウ関係のインスタンスをデバッグ用にグローバルにしておくと
キャプションにリアルタイムにデバッグ情報を表示できて便利だと思う事があるくらい。
0079デフォルトの名無しさん
NGNG008074
NGNGいや、そもそも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デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNGグローバル以外はうざったいだけ。
普通は関数を短く書くから、ちょっとスクロールさせれば宣言が見えるでそ?
構造体をtypedefするときはライブラリ関数をうまくつくって
上流のPG組む人にはメンバを意識させないようにするし。
0083デフォルトの名無しさん
NGNG物理量を区別するのにも便利。
freqHoge 周波数
voltHoge 電圧
currHoge 電流
pwrHoge 電力
dbHoge デシベル値
一度使ったら手離せません(w
008483
NGNG0085デフォルトの名無しさん
NGNG食えるよ。ちょっと臭みがあって万人向けではないが、慣れるとそれがたまらないらしい。
0086デフォルトの名無しさん
NGNG下痢するからやめろ。
0087デフォルトの名無しさん
NGNG仕様が変わりまくる仕事を3連発でやらされたときにそう思ったことがある。
実体が long なのに名前にshortが付いてたり、、、とか
0088デフォルトの名無しさん
NGNGnFrequencyHogeとかでいいんじゃないの?
0089デフォルトの名無しさん
NGNGhoge_volt
hoge_curr
hoge_pwr
hoge_db
つーかこうせんか?
struct Hoge {
int freq, volt, curr, pwr, db;
};
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNGa$ 文字列
a% 整数
a! 単精度浮動小数点数
a# 単精度浮動小数点数
というやつのことでしょうか。
0094デフォルトの名無しさん
NGNGDEFINT I-K
っていうか、版画利庵否定はいいんだけど、
あらゆる pref, suf を否定するのは勘弁してほしい。
メンバ変数かどうか、クラス変数(static)かどうかくらいつけてもいいだろう?
0095デフォルトの名無しさん
NGNG> あらゆる pref, suf を否定するのは勘弁してほしい。
してないよ?
> メンバ変数かどうか、クラス変数(static)かどうかくらいつけてもいいだろう?
型を明示しても無意味だと思うが、スコープを明示するのは意味あると思う。
0096デフォルトの名無しさん
NGNG> 型を明示しても無意味だと思うが、スコープを明示するのは意味あると思う。
意味ねーよ
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNG内側の変数が外側の変数を隠すのを防ぐためにも有用。
0099デフォルトの名無しさん
NGNGおまえ、死ね!
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG痛いヤシ
0102デフォルトの名無しさん
NGNG面倒臭がらずに、
this->
付けろ。
0103デフォルトの名無しさん
NGNG禿同。thisとかself使えば名前にスコープの情報を持たせなくても
可読性はあがる。っていうか、用意されてるんだから使えよ・・・。
ハンガリアーンが有用なんていってる香具師で仕事の出来る奴見たことないぜ。
いるのかもしれんが、少なくともおれの周りにはいない。
0104デフォルトの名無しさん
NGNGローカル変数定義し忘れ or スペル間違いしててもコンパイルとおりそうだな。
0105デフォルトの名無しさん
NGNG変数の型が分からなくなるようなソースは糞
0106デフォルトの名無しさん
NGNGそもそも、変数の型なんてわからなくても問題ないと思うが。
0107デフォルトの名無しさん
NGNGたまに問題になるよ。
0108デフォルトの名無しさん
NGNGたまにねぇ。
俺はオブジェクトにしろ変数にしろ、常に型を意識してるが。
0109デフォルトの名無しさん
NGNG間違ってたらコンパイラが指摘してくれる。
コンパイラが指摘できない問題は人間が意識してないといけないけど。
0110デフォルトの名無しさん
NGNGとか、それぐらいだな。名前考えるのがあんまり意味無い場合とか。
Windowsのイベントハンドラの引数HWND MSG WPARAM LPARAM -> h m w l
なんてそのまんま。これは型名とはちょっと違うか。
一時的な変数が多いときにrc_new, rc_old みたいなことはするかも。
それでもm_hogeとかは、まるっきり無意味なんでやらない。
0111デフォルトの名無しさん
NGNGその通り。だって保守性悪いもん、変数の型を意識しないといけない糞コードなんて。
0112デフォルトの名無しさん
NGNGプリフィクス使う奴は馬鹿
rc_new, rc_old
よっておまえも馬鹿
0113デフォルトの名無しさん
NGNG一時的に小さいブロックで使う変数ならtmpでいいし、他の変数と名前が
バッティングするなら変数に意味を持たせればイイ。
0114デフォルトの名無しさん
NGNGウインドウズプログラムしてると、
rcFrame,rcClient,rcToolbarとかその他いろいろ同時に必要になるじゃん
FrameRect,ClientRect,ToolbarRectにするとか?
0115デフォルトの名無しさん
NGNGそれ以外->not ハンガリアン
これで決まり。
0116デフォルトの名無しさん
NGNG変数名大文字は嫌いだ…(笑)。
それで良くない?変数の「意味」が分かってれば型なんて自ずと想像できるよ。
>MFC使うとき->ハンガリアン
>それ以外->not ハンガリアン
>これで決まり。
MFCの時もnot ハンガリアンです…自社のコーディング規約に
・ハンガリアン記法は使用しない事。変数名の付け方は以下に述べる方法で…
とか書いてあったYO!!
0117115
NGNG当然規約優先で良いとおもうけれど。
0118デフォルトの名無しさん
NGNG確かに(笑)。読みやすくはなるけど、気持ち悪い。逆に他の言語でも
ハンガリアン使われると気持ち悪いしさ。MFCだけにしてくれって感じ。
0119デフォルトの名無しさん
NGNG参照 -> r
ポインタ -> p
性的変数 -> s
このくらいか…
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNGHPEN hpen = 〜;
とするか、
HPEN pen = 〜
とするか、どっち?
hpenはprefixにも見えるけど、一応構造待命そのままのつもり。
struct AAA_struct;だったら
aaaとするか、aaa_structとするかみたいな。
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNGそれはちょっとイヤ過ぎるage
0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNGHPEN pen;
もしくは
HPEN temp;
0126デフォルトの名無しさん
NGNGロリはここに逝ってよい!ゴラァ!
iii■∧ /
━ (,, ゜Д゜) / ━━━━━ ∧∧━━ ∧∧
| つ ∇ (゜Д゜;) (゜Д゜;)
| |┌─┐ /⊂ ヽ /⊂ ヽ
〜| ||□| √ ̄ (___ノ〜 √ ̄ (___ノ〜
∪∪ | | || ━┳┛ || ━┳┛
 ̄ ̄ ̄ ̄| | ====∧==========
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| すげー!!サンプルだけで抜けるよ!!!
0127ななし@VB使い
NGNG肯定する立場でしたが、VB6のコードをVB.NETに移植したとき、プレフィクスと実際の型
が乖離するので、激しく鬱になりました。
(例)
VB6.0 Dim lngHoge As Long
↓
VB.NET Dim lngHoge As Integer
プリミティブな型だけなら、ハンガリアン記法のメリットが大きいという見方
もわからないではないけど、そもそも、C言語での数値オブジェクトのサイズは
処理系依存でしかない訳で、「型」を名前の一部にするのはリスクが大きいと
思います。(日本語下手糞でスマソ)
0128デフォルトの名無しさん
NGNGVBのもハンガリアンなのか?
ハンガリアン否定派に混じって命名規約全般徹底否定派が暗躍しているので
曖昧な所で「ハンガリアン」というのはやめれ
0129デフォルトの名無しさん
NGNGなんでC基準になってるんだ?
VB.NETはC#基準だから、型のサイズは規定されてるんじゃないの
0130デフォルトの名無しさん
NGNG周りの言語がみんな標準の整数型が32ビットで
MS がコロコロ仕様変えるの好きなのがわかっているのに
ビットまで含んだ命名規約使ってたほうが悪い。
含んでいいのはせめて signed か unsigned かって事くらいか。
まあ lng は VB 標準の命名規約だったからしょうがないけど。
0131デフォルトの名無しさん
NGNG0132ななし@VB使い
NGNGイヤ、それはわかりますけど、何しろMSがその命名を推奨してたんですから(苦笑)
VB6.0までは数値型の仕様変更がなかったので、破綻もなく、それなりに便利だった
のですが。
σ 的には、VB.NETへの移行のタイミングでハンガリアンスタイルを廃止するのがよい
機会かと。
0133デフォルトの名無しさん
NGNG型を意識しないでプログラミングなんて言うのは、
所詮、初心者プログラマだと思うが。
これと、ハンガリアン記法が趣味に合うかというのは別の話だし、
(実際、俺の趣味には合わない。)
ネーミングで型を明確にするのかというのも別の話だ。
ネーミングで型を明確にすると言うのは悪くもないと思うが、
MSの用にバシバシ仕様変更されると、移行作業で問題が出るだろう。
MSが.NETへの以降のためにつくった後付の理論を、
鵜呑みにしてる厨房がなんと多いことか。(夏休みの学生か?)
0134デフォルトの名無しさん
NGNGソースが凸凹して読みにくい。
0135デフォルトの名無しさん
NGNGじゃぁ、ptr_intとか、str_nameとかにしなさい。
0136デフォルトの名無しさん
NGNGじゃぁ、仕様変更がほとんどない状況においての、ネーミングで型を明確にするメリットは?
0137デフォルトの名無しさん
NGNG× ネーミングで型を明確にするメリットは?
○ ネーミングで型が明確になるのがメリット
0138デフォルトの名無しさん
NGNGネーミングで型が明確になっても嬉しいとは思わないけどなぁ。
0139デフォルトの名無しさん
NGNGVB6.0まではその恩恵があったんですが。
0140デフォルトの名無しさん
NGNGあんたは厨
0141デフォルトの名無しさん
NGNGモジュールで定義されてる巨大な構造体の各メンバをユーザ側から
いちいち書き換えてた時にはまぁ、役に立ったけど。
それだってそもそも、想定される構造体操作関数くらい作っておけよ
という感じだし。
0142デフォルトの名無しさん
NGNG暗黙のキャストとか気にならん?
0143デフォルトの名無しさん
NGNG小数→整数 変換なんて滅多に起こさないから、逆に目立つし。
ハンガリアン使わないと型がわからなくなる程大量の変数を
一つの関数にぶち込むことはまずないし。
0144デフォルトの名無しさん
NGNG気になる状況など
俺にような優秀な人間には
存在しないってことね
0145デフォルトの名無しさん
NGNGハンガリアンに頼ってるような環境が普通以下だと思われ。
0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG誤解してるかもしれないので念のため言っとくが
俺はハンガリアンなんて使ってないぞ
型を意識するのはプログラマの基本だと言っている
べつにネーミングでやらなくてもいい
0149デフォルトの名無しさん
NGNGなるべく意識しなくてすむようにするのが設計の基本だ。
0150デフォルトの名無しさん
NGNGニイニ ハンガリアン
ハンガリアン ハンガリアン
0151デフォルトの名無しさん
NGNGお前は意識しなくてすむように設計しての実際意識しない
俺は意識しなくてすむように設計はするが意識はする
それだけの違いだ
まあ気にするな
0152デフォルトの名無しさん
NGNG無駄な型変換をしないように意識したいので
int n
unsigned int u
float f
double d
を使ってます。無いと心労。
0153デフォルトの名無しさん
NGNG整数と小数の使い分けはまだわかる。
それ以上はそれらが混在するような状態が間違いなのでは?
(構造体やクラスのメンバ変数にシビアな型を持たせすぎとか…
ゲーム屋じゃ場合によってはしょうがないけど)
0154デフォルトの名無しさん
NGNG同意。数値計算とかだと全部小数とかでむしろ分かりやすい場合が多いんだけど、
ゲーム屋さんとかだと整数/小数が混在するから仕方無いと思う。
…けどint/unsignedとfloat/doubleはどうだろう…。個人的には使い分けるような
局面になったことがないから何とも言えないな。
0155デフォルトの名無しさん
NGNGおまえの言う「無駄な型変換」の意味がわからん。
そもそもハードはどれ?
普通はdoubleなんか使わない。
大体unsignedなんか型変換したって実行効率には影響しないぞ?
0156デフォルトの名無しさん
NGNG変数名に型情報がついてない-->変数の型が分からない-->とりあえずキャスト
マズー。
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNG0159age
NGNG0160デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNGマズー、てことじゃないの? 仕様変更てのもレンジの差こそあれ、根は同じ。
0163デフォルトの名無しさん
NGNGあげちゃったわけでつか。
あげちゃったわけでつか。
あげちゃったわけでつか。
あげちゃったわけでつか。
あげちゃったわけでつか。
あげちゃったわけでつか。
あげちゃったわけでつか。
氏ねよ、クズが。
0164デフォルトの名無しさん
NGNGthis->foo = foo;
}
0165デフォルトの名無しさん
NGNG> 変数名に型情報がついてない-->変数の型が分からない
(・∀・) アフォ!
(・∀・) タイーホ!
(・∀・) fusianasan!
一体どういう局面で、変数名に型情報がないだけで型が分からないなんて状況になるんだ?
0166デフォルトの名無しさん
NGNG補完機能の無いエディタもgrepも使わず改造すれ、
という仕事した事があるが、この時ばかりは
「アフォどもはハンガリアン使っとけ」と激しく思った。
0167デフォルトの名無しさん
NGNGナルホド、版画利安てアフォども救済のためにあったのか!!
0168デフォルトの名無しさん
NGNGワーワー
0169アフォルトの名無しさん
NGNGあのなあ、その場合、変数名にジャンガリアン適用する前にする事が一杯あるだろ?
そして、それが済めばモンゴリアンは不要になるはずだが。
0170167
NGNGしかしその頃の漏れはまだ入社したばかりのペーペーで、
しかもその仕事ってのが銀行の基幹システムのモノだったから、
上からの指示無くしてソースに触れることが許されてなかったんだYO!
しかも指示っつーのが「日本語に変換されたソース」による変更例、もしくは
「このロジックを用いている場所は間違ってる」とか書いてあるだけで、
肝心の修正個所は「各自ソース見て洗い出せ」。
>>167のように思った漏れの気持ち、分かってくれよな?
0171170
NGNG167ではなく166だった。スマソ。
0172デフォルトの名無しさん
NGNG0173アフォルトの名無しさん
NGNG気持ちはわかる、漏れもそんなソース/環境はイヤだ。
が、そういう気持ちになったのは、ソースがハンガリアン適用していないせいでは
ないだろう?
漏れが 169 で 「ジャンガリアン適用する前にする事が一杯あるだろ」 と書いた
のは 166 にそうしろというのではなく、166 の言うところの「アフォども」 に改善
してくれと要求するにしてもハンガリアンは関係無いだろ、という意味だ。
0174デフォルトの名無しさん
NGNGかーのかっちゃん♪
0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNGカニバリストには前者。
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNGハンガリアンに喰われてこい >179
0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNGジャンガリアンはハムスター
モンゴリアンはマッチョマン
ハンガリアンは原始人
0184デフォルトの名無しさん
NGNGclass CHoge{
private:
int m_instanceState;// インスタンス変数
static int sm_classState; //クラス変数
};
複数のスレッドから呼び出されるインスタンスの場合、
クラス変数なのか、インスタンス変数なのか気にならないか?
俺は気になる。
いつでもクラスの宣言に戻って確認できますが何か?
0186デフォルトの名無しさん
NGNGしかも private だし…
0187デフォルトの名無しさん
NGNG「呼び出す」って言葉の使い方が変だけど(「参照する」では?)、
マルチスレッドの話をしてると思われ。
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNGcxHogehoge .. Hogehogeの幅
cyHogehoge .. Hogehogeの高さ
p..ポインタ, r .. 参照も許せるな。
pHogehoge .. Hogehogeへのポインタ。
rHogehoge .. Hogehogeへの参照。
wHogehoge .. WORDのHogehoge
lHogehoge ... LONGのHogehoge
なんの意味があるんだろう。
k .. 日下部というのもいいかもしれない。
kIme .. 日下部が使っているIME。
つっこみどころ満載だから、やめておこう。。。
0190デフォルトの名無しさん
NGNG(;´Д`)
0191デフォルトの名無しさん
NGNGnxt
0192デフォルトの名無しさん
NGNGとか?
0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNG│☆☆☆☆☆☆☆―おいらの胸の心の愛 ―☆☆☆☆☆☆☆│
│☆ ┏━┓┏┳┓ ┏┳━━━┳━┓┏┓ ☆│
│☆ ┣━┫┃┃┣┳━━┛┣━┳┓┣━┛┃┃ ☆│
│☆ ┗━┛┣╋┛┗┳┓┏┛ ┃┣┛ ┃┃ ☆│
│☆ ┏━━┛┣┓┣┛┃┃┏━┛┃┏━━┛┃ ☆│
│☆ ┗━━━┛┗┛ ┗┛┗━━┛┗━━━┛ ☆│
│☆ ┏┳┓┏┳┓ ┏┳━━┳┳┓ ☆│
│☆ ┃┃┣┛ ┗┳━┛┃ ━ ┃┃┃ ☆│
│☆ ┃┃┣┓┃┏┻┓┏┫┏┓┃┃┃ ☆│
│☆ ┗┫┃┗┫┃ ┃┃┗┛┃┃┃┗┓ ☆│
│☆ ┗┛ ┗┛ ┗┛ ┗┻┻━┛ ☆│
│☆ ▼▼▼▼ ☆│
│☆ 本日 PM 3:00 開演 場所 空地 ・__・ ☆│
│☆ 来ないやつは殺す 〇 ☆│
│☆ 3 .☆│
│☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆│
└─────────────────────────┘
0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
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デフォルトの名無しさん
NGNGM$も真似してハンガリー人が考えたから....。
>9
> っていうかな、これからの言語では「これはポインタ?」とか気にしなくて
> いい言語が主流になってくるのよ、Javaとかね。
Java/C#にもポインタがある。Java/C#ではポインタのことを参照と呼ぶ。
Java/C#で無いものはポインタではなくポインタ操作、メモリ操作、アドレス操作である。
> だから、型を気にしなきゃいけないC/C++は、どんどん廃れていく方向にあるわけ、絶滅はしないけど使われる分野は狭くなっていくのは確実。
> だから、廃れていくC/C++と一緒にハンガリアンもやめましょうってこった。
Java/C#はC/C++よりも強く型付け(very strongly typed)された言語だ。
Java/C#でハンガリアン記法をやめた理由は、グローバル関数、グローバル変数を宣言することができない(する必要が無い)からだ。
0205デフォルトの名無しさん
NGNG> ハンガリアンを徹底的に排除するんでなくて、良い部分は残していけばいいんじゃないかと思いまして。
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例 : public static final String FINAL_VALUE_OF_STRING;
> g_ ・・・グローバル変数につける、グローバル変数使わないからこれも疑わしい。
Java/C#にはグローバル変数を定義できないから区別するものが無く、全く不要。
> p ・・・ポインタにつける、意図的にNULLが代入されている場合がある事がわかる。
Javaではクラスのコンストラクタが生成したオブジェクト,配列はすべて必ず参照変数となるため不要。Javaの値型はプリミティブ型(C/C++の基本データ型int, doubleなどと同じ)のみである。C#では、基本データ型を参照変数としても値変数としても定義できてしまう。
0208デフォルトの名無しさん
NGNGJavaではクラスを定義しそのスコープの内側でメソッドを実装なければコンパイルエラーとなるからつける必要が無い。
C#ではインターフェースと区別するためにCをつけたいときがあるそうだ。
逆に、インターフェース名の頭にIをつけるというM$のガイドラインがある。
(Javaではインターフェースとクラス、どちらを継承しているかの区別は、extends, implementsキーワード(C++/C#だと両方とも:を使うため区別できない)を見ただけでわかるためこのような区別は不要)。
Javaではむしろクラス名はできる限り名詞にすることが推奨されている。
0209デフォルトの名無しさん
NGNGJavaではパッケージ名(C#/C++のnamespace)にはドメイン名を付加することが推奨されている。
2chが開発したあるパッケージ名なら、 net.2ch.www.foo.bar とか。
C#ではなぜかパッケージ名の頭文字を大文字で宣言することを推奨している。これではクラスかパッケージかの区別がつきにくい。
C#ではなぜかメソッド(メンバ関数/操作)名の頭文字を大文字で宣言することを推奨している。
これではコンストラクタとメソッド(メンバ関数/操作)との区別が付きにくくなる。
0210デフォルトの名無しさん
NGNG必死すぎてなんか哀れ
0211デフォルトの名無しさん
NGNGC# が大文字好きなのは Delphi の影響かもね。
0212デフォルトの名無しさん
NGNGあ、そーゆーとこ組む人は別ね。
ポインタになるやつはそれっぽい名前つけるし、
あえてきにすんのは少数か整数か?って程度か?
スコープに関してはやる意味がみつからん。
でも開発にうんこ野郎がいてグローバルとか使いまくってたら、
そら、ハンガリアンつかわな死ぬわな。
0213デフォルトの名無しさん
NGNG> Java/C#にはグローバル変数を定義できないからJavaのフィールド(メンバ変数/属性)区別するものが無く、全く不要。
なぜグローバル変数を定義できないから、メンバ変数だけの話になるか分からん。
メンバ変数を区別するのはグローバル変数の他にローカル変数があるだろ。
> 純粋論者は インスタンスフィールド(staticでないフィールド(メンバ変数/属性))はすべてprivateにすべきだ、という。
そして、フィールドにアクセスするときにはフィールド側にm_をつけるのではなくアクセッサ側にget setを
つけるわけだね。考え方としてはm_と同じなんだけどね。
ちなみにC#ではget setなんて余計なものをつけなくてもプロパティという方法でアクセッサと同じ利点が
得られる。そのときのプロパティ名と(private)メンバ変数名を区別するためにm_が有効。
ちなみにm_はスコープの話なのでハンガリアンではないのだが。
あと名前で役目を区別するのに省略形を使用するかそうでないのを使用するかの違いだけって言いたくなる点が多いね。
それじゃハンガリアン(?)の考え方自体を否定していることにならないんだけどね。
例 頭にCでクラス/名詞にしたらクラス sをつけたらstatic/すべて大文字で単語の(略)
おっと>>209ではあれほど型を気にすんなといっていたのに、クラスかパッケージ、
コンストラクタとメソッドは区別すんのか
0214デフォルトの名無しさん
NGNG> あと名前で役目を区別するのに省略形を使用するかそうでないのを使用するかの違いだけって言いたくなる点が多いね。
> それじゃハンガリアン(?)の考え方自体を否定していることにならないんだけどね。
ハンガリアンで使うのは、役目じゃなくて型名の省略形では。もっと原始的。
0215デフォルトの名無しさん
NGNG=( ・A・)ハンガリアンイイ!! (・∀・)ハンガリアンイクナイ!!
ハンガリアンイイ( ・A・)(・∀・ )ハンガリアンイクナイ!!
バシバシ::ノヽ/て::
ハンガリアンイイ!!( 'A`)ノ('∀` )ハンガリアンイクナイ!!
::ヽヘ/::
(・∀・)ムハンガリアンイクナイ!! Σ('A` )Σ('∀` )
(・∀・)ハンガリアンイクナイ!! イイ('A` )= ('∀` )=イクナイ!!
イクナイ!!(;・∀・)イイ!!('A` )('∀` )イクナイ!!
ワ-ワ- ,;;⌒;;;,'⌒';;⌒;,ワ-ワ-
(,:;,ゞ.;:.:.: ;:;.:;. )
0216デフォルトの名無しさん
NGNGJava/C#で
フィールド(メンバ変数/属性)とローカル変数を区別するために変数名の頭に特定の文字をつける必要性が無いのは、
フィールドはクラスの内側直下のスコープ内にしか記述することができない。ローカル変数はメソッドの内側直下のスコープ内にしか記述することができない。
これにより、変数名を見なくても一目見ただけでローカル変数とフィールドの区別が簡単にできる。だから不要・
C#のget,setは独自に改良し、オーバーロード、オーバーライドすることはできないのか?
メソッドは頭文字すべて小文字にすればきにするほどの問題はない。
コンストラクタはクラス名と同じで、クラスの頭文字は大文字によりコンストラクタも必然的に大文字になる。
そうすることで、これらのクラスからインスタンスを生成し、実際に使用したとき、コードの可読性に悪影響をほとんど与えない。
型名を気にしないとは言っていない。
型名の頭にIやCをつけるよりも一目見ただけでクラスがどのような振る舞い、機能を持っているかが解るような名前(モデル名)にすべきだということである。
これはグローバル変数である、とかローカル変数であるとかインターフェースであるとかクラスであるとかいう情報よりも
それが何をするためクラスか、何をするためのメソッドか、どのようなものをあらわす変数かが簡単にイメージできるような情報を名前に含める方が重要である。
XP, RUP的な発想では解りやすさが重要視される。
どうだ?
0217デフォルトの名無しさん
NGNG> フィールドはクラスの内側直下のスコープ内にしか記述することができない。ローカル変数はメソッドの内側直下のスコープ内にしか記述することができない。
へー。フィールドはメソッドから見えないんだー。
メソッド内にa++とあってこのaがフィールドかローカル変数かどうやって区別するのかな?
> C#のget,setは独自に改良し、オーバーロード、オーバーライドすることはできないのか?
出来るに決まってんじゃん。アフォですか?
0218デフォルトの名無しさん
NGNG見えるに決まってんじゃん。お前こそアフォですか?
{}と (){}の違いで区別できるだろが。
C#に独自のget,setがあったとしてもそれほどのメリットを享受できるとは思わないな。そもそもそんな話には興味が無い。
0219bloom
NGNGhttp://www.agemasukudasai.com/bloom/
0220デフォルトの名無しさん
NGNG> 見えるに決まってんじゃん。お前こそアフォですか?
皮肉ですよ(プ
> メソッド内にa++とあってこのaがフィールドかローカル変数かどうやって区別するのかな?
この質問に答えてください。
> C#に独自のget,setがあったとしてもそれほどのメリットを享受できるとは思わないな。そもそもそんな話には興味が無い。
興味が無いなら持ち出すな。
0221デフォルトの名無しさん
NGNGお前暇人ですね。C#信者ですね?
>この質問に答えてください。
なるほど。フィールドと同じ名のローカルではバッティングする説明がなかったな。
とりあえずthis使え
get,setを持ち出したのは >>216
0222デフォルトの名無しさん
NGNG> とりあえずthis使え
それはそれで一つの案だな。
常にthisをつけると決めるのであれば名前で区別できるようにする必要はない。
> get,setを持ち出したのは >>216
その通りだ。誰に言ってるか分かりにくいから今度からはリダイレクトつけるようにしろ。
0223デフォルトの名無しさん
NGNG>変数の先頭に型情報を名づけるアフォ言語=Perl
で納得されてるようだがそれ少し違うと思う(^^;
Perlの記号プレフィクスは、
$ 汎用スカラ変数
@ スカラ変数の集合による配列
% スカラ変数の集合によるハッシュ(awkの連想配列相当)
& 関数(サブルーチンやメソッド)“前方参照でなければ省略可”
* 同名の上記4種の集合(グロブ名) (void型に近い?)
っつー機能分類記号で、どっちかっというと演算子に近い。
なので、文字列なのか整数なのか浮動小数点なのかとか
そういう変数型分類とは全然関係ないので
ハンガリアンも使いたくなる場面は多いのよ。
特に $pstr = \$str みたくリファレンスの間接参照を
通常変数と混在させざるをえないときとか。
なのでクラス定義多用でオブジェクトにカプセル化
してかないと、なかなかすっきりせんのだわ(^^;
(汚い言語仕様であることは否定しないが、もともとストリームエディタ系簡易言語だしぃ?)
(これでも御先祖様の sed と比較すれば相当な進化だよ)
0224デフォルトの名無しさん
NGNG対象が古くても、発言に対するレスならオフトピとは言わないと思うが・・・。
0225デフォルトの名無しさん
NGNGで、awk に比べると退化...
0226デフォルトの名無しさん
NGNGなにか?
0227デフォルトの名無しさん
NGNGオナーニ中
0228デフォルトの名無しさん
NGNG国境を越えた各国警察の合同捜査により
逮捕
0229デフォルトの名無しさん
NGNGあー言っちゃったよ
あいたた
0230デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 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デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNGきわめてそれっぽい
0233デフォルトの名無しさん
NGNGhttp://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デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
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それは同意。
匿名だから何をしてもいい。と思っている香具師が多すぎる。
HP荒らしとか個人情報貼り付けとか嘘の犯罪予告とか。
とにかく多くの人を釣り逃げ煽り逃げ荒らし逃げすればいいと思っている奴が多い
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNG/:::::::ヽ____/::::::::ヽ、
丿 ::.__ .::::::::::::: __ ::::ヽ_
/ /。 ヽ_ヽv /: /。ヽ ::::::ヽ
-┼- 丿~~~| / / ̄ ̄√___丶  ̄ ̄\ ::::| ■ ■
-┼- /~~~~/ ━━━ | .:::::::::: / / tーーー|ヽ ..::::: ::|━━━━━━ ▼ ▼
.| 丿 | .:::::. ..: | |ヽ ::| ● ●
| ::: | |⊂ニヽ| | :::::| \
/ /| : | | |:::T::::| ! .::| \ \\
/ / \: ト--^^^^^┤ 丿 \\\ \\\
お、大阪・・・・
0240デフォルトの名無しさん
NGNGどういった手続きをとればいいんですかね?
0241デフォルトの名無しさん
NGNG24歳童貞もよ(ニュー速いちのうんこ好き) ◆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デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNG一応ニュースになるんだね。
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG質があるかはしりませんが(w
0249デフォルトの名無しさん
NGNGP2Pとかに潜るんでしょう
0250デフォルトの名無しさん
NGNG持ってないの?散弾銃。
0251デフォルトの名無しさん
NGNG付きませんので。
0252デフォルトの名無しさん
NGNGでもね・・・
そ ん な こ と は 一 秒 あ れ ば 思 い 付 く こ と
だと思いませんか?(^_^;)
つまり、今の手法ってのが選ばれたってことから
そのやり方は選択されなかったことは自明かと・・・・。
0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNGアンダスタン?(^_^;)
0259デフォルトの名無しさん
NGNG0260山崎渉
NGNG0261デフォルトの名無しさん
NGNG0262山崎渉
NGNG0263山崎渉
NGNG0264デフォルトの名無しさん
NGNG0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNG0274山崎渉
NGNG0275山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0276山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0277デフォルトの名無しさん
NGNG0278デフォルトの名無しさん
NGNG>>みんなだってポインタの先頭には「p」とか書くだろ?
書かねーよ
0279スマートポインタを使うよ派
NGNG書くよ…。
0280デフォルトの名無しさん
NGNG0281ビューティーを紡ぐよ派
NGNG書くよ…。
0282デフォルトの名無しさん
NGNG0283デフォルトの名無しさん
NGNGポインターは真似るな。
クラスメンバーのm_XXXがぜったいに作らない。
つーかMSめんどくせーもんつけるなよといいたい。
0284山崎 渉
NGNG0285デフォルトの名無しさん
NGNGコーディングスタイルとしてはどうでしょうか?
自分としては、m_をつけるよりもスマートだと思ってますが・・・。
class CFoo
{
public:
void Clear(void) { ZeroMemory(&m, sizeof(m)); };
// 〜省略〜
private:
// メンバ変数
struct {
int X;
int Y;
bool Active;
} m;
};
0287_
NGNG0288デフォルトの名無しさん
NGNGヤングはJava的記法だよ。
0289デフォルトの名無しさん
NGNG0290デフォルトの名無しさん
NGNGC++じゃないけど、VBの仕事の時にグローバル変数でそんな感じでやってた。
コード補完ができて一石二鳥。C++じゃないので::とか言わないように。
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNGJavaなら要らんかもしれないけど、クセでやっちゃうな。
0293デフォルトの名無しさん
NGNGクラスの始めはCで始めるとか大文字で始めるとか
メソッドなら小文字で始めるとか
ローカル変数には_を付けるとか
無駄なものはいくらでも有る。
0294lisper
NGNG0295デフォルトの名無しさん
NGNG無駄だと思うなら、やめればいい。
0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNGPascalっぽいっていうのかな?
0298デフォルトの名無しさん
NGNGそれ以外で面倒なprefixを付ける理由が分からない。
変数名を見ただけで大体分かるような名前付けをするべき。
0299デフォルトの名無しさん
NGNGそれ以外で面倒なprefixを付ける理由が分からない。
変数名を見ただけで大体分かるような名前付けをするべき。
0300デフォルトの名無しさん
NGNGそれ以外で面倒なprefixを付ける理由が分からない。
変数名を見ただけで大体分かるような名前付けをするべき。
0301デフォルトの名無しさん
NGNGポインタと参照も分かるような名前を付けろよ。
HogePointerとかHogeReferenceとかさぁ。
iCountだったらCountIntegerだ。
CFooじゃなくてFooClassとすればもっと分かりやすいし。
0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG全面的に採用していたにもかかわらず、
ハンガリアンは支持と不支持がまっぷたつに分かれてたわけだろ?
MSがいち抜けた今、天秤がどっちに傾くかは核爆発を見るより明らかだろうが。
沈みかけの泥舟からはさっさと脱出しなさい。
0304デフォルトの名無しさん
NGNGそんな糞ルールつくんなって。小文字だろうが大文字だろうが
クラスはクラスだろ。コード見れば分かる。
iで始まる名詞はint型とか大文字で始まる名詞はクラスとかイヤになる。
0305デフォルトの名無しさん
NGNGまぁ、最初は色覚えるのに苦労するかも知れないけど。
0306デフォルトの名無しさん
NGNGコンパイラのためでもないし、遠く離れた定義見れば分かるから
いらないと言うものじゃない。
iloopと書いてあるだけでintのloop用変数と分かる。便利じゃないか。
0307デフォルトの名無しさん
NGNG命名に影響を与えてる気はする。
これが普通のJavaプログラマだったら、変数は使う直前で宣言する。
スコープが小さいから一目で型が何なのか分かる。
少なくともprefixに型名を加えること(>>306のiloop)はない。
0308デフォルトの名無しさん
NGNGつまりスコープが遠い位置にあるメンバ変数などにはprefixをつけろと。
0309デフォルトの名無しさん
NGNGメンバ変数は宣言自体が見当たらない、
そして開発者にとってクラスのメンバ変数名が何であるか知ってるはずであり、
型は自明であるから付ける必要はない。
0310デフォルトの名無しさん
NGNG0311私見
NGNG言ってる香具師は修行が足らん。
が、最低限グローバルオブジェクトはプロジェクト内で、
ローカルオブジェクトはメソッド単位で、というように
スコープ範囲とスコープが一致するモノ同士は
統一されるべき。
例えばメソッドA,メソッドBのローカル変数の命名規約は、
各関数内で統一されてりゃ問題無い。
が、メソッドA,Bの属するクラスCのメンバは統一されるべき。
だがクラスDのメンバと統一する必要は無い。
(強い関連を持ってるなら統一すべきだが)
0312デフォルトの名無しさん
NGNG我流ほど危険な物はない。
ハンガリアン記法は、天才プログラマーが作った物なんだから
あれこれと批判しないで、それに従って自分の物にすべき。
結局は、それが最良の道だ。
0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNG変数宣言しないBASICサイキョ
0317デフォルトの名無しさん
NGNG他人が作ったとか、忘れるとか、思いつかないんだろうか?
> 型は自明であるから付ける必要はない。
自明でないのは自明であるから付ける必要がある。つーか「自明」って説明できないだけでしょ。
count ← ほら何型か言ってごらん(w
0318デフォルトの名無しさん
NGNG0319_
NGNG0320デフォルトの名無しさん
NGNG定義を見れば分かる。
↑の反論
だったらa b cとかもコメントを見れば分かるな。
そういうことじゃないでしょ。
定義やコメントを見なくてもわかるようにしようね。
0321デフォルトの名無しさん
NGNG多くの場合整数型だろうなぁ
0322デフォルトの名無しさん
NGNGcolor ← 何型だ?
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNGその場で型もコメントも定義も分かる。
これはテキストエディタでは不可能なことだ。
I D E マ ン セ ー
0325デフォルトの名無しさん
NGNG>>そして開発者にとってクラスのメンバ変数名が何であるか知ってるはずであり、
>他人が作ったとか、忘れるとか、思いつかないんだろうか?
メンバ変数くらいIDEで確認しろよ。
0326デフォルトの名無しさん
NGNGIDE厨氏ね。世の中にはテキストエディタを使わなきゃならない
かわいそうな奴らもいるんだよ。
0327デフォルトの名無しさん
NGNG兎に角、一目で分かる名前付けしてみろってことだ。
0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNGなるほど、型名も一目で分かるprefix肯定派ですね。
0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNGグローバル変数なんて使うな!
プリプロセッサ(#define)も使うな!
といってみるテスト。
0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNGIDEつかわんでも言語仕様によってはすぐにわかってしまうものがあったりする。
Javaとか。
0335デフォルトの名無しさん
NGNGついでに、ポインタ演算もメモリ操作も構造体も共用体もオペレータ定義も
グローバル関数も実装多重継承
使うな!
といってみるテストを追加してみてはと一定見るテスト。
C++のコンパイラでグローバル変数などを使用するとコンパイルエラーを
吐き出すようなオプションがあれば楽チンのようじゃが。
0336デフォルトの名無しさん
NGNG取得すんの?
0337デフォルトの名無しさん
NGNGboostのソースでも見てこい。
0338デフォルトの名無しさん
NGNG見た。
久しぶりにCソース見たってのもあるけど、完全に意味不明。
正直ハンガリアンを少し認めてしまった。使用がないのかも・・・
シンプルなJavaマンセーってな感じです。
0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNGシングルトンなオブジェクトをグローバルにしてる。
0342デフォルトの名無しさん
NGNGそれはSingletonパターンにしたクラスがどうしてもグローバル変数に
なってしまうのだということをいいたい?
0343デフォルトの名無しさん
NGNG新規に開発するときは>>332,335の言うとおりにすべきだと思うのさ。
ふるいのを流用するならアダプタクラスを使ってどうにかしたほうがいいと
思うなあ。
0344デフォルトの名無しさん
NGNG( ´ー`/ /
( ,/_〇 ♪
| |旦 ♪ ∧∧ セッケイショ
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ヽ(゚∀゚)ノ デキマシタ!!
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ( へ)
| | く
∧_∧ ハンゴリアーン!!
|\ΦДΦ) /|
○ < ζ) < ○ 人人
| > 旦 > | < ∧∧ キュワアアアアア!!!
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ヽ(゚Д゚ )ノ
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ( へ)
| | く
0345デフォルトの名無しさん
NGNG型名がわかるから無理にハンガリアン記法にする必要は無いと聞いたが
0346デフォルトの名無しさん
NGNG余計なゴミ(グローバルシリーズなど)を排除することで無理に
バンガリアンにする必要がない理由はいくらでもあるわい。
というのはC++とJavaやC#などを比較した場合などに限った話だが。
0347デフォルトの名無しさん
NGNGローカル変数とクラス変数を廃止してから言ってください。
0348デフォルトの名無しさん
NGNG0349341
NGNGそうともいう。
0350デフォルトの名無しさん
NGNGそれでどうやってプログラムを組むのだ
0351デフォルトの名無しさん
NGNGメンバ変数 m_Age;
ポインタ pFriend;
ポインタなメンバ変数 m_pMother;
真偽値 bDead;
真偽値なメンバ変数 m_bMarried;
0352デフォルトの名無しさん
NGNGぐらいは使ってるな。逆に bool の b は使ってない。m_isCacheValid
みたいな名前にしちゃってる。
0353デフォルトの名無しさん
NGNG>>350
わかってないねぇ。
たとえグローバル変数をなくしてもローカル変数やクラス変数があるのだから
ハンガリアンにする理由はなくならないんだよ。
それにSingletonというグローバル変数までなくすことは出来ない。
0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNG定義はないからねぇ。みんな俺ハンガリアンの話をする。
0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNGs_
g_
p
あたりはハンガリアン由来では?
0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNGクラス変数なんて、
クラス名.静的変数名
とかくだけでわかるからJavaやC#でいちいちハンガリアンにする
馬鹿なことをする必要もないのだが。
0360デフォルトの名無しさん
NGNGお前は自分のクラスのクラス変数に
いちいちクラス名をつけているのか?(w
0361デフォルトの名無しさん
NGNG...
ThisClass.StaticProperty;
0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNG整数型の変数の前に int って付けたりしてるんですか?
0364デフォルトの名無しさん
NGNGコイツ クサッ
0365デフォルトの名無しさん
NGNGアホ。外部から使うときだけにきまっとるだろうが。
Javaで定数を定義するときはpublic static finalにして
アンダースコアで区切って全部大文字にしろというのがあるな。
インスタンスフィールドを定義するときはメソッドと同じような文字区切り、
わかりやすい名前にしろと。
インスタンスフィールドとローカル変数との区別は、
thisキーワードを使って
this.インスタンスフィールド
とかけばよい。むしろthisキーワードはそのためにあるようなもの。
スーパークラスのインスタンスフィールドを呼び出すときも
super.インスタンスフィールド
かけばよい。
ハンガリアンの必要性も全くない。
0366デフォルトの名無しさん
NGNGC++においてはthis->nameになってなんかイヤダ。
this.nameとかけるなら俺はそうするんだけど・・・
0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNG逆ですよ?
0369デフォルトの名無しさん
NGNGそんなときは参照っすよ、参照!
0370デフォルトの名無しさん
NGNGただ、思ったこと書いてみただけsage
0371デフォルトの名無しさん
NGNG>インスタンスフィールドとローカル変数との区別は
>thisキーワードを使って
同一クラス内でも常にアクセサを使って取得するってのはどうよ。
インスタンスフィールドに直に触れるのはアクセサ内とコンストラクタ内に限定。
private int foo;
public int getFoo() { return foo; }
のとき this.foo も foo もダメで常に getFoo()。
あるいはローカルに int foo = getFoo(); とコピーしてアクセス。
0372デフォルトの名無しさん
NGNGメソッドの場合、this付けないとstaticメソッドと勘違いする可能性があり、
効率が悪くなると思うがどうよ?
0373デフォルトの名無しさん
NGNGstatic メソッドこそクラス名を頭に書くだろ。自クラス内だとしても。
0374372
NGNGそういう手もあったか。
漏れはstaticメソッドはCなどでいう関数の意識が強い(特にprivate staticなメソッド)から、
何も付けてない。
実際のところどっちが多いのよ?
1--------
インスタンスメソッド:this付き
クラスメソッド:何もつけない
2--------
インスタンスメソッド:何もつけない
staticメソッド:クラス名付き
0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNGウンーコタベテーロ
0378デフォルトの名無しさん
NGNG氏ね
0379デフォルトの名無しさん
NGNGstatic メソッドをクラス名修飾付で、というのはやっていなかったが
これからそうしようと思う。
2ちゃんを見てるのも無駄ではなかった。Thanks.
0380山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0381デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNG皆私をジャガリコって呼んでます。
ヨロシクね。ムホッ
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNGcnt
ptr
wnd
prc
0385デフォルトの名無しさん
NGNG0386デフォルトの名無しさん
NGNG0387デフォルトの名無しさん
NGNGhoge *unkohoge=new hoge;
delete unkohoge;
0388デフォルトの名無しさん
NGNGこんばんわ馬鹿避けの隔離スレですよ?
0389デフォルトの名無しさん
NGNGちょっと待て!デロリアン
ちょっと待て!バタリアン
0390○に入る文字を入れよ
NGNGちょっと待て!毛無し
ちょっと待て!のし○
0391デフォルトの名無しさん
NGNG0392デフォルトの名無しさん
NGNG0393デフォルトの名無しさん
NGNG0394デフォルトの名無しさん
NGNG0395元ハンガリアン使用者
NGNGそんなハンガリアンのエピタフを考えました。
利点は大きかったが、欠点はもっと大きかった。
REST IN PEACE.
0396デフォルトの名無しさん
NGNG0397デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNGクラスや変数のネーミングがめちゃくちゃ。
まあ、言語的センスのないプログラマが多い職場にはおすすめの規約だろうよ。
0399デフォルトの名無しさん
NGNG日本国内では極めて有効っと φ(.. )メモメモ
0400デフォルトの名無しさん
NGNGlong illegal_index;
下のほうが断然見やすいと思うのは漏れだけか。
0401デフォルトの名無しさん
NGNG断然、君だけです。
0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNGそんなイリーガルな変数名持ってこられても困るよ
0404デフォルトの名無しさん
NGNGネーミングが気持ち悪いほど悪趣味だね
もしかしてJava厨?
0405ヽ(´ー`)ノ
NGNG0406デフォルトの名無しさん
NGNGオマエは、何でもかんでもJava厨で片づける厨だな
Javaは illegalIndex だろ
0407デフォルトの名無しさん
NGNGと思ったら無効と不正って良く考えたら意味違うな。
0408400
NGNG大文字の I と小文字の l が並ぶ変数名をでっちあげただけなんだが。
ハンガリアンが見やすいとか言ってる香具師への反証と思いねぇ。
#読みやすい単語で付けろとか言い出したりして…
0409デフォルトの名無しさん
NGNGあのー、ハンガリアンって何だか知ってます?
0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNG志村〜UNICODE!UNICODE!
0413デフォルトの名無しさん
NGNGすごく違和感がある
というか、ハンガリアンは読みにくいんだよね
0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNGttp://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20031002/1/
0417デフォルトの名無しさん
NGNGもしその変数が外部変数で構造体へのポインタのときどうつけますか?
pExKouzoutai
p移行の形容ごとに大文字にする癖があるんですがどうでしょう
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG外部変数使うな。
pSomeStructure
でいいんでないの?
0420417
NGNGじゃどういう基準でつけたらいいでつか?
>>419
つかいたくないのは激しく同意なんですが
制御関係になったらいるなーという感じです
ちなみにクラス、関数、メソッドの命名規約も
個人のオナニーだと思いました。ぜんぜん呪文ですね・・・
0421デフォルトの名無しさん
NGNG>制御関係になったらいるなーという感じです
要りません。
プログラマの悪い癖です。
自分の分野は教科書通りの分野じゃないから教科書に載っている通りにはならないと言って逃げないで下さい。
教科書通りの分野なんてこの世に存在しません。
グローバル変数は!!必要ありません!!
0422デフォルトの名無しさん
NGNGいや…、あとでハード接続するときとかどうしても必要なときがあるんだ。
外部ハードがまだ準備されてないときにグローバル変数を用意して、
そのハードのレジスタだと見立ててプログラムを組むときがあるんだよ。
もちろんハード屋から物が上がってくればレジスタに置き換えるから
最終的にはグローバル変数はなくなるんだが…一時的には使うんだな。
自分の分野じゃないから知らないとか言わないでそういうこともあるんだと理解して欲しい。
0423デフォルトの名無しさん
NGNGその話がどうして
>どうしても必要なとき
になると思うのか知りたい。
お前必要だと思い込んでるだけちゃうんかと。
0424423
NGNG君が何を読んだのかわかったよ
http://pc2.2ch.net/test/read.cgi/tech/1056716338/674-678
人から聞いた話だけで判断するなよ。
いいか、もう一度繰り返す。
お前必要だと思い込んでるだけちゃうんかと。
それこそ抽象化しておくべき物とちゃうんかと。
0425デフォルトの名無しさん
NGNG´д`)ノ教えてエライ人。
定数としてグローバルなconst変数定義するのは間違い?
代わりにどう書けば良いの?
0426デフォルトの名無しさん
NGNG・・・死ね。
0427423
NGNGクラスの public static const メンバにする。
ついでに言うと typedef も クラス内でする。
どちらも ClassName::ConstantName みたいな書き方で使える。
何に使うべきなのか、どこに責任があるのかがソースを見ただけで明らかなのが良い。
グローバルに置くと名前が被るのが怖いし、何の目的なのか忘れた時などにいちいち調べなければならなかったりする。
とかいいつつ漏れは趣味で書く時は一つだけ例外的にグローバルにしてるのがある。
EffectiveC++に書いてあったフールプルーフなNullをちょこちょこ変更してるのがあるのだが、
それだけはグローバルに置いた。
0428デフォルトの名無しさん
NGNG0429423
NGNG俺に対してのレスか?
だとしたら使ってるぞ。
それでも定数はクラス内に書く。大抵の場合は一番関係が深いクラスが存在するからな。
つまり名前空間の中にあるクラスの中に、だ。
nullをグローバルに置いたのは利便性とある種の不思議な感覚があった為だ。
不思議な感覚とは、Nullクラスをいじっている間、ライブラリやアプリケーションを書いているというより、
C++を拡張している、C++の言語仕様にあるべきだったのに足りなかった物を追加しているような錯覚を感じたからだ。
これこそがC++の本当に面白い所だと思う。
0430デフォルトの名無しさん
NGNGツマンネーノ。
0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNG他には?
0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNG0438デフォルトの名無しさん
NGNG0439431
NGNG0440デフォルトの名無しさん
NGNGツッコめないんで、ジサクジエンで突っ込み入れてくれ!
0441デフォルトの名無しさん
NGNG>>431
それを言うなら海老ドリアだろ?
これで満足か?
0442デフォルトの名無しさん
NGNGどうよ。
0443デフォルトの名無しさん
NGNG0444ケンケン
NGNG0445441
NGNGツッコミ入れたのに反応なしかコノヤロー!
0447デフォルトの名無しさん
NGNGひねりすぎだ。
0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNG相互リンクーヽ(´ー`)ノ
0451デフォルトの名無しさん
NGNGQB: A& 長整数
VB: A@ 通貨
の新参者もよろしくな。
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG(前者はハンガリー国民、という意味では使うが)
民族名、言語名はマジャール人、マジャール語だ。
覚えておけ馬鹿ども。
0454デフォルトの名無しさん
NGNG0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNG0459デフォルトの名無しさん
NGNG試合を終えたロッキーが観客をかき分けて叫んだ一言。
ちなみに全部別人の投稿。多かったのは「メガネメガネ」だったそう。
「こんなグローブじゃ外野守れないよ!」
>それでもプロか!
...
「エビドリア〜」
>腹へったんか。
「エイリア〜ン」
>彼女かい。
「プレデタ〜」
>もう、何もかも間違ってる。
0460デフォルトの名無しさん
NGNG今更だけどLPVOID pvABCじゃないか
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG>>456
そりゃサンガリアだろ!
これでいい?
0463デフォルトの名無しさん
NGNG0464デフォルトの名無しさん
NGNG0465デフォルトの名無しさん
NGNGkr_SK
kr_NK
とか分かれてるの?
0466デフォルトの名無しさん
NGNG0467デフォルトの名無しさん
NGNG北朝鮮 ko_KP
韓国 ko_KR
0468デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNG0470デフォルトの名無しさん
NGNG「言語_地域」だって判ってる?
0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNG0473デフォルトの名無しさん
NGNG韓国 co_S
0474デフォルトの名無しさん
NGNG0475デフォルトの名無しさん
NGNGそれはQWORD qwHoge;でいいでないかい?
0476デフォルトの名無しさん
NGNGint 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デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNG適当に省略した物を使う。API関係からはこんな感じ。
OPENFILENAME:ofn
WNDCLASS :wc
RECT:rc POINT:pt
476に出ているような基本的な型と違って、複数同時に使うわけでなければそれをそのまま変数名にしていいみたい。
中には何もつけなかったり(classなら俺も大体そう)、structのsを無条件につける人もいるらしい。
ただ s は各種stringクラス類の物として使っている人もいるらしいんで気をつけた方がいいと思う。
(stringクラス類はstrがより一般的と思われるが)
0479デフォルトの名無しさん
NGNG非ハンガリアンで書かれたC++のソースはきれいにモジュール化されている。
なぜ?
0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNG0484デフォルトの名無しさん
NGNGなんでこんなもん使うのか理解できない。
定義にジャンプもできないクソエディタ使ってるから必要なんだろうな。
0485デフォルトの名無しさん
NGNG便利なエディタが無かったときの苦肉の策だ。
もちろん、今となっては無用の長物。
0486デフォルトの名無しさん
NGNG0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNGクラスのメンバ変数に m_ つけるのはすごくわかりやすくていいと思うけど。
困ったことに,引数には "arg_" をつけろとか言ってる。もうやってらんない。
0489デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNGtxtとかlblとか。
0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNG構造化すらしていない時代の遺物,ということですな。
でも,なんでこんなもん使い続けるんだろう。
グローバル変数使いまくりなのかな。
0493デフォルトの名無しさん
NGNGm_とかarg_はハンガリアンにあらず
0494デフォルトの名無しさん
NGNG変数の static変数/auto変数/const変数/関数引数/参照変数/ポインタ変数/メンバ変数
などの性質が変数名だけで分かることは十分に意味がある。これらの種類によって利き方が変わってくる。
0495デフォルトの名無しさん
NGNGポップアップ表示するようなエディタがあれば不要だよね。
0496デフォルトの名無しさん
NGNGg_ な変数は,できるだけ使わないほうがいいに決まってるけど。
メンバ関数の中で,ローカル変数と区別がつくのは便利だと思う。
0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNG綺麗に整列出来ていいと思うんだが。
「環境によってタブサイズが違うから」というのは、今時タブサイズも
変えられないエディタの方が悪いんじゃないのかな。
0500デフォルトの名無しさん
NGNGxxxxxxxx yy
みたいなのをタブで揃えてたときにずれるんだろ。
0501デフォルトの名無しさん
NGNG勘違い野郎のための記法。毎回適切な命名をする知能がない。
低レベルな職場にマジおすすめ。
0502デフォルトの名無しさん
NGNGコードがすべてノンプロポーショナルフォントで書かれるとは思わないほうがよろしい。
0503デフォルトの名無しさん
NGNG漏れは行頭の字下げ以外にはタブを使わないのでプロポーショナルだろうと
等幅だろうと関係ないな。
変数宣言のときはいちいち桁揃えなんてしないし。
0504デフォルトの名無しさん
NGNG0505デフォルトの名無しさん
NGNG構造体初期化なんかではこれをやる。そのほうが観やすい
0506デフォルトの名無しさん
NGNGこれは有効な気がする。
この変数何?って聞かれれば
「あの板名表示するラベルの変数」
って答えになるだろうから、
ラベルを示す言葉が変数名に入るのは
直感的で分かりやすい、と思う。
ラベルって言葉を入れないと、むしろ分かりにくい。
これってハンガリアンとは別の話よね?
>桁揃え
これは揃ってた方が見やすいことも多いけど
人間が必死に揃えるのは時間の無駄に思う。
何のためにエディタが有るのかって話。
これもハンガリアン云々とは無関係か。
0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNG全部じゃないけどそういうの多いね
0509デフォルトの名無しさん
NGNG0510デフォルトの名無しさん
NGNGサンプルでは使いまくりだからな。
0511デフォルトの名無しさん
NGNGint (*panHoge)[];
0512デフォルトの名無しさん
NGNGこっちは添え字省略出来ないよ。
0513デフォルトの名無しさん
NGNGこれぐらい複雑だと少しは役立たない?
0514デフォルトの名無しさん
NGNG0516デフォルトの名無しさん
NGNGテキストの横幅(一行の文字数)を76とか80で制限されている場合、
インデントの幅が変わると問題になるかも。
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNG0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNGグローバルへの直接アクセスは日常茶飯事。
しかも命名するとき長い単語は変数名や型名が長くなるから3文字略称の連続。
g_Cmn_stCtlEvtTblな感じで。
あぁ、stって構造体につける規則になってる。
わけわからん。
g_stHogHog.stMog.stHug.bStatus = TRUE
とかかかれてるの見るともうね・・・
途中参加なんでこのままいくしかなく・・・
0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNG(-∧-;) ナムナム
0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNGJavaだというのに、変数の型とスコープを表すプリフィックスを必ずつけろという。
理由を聞いたら、プログラムの一部を見たとき、変数がローカルかフィールドか
わからないからだという。そりゃ一つのメソッドで数百行にもなってりゃわかる
わけないだろう、と言ったら、今度はメソッドの長さもコーディング規約で決めよう
と言い出した。
0529デフォルトの名無しさん
NGNGコーディング規約 第2条
http://pc5.2ch.net/test/read.cgi/tech/1068752664/
こっちへどうぞ。
なお、プレフィックス=ハンガリアンではありません。
0530デフォルトの名無しさん
NGNGでもプレフィックス=ハンガリアンと思われている現実。
0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNG数百行の長さの関数を書いて喜んでいるバカがここに一人
0536デフォルトの名無しさん
NGNGJava厨って妄想力豊かだな
0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNG0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNG大柴ファンかもな。
0542デフォルトの名無しさん
NGNGそいつのあだ名がハンガリアンだったの思い出して今やるせない気持ちです
0543デフォルトの名無しさん
NGNGグローバル変数も長い関数も使いまくりです。
デバッガは自動変数をモニターできないので
偶に一時的にグローバルにしたりしてます。
なので自己流版画離案もどきは重宝します。
お願い、もっとまともなコンパイラとリソース頂戴。
0544デフォルトの名無しさん
NGNGまったく同じ
0545デフォルトの名無しさん
NGNGクソなのは規約だけじゃなかったようだ。
0546デフォルトの名無しさん
NGNG/ ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
─( ゚ ∀ ゚ )< くっちゃらはぴはぴ!
\_/ \_________
/ │ \
∩ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< くっちゃらはぴはぴ!
Py厨〜〜〜〜! >( ゚∀゚ )/ | / \__________
________/ | 〈 | |
/ /\_」 / /\」  ̄ / /
0547デフォルトの名無しさん
NGNGC++だとメンバ変数にm_がついてないのは勘弁
C#だとあんまり意味ないね
ようは自分の都合だけで書かない心構えさえ出来ていたら
その都度、ベストな出来るはずなんだけど
0548デフォルトの名無しさん
NGNGfloatはどうしようかと考えたらhdを思いついた。
これでいいよな。
0549デフォルトの名無しさん
NGNG0550デフォルトの名無しさん
NGNG0552デフォルトの名無しさん
NGNGどう違うか説明してみろや
どっちも接頭修飾だ
0553デフォルトの名無しさん
NGNG型名をプレフィックスにつけるのがハンガリアン出身のMSのプログラマが考案した本来のハンガリアン記法であって、スコープのはMSがそれと同時に提唱しただけ。
0554デフォルトの名無しさん
NGNGMSDN内でもBOOLはbだったりfだったりバラバラだねえ
0555デフォルトの名無しさん
NGNG0556548
NGNGどこかでhがshortだと書いていたページを見た気がするのだが、今探しても見つからない。
となるとfloatをどうするかは振り出しに。
sはStringだと書いてあるところと、shortと書いてあるところが両方あるから、sdはやめた方が良さそうだ。
やはりBOOL/boolのbを受け入れるしかなさそうだ。慣れれば気にならない(はず)。
0557デフォルトの名無しさん
NGNGp pointer
m_ member
s string
a array
it iterator
r reference
g_ global
コレくらいしか使わない。
boolは大抵isHogeみたいになる。
0558548
NGNGfloat/double/long doubleも同じように d で統一すればいいんだとひらめいた。
今度こそこれでいいよな。
0559デフォルトの名無しさん
NGNG俺も、short, int, long は、 nで共通している。 n は Number の N だから、short だけに使うのは違和感がある。
同様に、float も、d ではなく、 f (float は浮くという意味で、浮動小数点の意) で省略したほうがいいと思うよ。
0560デフォルトの名無しさん
NGNG用途で区別するのはわかりにくい。
組み込みのメモリが少ない状況でやってるから、ヘタに抽象的にできないってのはあるが。
浮動小数点もほとんど使わない。つーか使えない用途だ…
0561デフォルトの名無しさん
NGNG0562デフォルトの名無しさん
NGNGハンガリアンやめた
0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNGそれは、ハンガリアンじゃない
0565デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNG0568デフォルトの名無しさん
NGNGここは思い切って short/int/long/float/double は全部 n にするとか。
整数と浮動小数の違いを意識する必要って、あまりないと思うのだが。
逆に分ける必要があるなら、>560のように、bit長や符号の違いでも
分けるべきだと思う。
0569デフォルトの名無しさん
NGNG0570デフォルトの名無しさん
NGNG変数の型を意識する必要って、あまりないと思うのだが。
逆に分ける必要があるなら、>560のように、bit長や符号の違いでも
分けるべきだと思う。
0571548
NGNGその間はないのかよ。
0572デフォルトの名無しさん
NGNG浮動小数→整数はコンパイラが警告出すから、「整数と小数の区別」で防げる程度の
「予期しない丸め」はハンガリアン使わずとも防げると思うが。
キャスト等で警告を殺す椰子に、ハンガリアンの効果があるとも思えんし。
0573548
NGNGもちろん今まで書いたやつはそのまま放って置くw
0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNGそんな優柔不断ではまとまりに欠ける。
0576デフォルトの名無しさん
NGNGByteはどーする?
MSDNだとBYTEのプリフィックス、n、b、byの3種類あるんだよなあ
0577デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」
―――――――――――――‐┬┘
|
____.____ |
| | | |
| | ∧_∧ | |
| |( ´∀`)つ ミ |
| |/ ⊃ ノ | | ハンガリアン
 ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄ |
0579デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/4774121738/
この本のヒトもアンチハンガリアンっぽ。
0580デフォルトの名無しさん
NGNGszText、cbText 等の単純なカウンタ、一時退避変数とかは
意味を付与するよりハンガリアンの方がすっきり思える
0581デフォルトの名無しさん
NGNG使い分ける意味があるときは i r n (integer real natural)と分けて欲しい。
漏れは、ローカル変数に鍵って idx とか cnt とか、用途でプレフィックス
つけたりするけど、みんなこんなのは名前に淹れてるの?
0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
05/02/05 20:48:28世も末だ
規約で縛りつかなきゃ読めんようなコードを書くやつにコードを書かせるな!
VBでも書いてろ!
0584デフォルトの名無しさん
05/02/14 19:31:32工エエェェ(´д`)ェェエエ工工
半端なソフト屋あがりにハード作らせるなよと・・・
0585デフォルトの名無しさん
2005/04/12(火) 23:34:470586デフォルトの名無しさん
2005/04/13(水) 13:21:02なぜ言語仕様にしないのか
0587デフォルトの名無しさん
2005/04/13(水) 15:56:45符合無整数: uHoge
としてる俺。
0588デフォルトの名無しさん
2005/04/25(月) 20:11:20colorとかscopeとかtypeとかも持たせたら分かりやすいかも
scopeとreferenceはぜひとも欲しいなあ
0589デフォルトの名無しさん
2005/04/25(月) 20:23:25よくわかんないけど、Rubyとかの話か?
0590デフォルトの名無しさん
2005/04/25(月) 20:32:02コードをテキストデータとして書くのが一般的だと思うけど
たとえば
<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そこら辺全部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素晴らしい!その通りですね!!
0593デフォルトの名無しさん
2005/04/25(月) 23:55:41szって何の型なのかおしえろよ
0594デフォルトの名無しさん
2005/04/26(火) 00:01:310595デフォルトの名無しさん
2005/04/26(火) 01:51:12sz : string zero terminated.
0596デフォルトの名無しさん
2005/04/26(火) 16:55:47たまにchar *とかTCHAR *やらWCHAR *に使うやつもいるが。
0597デフォルトの名無しさん
2005/04/26(火) 21:22:47(この点の是非は問わない)までStringインスタンスに
szを付けるヤツがいる。
zがなにだかまるでわからずに付けてるわけだ。
0598デフォルトの名無しさん
2005/04/26(火) 22:35:340599デフォルトの名無しさん
2005/05/20(金) 19:23:24たとえばマップデータをセル区切りで持っていて、実際の座標は3D空間。
こんなときに
MapData
0600デフォルトの名無しさん
2005/05/20(金) 19:46:00ゲーム屋さんだけど便利だなと思うときが
たとえばマップデータをセル区切りで持っていて、実際の座標は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:300603デフォルトの名無しさん
2005/05/22(日) 13:33:310604デフォルトの名無しさん
2005/05/23(月) 23:40:52Making 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キー入力より速い開発手法を確立したら後世に名が残せると思われ
0607デフォルトの名無しさん
2005/05/26(木) 01:30:43モールス信号なんてどうだ
ttp://slashdot.jp/article.pl?sid=05/05/07/2128217&topic=97&mode=thread
0608デフォルトの名無しさん
2005/05/26(木) 22:31:050609デフォルトの名無しさん
2005/05/28(土) 11:49:10> あと速度なら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なかなか反論として説得力あるな。
俺もハンガリアンつかってたが、貶すだけではなくて対案があるといい。
スコープ系
クラスメンバの m_Hoge
グローバルの g_Hoge
ポインタと参照
pHoge
rHoge
とかはどう思う?
0611デフォルトの名無しさん
2005/05/29(日) 14:14:17すぐそこに宣言が見えるからプレフィックスを付ける意味がないと思うようになった。
0612デフォルトの名無しさん
2005/05/29(日) 16:24:320613デフォルトの名無しさん
2005/05/30(月) 06:10:22> ハンガリアンなんぞ使う人は、適切な命名ができないからこんな規約でごまかしてるんだろうという
> 俺の持論がますます強固になったな。
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:27bool isConnectToClient;
とか。
つけない場合はどういう変数名にすればわかりやすいのかな。
あと配列の命名法はどんなのあります?
ハンガリアンに従えばaだけど、じゃぁ二次元配列はaaなのか
stl::vectorとかはどうするのか、aであらわすのもイマイチのように思える。
0615デフォルトの名無しさん
2005/05/30(月) 14:31:01boolにbはちょっと…isは普通に使われていると思います。
変数だけでなくboolを返す関数でもisXxx()が一般的だと思います。
(JavaBeansの命名規約もそうでしたけ)
配列は複数形じゃないんですかね。connectionsとか。
0616デフォルトの名無しさん
2005/05/30(月) 22:38:01isはハンガリアンではなかとです
0617デフォルトの名無しさん
2005/06/13(月) 20:02:09それとも iNum か??
0618デフォルトの名無しさん
2005/06/13(月) 20:05:270619デフォルトの名無しさん
2005/06/13(月) 20:10:510620デフォルトの名無しさん
2005/06/13(月) 21:19:26intは i らしい。nはshortの意を少々含んでいるらしい。
でも俺はlongも含め符号付整数は n で統一している。
0621デフォルトの名無しさん
2005/06/13(月) 21:22:56どもありがとー。
私も全部 n にしまっす!
0622デフォルトの名無しさん
2005/06/13(月) 21:31:11numberNum
と書くべきだと思うぞ。
0623デフォルトの名無しさん
2005/06/13(月) 22:00:32char *m_pStr
でいい? それとも
char *m_sStr
でしょか? まさか
char *m_psStr とか??
>>622
ながいですよー ><
0624デフォルトの名無しさん
2005/06/13(月) 22:03:32あるいはpszHogeも使うがpszStrとはしない。
0625デフォルトの名無しさん
2005/06/13(月) 22:05:25ハンガリアンしている以上
そもそも長いも短いもへったくれもないぞ。
0626デフォルトの名無しさん
2005/06/13(月) 22:12:22pStr ですか。おけ。私はm_pStrにしまっす。
m_ 使わないと、
void cMyclass::set_num (int nNum)
{
m_nNum = nNum;
}
みたいなとき、同じ名前使えなくて困りません?
>>625
も、もしや、まさかマジで>>622使ってる人ですか??
0627デフォルトの名無しさん
2005/06/13(月) 22:24:11そういうときには引数の方を単に n にしたり、メンバ変数をnNumberのように略せず仮引数をnNumみたいに略したりする。
さらにコンストラクタなら同じ名前でもコンパイル通る。
class Hoge
{
int nFoo;
public:
hoge(int nFoo) : nFoo(nFoo) {}
};
0628デフォルトの名無しさん
2005/06/13(月) 22:24:58おうよ。あたぼうよ。
昔はな。
それで、いい加減うんざりして、
いまはストレート派だ。
変数に飾りはいらねえ。
0629デフォルトの名無しさん
2005/06/13(月) 22:52:25あー、それはなかなかいい方法かもですね。 >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:010631デフォルトの名無しさん
2005/06/13(月) 23:07:09mはメンバの意味だから仮引数に付けるのはおかしいだろう。というわけで俺ならこうする。
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:220633デフォルトの名無しさん
2005/06/13(月) 23:36:45>>629 のは、実験的にやってみただけっすw
newの例外ってのは、これからお勉強するので、
よくわからず。
cStrtype::cStrtype (const char *pStr) : m_pStr(new [strlen(pStr) + 1]
↑この記述方は初めて見ました。
色々とありがとうございました m(__)m
0634631-632
2005/06/13(月) 23:38:270635デフォルトの名無しさん
2005/06/14(火) 00:44:500636デフォルトの名無しさん
2005/06/14(火) 23:56:06まぁ変数名なんて、所詮入れ物に付けた名前ですから。
名前なんぞより、中身に合った入れ物を選ぶことの方が大事。
0637デフォルトの名無しさん
2005/07/01(金) 23:56:12配列の前に a_ は付けてる?
あと、座標は
class Tekitou{
int m_nX;
int m_nY;
};
って書くのがベター?
誰かよろ。
0638デフォルトの名無しさん
2005/07/02(土) 00:03:52あるいはPOINTやらCPointにして、そのプレフィックスとしてptを付けている。
0639637
2005/07/02(土) 00:15:37座標はけっこう頻繁に使うっぽいし、
特別扱いしてもいいかな。
どもです m(__)m
0640デフォルトの名無しさん
2005/07/02(土) 00:49:05でも漏れの場合はあんだすこあはつけない。
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:530642デフォルトの名無しさん
2005/07/02(土) 09:17:030643デフォルトの名無しさん
2005/07/02(土) 13:13:26が、IDEの入力補完を使わないとタイプ数が増えてミスが多くなるのでやめた。
0644デフォルトの名無しさん
2005/07/02(土) 18:55:44俺は逆に、ローカル変数以外は暗号みたいな意味不明な省略をした命名とか、
適切な形容詞や副詞を伴わない舌足らずな命名は数年前から一切止めた。
別に入力補完がないならないで全部コピペでいけるでしょ。
俺はマイコンチップのアセンブラなんかも触ってるんだけど、(当然インテリセンスなんてない)
長いラベル名なんかは実際タイプせず全部いちいちコピペしている。
確かに純粋にタイピングの部分だけ見れば、短い変数名を自分でタイプする方が効率的だが、
そのアドバンテージは「この関数の機能はなんだっけ?」いちいち定義部に戻って
確認しなければならない非効率、思考が混乱する非効率、いちいちコメントをつけなければならない
非効率とトレードオフの関係にある。
実際やってみると、冗長と思えるほど明示的な命名をしておいた方が結局は
はるかに効率がいいんだよね。
プリミティブなアセンブラやCでも、.NETでもそれは変わらない。
0645デフォルトの名無しさん
2005/07/02(土) 19:16:38>いちいち定義部に戻
らないと行けない程遠くに離す、なんて事を
>Cでも、.NETでも
やっちまうのが間違いの元のような。
0647デフォルトの名無しさん
2005/07/02(土) 19:39:510648デフォルトの名無しさん
2005/07/02(土) 20:08:05644はローカル変数以外はと枕置いているようだが。
0649デフォルトの名無しさん
2005/07/02(土) 20:14:26まあ、そうなんだけどね。
実際、Java命名からハンガリアンもどきを使った後に、またJava命名に戻ったし。
あー、あれ使えばいいのか。クリップボードの内容を何十個とスタックしてくれるツール。
0650デフォルトの名無しさん
2005/07/02(土) 22:47:140651デフォルトの名無しさん
2005/07/03(日) 00:38:190652デフォルトの名無しさん
2005/07/03(日) 03:00:260653デフォルトの名無しさん
2005/07/03(日) 11:11:51多分オマエが抱いてる感情はアレだ。
都会で流行ったものが、若干遅れて田舎に来たときのソレだ。
0654デフォルトの名無しさん
2005/07/03(日) 12:34:410655デフォルトの名無しさん
2005/07/03(日) 19:54:20。。。。。ハンガリアン以前の問題が
0656デフォルトの名無しさん
2005/07/04(月) 00:17:16あ、もちろん漏れも漏れも。
szBuffer とか wszTemp とか。
説明足らんかったけど、>>640は
null終端でないchar型のバッファ
(何かのセル属性とか)のイメージでつ。
0657デフォルトの名無しさん
2005/07/04(月) 11:51:58配列は複数形でいいのでは。
0658デフォルトの名無しさん
2005/07/04(月) 19:03:36pData
かな。それとも、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システム開発屋から言わせてもらうとだな
他人が書いたソースにこんなクソ変数名があったら殺意覚えるよ。
ソース毎にいちいち書いた奴の俺様命名規約なんて覚えてられねーんだよ。
変数名はだな、プログラムの制御の流れが分かりやすいように
その変数が何に使われているか分かる名前を付けろ。
できればシンプルに省略せずに付けろ。
それが無理(分かりにくい)なら説明的で長い名前を付けろ。
プログラムで大事なのは制御の流れであって型じゃない。
制御の流れを読み辛くする型情報はいらん。
0661デフォルトの名無しさん
2005/07/05(火) 05:27:43ハンガリアン派:実務経験少
非ハンガリアン派:実務経験多
と言う感じがする。
0662デフォルトの名無しさん
2005/07/05(火) 07:59:51説明不足ですみません。
class CMapData {
unsigned char *m_pbyMap;
};
こんな感じの、クラスのメンバです。
とりあえず、↑のヤツで行ってみまっす。
ありがとうございました m(__)m
0663デフォルトの名無しさん
2005/07/05(火) 10:57:30同意。
>制御の流れを読み辛くする型情報はいらん
・・・まあ、そうは思わない奴がハンガリアンなのですw
>>661
その感覚は正しい。
ハンガリアンが初めて文書化されたのは確か1991で
(自分の感覚では)比較的新しい
>>662
質問していい?なんで「Data」って付けるの?
0664662
2005/07/05(火) 14:58:19>なんで「Data」って付けるの?
え?なんとなくなんですが、、
まずいっすかね?
CMpa でいいのかな。
ちなみに私はもちろん実務経験なんてないですよ。
0665663
2005/07/05(火) 15:26:25私のほうは 変数が全てデータなのは当然である とか
クラスにはデータ(集合)と手続きの二面性があるからデータというサフィクッスを付けるべきではない
とかの理由はあるけど、「なんとなく」という情けない理由が返ってくるとは思わなかったw
命名の重要性を軽視していませんか?私がハンガリアンを嫌う理由の一つがこれです。
ハンガリアンにすると命名の重要性を軽視されがちとなる。
#煽っているつもりはないのですが
0666デフォルトの名無しさん
2005/07/05(火) 15:48:53うはwwなんか、ちゃんとした理由が帰ってきたww
>クラスにはデータ(集合)と手続きの二面性があるからデータというサフィクッスを付けるべきではない
これはよくわからないんですが、(私のレベルが低すぎて・・)
>変数が全てデータなのは当然である
ってのは「あー、そうかも。」って感じですねえ。
まだ余裕で修正がきく段階なので、Dataは外しておきます。
ども m(__)m
0667デフォルトの名無しさん
2005/07/05(火) 21:52:11ポインタにp付ける程度
0668デフォルトの名無しさん
2005/07/05(火) 22:05:13有意義な場合があると思うけどね。
あと特殊な例だとアドレッシングモードっていうかメモリ空間が複数あるような
マイコンチップのアセンブラ書くときにメモリ空間の種類をプリフィクスすると便利だな。
まあマイコンのアセンブラなんて隙間産業で働いてる奴はそんなに居ないと思うが。。
0669デフォルトの名無しさん
2005/07/06(水) 00:33:07その変数の使い方を見れば大体分かると思うんだが・・・
pを付ける利点が分からん。
0670デフォルトの名無しさん
2005/07/06(水) 00:37:160671デフォルトの名無しさん
2005/07/06(水) 00:52:27もったいぶらずに具体例で教えてよ。
0672デフォルトの名無しさん
2005/07/06(水) 00:54:250673デフォルトの名無しさん
2005/07/06(水) 01:13:49「わかる」というのと「明示的にわかる」というのは違うでしょ。
そりゃ遅かれ早かれコード読めばわかるよ、pなんて付けようが付けまいが。
ただ、そんな非生産的なことに脳力を割きたくないだけ。
0674デフォルトの名無しさん
2005/07/06(水) 02:12:05例えば
char hoge[10];
0675674
2005/07/06(水) 02:33:35>669
例えば↓のhogeとphogeは、型は同じですが「違い」があります。
また、その「違い」には注意しないと、かなり痛い目に合います。
なのでpは付けるべきかと思うのですがいかがでしょうか。
char hoge[10];
char *phoge;
同じ理由で、pを他の(型を表す)プレフィクスとを同系列に語るのはどうかと思います。
例えばpを型とみなすなら、↓の書き方は変ですよね。
char szHoge[] = "";
char *pszHoge = "";
0676デフォルトの名無しさん
2005/07/06(水) 17:06:06そのhogeとphogeは型も違う。hogeはchar [10]型であって、char *ではない。
0677デフォルトの名無しさん
2005/07/06(水) 18:10:40>みんなだってポインタの先頭には「p」とか書くだろ?
書かないよ。せいぜいFILE構造体のポインタ「fp」くらいだ。
0678デフォルトの名無しさん
2005/07/06(水) 22:05:55今まで痛い目にあったこと無いんだけど、どんな痛い目にあったの?
文字列リテラルはconst char *で受け取るから書き換えるなんて出来ないし。
0679デフォルトの名無しさん
2005/07/06(水) 22:44:03Xと書くよりはnXのほうが情報量が多い。
nXと書くよりはXIndex, XCountと書くほうが情報量が多い。
情報量とタイプ量のバランスをとればええんちゃうの。
0680デフォルトの名無しさん
2005/07/06(水) 22:52:32そんな変数名だけで殺意覚えてなんかメリットあるかなぁ?
他人の書いたソースなんか自分の考え方が違って当然で、
冷静に読めたほうがいいと思うけど。
いちいち自分の書き方と違うことに腹立ててたら仕事はかどらん。
0681デフォルトの名無しさん
2005/07/06(水) 22:55:40>char [10]型
Cにそんな型はないでしょ。ドトネトじゃないんだから。。
Cの配列はポインタのシンタックスシュガーって耳タコのネタじゃん。
ただ、>>675のご説はちょっとね。っていうか意味わかんない。
俺はポインタ変数にpをつけるのは意義がある、という立場だが、
それは「値」と「値への参照」では意味論的に全然違うわけだが、pXXXXは
この意味論的な違いを簡潔に表現する、しかもかなり一般化された(したがって
そのコードを読む者全員にその意味が通じることを期待できる)方法だから。
0682デフォルトの名無しさん
2005/07/06(水) 23:02:50配列のシンタックスシュガーは演算子の[]だけ。変数宣言には関係ありません。
http://www.kouno.jp/home/c_faq/c6.html#2
0683デフォルトの名無しさん
2005/07/06(水) 23:22:03何言ってんのそんなの当たり前じゃん。。
話の文脈がわからないのかな?
>>676をもう一度読んでくれ。話はそれから。
0684デフォルトの名無しさん
2005/07/06(水) 23:25:39だからさ、Cでもchar [10]という型は存在しうる。
あちこちですぐにchar *へ成り下がるけど。
0685デフォルトの名無しさん
2005/07/07(木) 00:08:040686デフォルトの名無しさん
2005/07/08(金) 00:24:11と聞いてもムダか。
なんでこういう輩は具体的に聞くと逃げるのか?
0687デフォルトの名無しさん
2005/07/08(金) 00:32:40675じゃないし痛い目ってほどじゃないけど、sizeof(&hoge)とsizeof(&phoge)
は違う値になるよね?自分はpなんかつけないけど(型検査してくれる言語で型
を変数名に付けたくなる状況はそんなに多くないと思うんだけど)。
0688デフォルトの名無しさん
2005/07/08(金) 07:49:18#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マジレスだけど、痛い目にはあってないんでしょ。
当然じゃん。
いつもポインタ変数にはpをつけることを習慣にしてるんだから、
痛い目なんてあいようがない。
0690デフォルトの名無しさん
2005/07/08(金) 10:29:40sizeof(&hoge)==sizeof(char [10])だよ。
0691デフォルトの名無しさん
2005/07/08(金) 11:53:17引継ぎしろなんて言われると死にそうになる。
>>660
ゲーム開発屋から言わせてもらうと、単純に「data」なんてかかれた変数名があったらそいつ殴りに行く。
バイナリーデータなのか、テキストデータなのかもわからん。
配列なのかポインタなのかもわからん。
いちいち宣言を参照しろだ?
時間に追われない趣味の人だけどうぞ。って感じ。
カーソルを合わせれば型情報が出る?
はぁ?プリントアウトもせずに読めるくらいの量しか扱ってないの?
つまり、ハンガリアンってのは「スピーディーに、実務で使うことを念頭に考え出された」技術。
理論上で言えば、型情報を意識しないで済む実装にこしたことはないに決まってる。
0692デフォルトの名無しさん
2005/07/08(金) 11:59:430693デフォルトの名無しさん
2005/07/08(金) 12:28:43変数の宣言個所と使用されている個所の距離が長いのかな?
0694デフォルトの名無しさん
2005/07/08(金) 12:38:46まあネタだと思うけど、必要なのは変数の「意味」がわかるような
命名をすることであって「型」ではないな。
>>693
ボケる方も馬鹿なら突っ込む方もアホだね。
そういう問題かよ。w
0695デフォルトの名無しさん
2005/07/08(金) 13:04:55そして「プリントアウト」で笑う理由がわからん。
引き継いだスパゲッティーソースはプリントアウトが基本だろ。仕事でやってるなら。
>>694
>必要なのは変数の「意味」がわかるような
>命名をすることであって「型」ではないな
ゲームだと、型が滅茶苦茶大事になるのね。
っていか、型情報が大事にならないようなきっちりとしたプロジェクトなら、
ハンガリアン使おうが使うまいが、命名がセンスあろうがなかろうが、どうでもいい希ガス
0696デフォルトの名無しさん
2005/07/08(金) 13:09:09変数の意味。
これはバイナリー配列のデータですよ。
という重要な意味を伝えるための記法こそが、ハンガリアンだろ。
0697693
2005/07/08(金) 13:32:23>そういう問題かよ。w
そうなんですか?。だとしたら
「なぜハンガリアンを使うのか」がわからなくなりました。
知っているなら回答下さい
0698デフォルトの名無しさん
2005/07/08(金) 13:33:45DirectXSDKとかnVidiaのサンプルにもハンガリアンなの多いし。
これらの要因を考えるに3Dには型が重要だからだと感じる
同じViewという変数があるにしてもあるときはベクトルでありまたあるときは行列かもしれない。
こういうときは変数名に型を指定してこそ、
WorldVector - ViewVector ベクトルの引き算だからViewからWorldへの方向ベクトルと意味が取れる。
WorldMatrix * ViewMatrix 行列の掛け算だから行列の合成と意味が取れる。
んで>>679にある情報量を保存したままタイプ量を減らすということで
ViewVectorならvViewのほうが楽や。
ViewMatrixならmatView さらに略すならmViewでも区別できるわちゅーことなんでは。
0699デフォルトの名無しさん
2005/07/08(金) 13:39:53unsignedかそうでないかとか、超重要じゃん?
(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>「すぐ上に書かれてるだろうから探せ!」はとてもじゃないがプログラマのセリフとは思えない。
>ドカタプログラマ?と頭を疑ってしまう。
ふーん。「探せ」という言い回しから
本当に探さなければいけないようなソースに塗れていることが想像できますね。
>エディタの参照機能は強力だが、プリントアウトが必要な長大なソースの場合致命的だ。
プリントアウトについてはこれを全くしないプログラマも多く、前提とか当然とか考えるのはいかがなものか
長大な関数/メソッドをメンテナンスしなければならないのはお気の毒です。
だが仮に長大な関数/メソッドの存在がハンガリアン使用の正当性を裏付けるものであったとしても、
長大な関数/メソッドの存在自体の正当性は何をもって裏付けますか?
>さて、ハンガリアン以上の結論を楽しみにしている。
「ハンガリアン以上の結論」を出す自信はありませんが。
長大な関数/メソッドを書く代りに、型情報については「すぐ上にあるから見ればすぐわかる」
という関数/メソッドを書く というのはどうでしょうか。
#どちらがどちらの代替案なんだかw
0704デフォルトの名無しさん
2005/07/08(金) 16:30:22> という関数/メソッドを書く というのはどうでしょうか。
魅力的な解決案だ。
メモリーとCPUパワーが潤沢な状況下では俺でもそう書く。
「昨今はメモリーやCPUパワーもありあまっているので、ハンガリアンは必要ない」
とでも主張したいのか?
逆に言えば「メモリーやCPUパワーが余っていない環境」ではハンガリアンは非常に強力なパワーを持つ。
なのにハンガリアン自体を否定する意味がわからん。
「いまどきCOBOLなんて使わねーよwwww」って言ってる馬鹿と変わらん。
ハンガリアン自体を否定したいのなら、後者のような環境でハンガリアンにとってかわる方法を提案してくれ。
0705デフォルトの名無しさん
2005/07/08(金) 17:20:13関数/メソッドの粒度を下げれば良いと言いました。
粒度を下げることによって確かに関数/メソッドの参照のオーバーヘッドは増加します。
メモリーとCPUパワーに余裕がなく、この種のオーバーヘッドも許容出来ない
と言う状況の存在自体が信用し難いものがあります。
そのような状況下で、なぜコンパイラ言語を使うかわからないからです。
いや信用しないわけではありません。
「そのような特殊な開発環境下ではハンガリアンが当然である」との表明にも反対はしません。
ハンガリアン自体の否定などしませんよ。ご自身の開発環境が特殊だと正しく認識しておられるならば
0706デフォルトの名無しさん
2005/07/08(金) 17:31:480707デフォルトの名無しさん
2005/07/08(金) 17:32:220708デフォルトの名無しさん
2005/07/08(金) 17:37:07ハンガリアンの是非はともかくとして、関数化を極力避ける環境が特殊って…。
湯水のごとく好き勝手できる環境のほうが特殊だよ。
0709デフォルトの名無しさん
2005/07/08(金) 17:55:18長大な関数なんかは、ハンガリアンに関係なく不可で関係ない。
1画面ですべて収まるような小さなクラスでもない限り、
メンバ変数の宣言とメソッドの実装ではどうやっても距離が離れると思うが。
0710デフォルトの名無しさん
2005/07/08(金) 17:57:46ハンガリアン人は本当に原始人だらけですねプゲラ
0711デフォルトの名無しさん
2005/07/08(金) 18:04:13ローカル変数にはWinAPIの構造体1つを引数にするような関数用の変数とポインタのp程度しか使わない。
0712デフォルトの名無しさん
2005/07/08(金) 18:05:080713705
2005/07/08(金) 18:06:08消えた方が良いですか?
>>708
私は職歴10年を超えるプログラマです。「どちらが特殊なのか」について議論する気はありません。
しかし「関数化を極力避ける環境が特殊である」という見解は変えませんが。
ご自分の開発環境が特殊だと言われて不愉快に思われたなら謝罪します。
しかし今現在、PCプラットフォームにおいてもその種の制限は無くなっています
参考のためにあなたの開発対象システムの「CPUとメモリ量」を回答してもらえませんか
0714デフォルトの名無しさん
2005/07/08(金) 18:12:43俺的にはクラスとは概念、機能とかでまとめていくものだと思っていたが、
1画面越えると分割していくものだったのか。
0715デフォルトの名無しさん
2005/07/08(金) 18:38:08ご指摘のとおり。
しかしながら、メンバ変数/クラス変数の問題について語り始めるとスレ違いになるのは避けられません。
「OOPLにおいてはハンガリアンは必須だ」というご見解でなければ、上の1行を回答とさせてください
0716デフォルトの名無しさん
2005/07/08(金) 19:02:07ハンガリアンの是非について語るスレで「ハンガリアン自体の否定などしませんよ」といいながらハンガリアン批判しているんじゃ邪魔なだけ。
コウモリもいいとこだ。
0717デフォルトの名無しさん
2005/07/08(金) 19:03:23>>707のような携帯JAVAに限らず、今商売として成長中の携帯系プラットフォームでは
CPUやメモリを潤沢に使うことなんてできないのは覚えておいたほうがいい。
0718705
2005/07/08(金) 19:18:00「基本的には否定するが、特殊な環境下では否定しきれない」と言ったつもりですが。
了解。消えますよw
>>717
ああなるほど。勉強になりました。「特殊」と言ったのは言い過ぎでした。
ごめんなさい。
開発環境/動作環境の違いを無視して語ることは難しいテーマなのかもしれませんね。
0719デフォルトの名無しさん
2005/07/08(金) 19:40:37なんか倒錯してるねえ。。
コーディングの最中もし「型が知りたい」なんて思ってしまうとしたら、
それは変数名のセンスが悪いから。
さらに敷衍していえば、変数名のセンスが悪いのは、恐らくモデリングのセンスがないから。
対象をどのようにモデリングしているかに対するビジョンが明確じゃないから。
0720デフォルトの名無しさん
2005/07/08(金) 20:37:26具体的に>>698の例だとどんな変数名つける?
0721デフォルトの名無しさん
2005/07/08(金) 20:46:26>コーディングの最中もし「型が知りたい」なんて思ってしまうとしたら
他人のソースだから、当然思う。
>それは変数名のセンスが悪いから
センスのいい名前をつけろ! と言って新人がつけられるなら苦労しない。
だからハンガリアンというルール生まれた。
倒錯してるのは君。
ハンガリアン以上に「センスの無い人もある程度わかりやすい変数名をつけられるようにする」ためのルール」をしめしてくれよ。
0722デフォルトの名無しさん
2005/07/08(金) 21:18:510723デフォルトの名無しさん
2005/07/08(金) 21:25:21センスの無い奴もうまく扱うのが仕事人。
0724デフォルトの名無しさん
2005/07/08(金) 22:01:17俺のコーディングは素晴らしい!みんなもすぐ理解してくれるはずだ!
俺のソースはきれいだし。
ハンガリアンなんて使わないのが理想だもんな。俺コーディング最高!
な理想主義者なんだよな。
0725デフォルトの名無しさん
2005/07/08(金) 22:02:59ここは仕事人の板ではなくプログラム技術の板
0726デフォルトの名無しさん
2005/07/08(金) 22:52:41いつから「現実に即していない未来プログラム技術専用」の板になったんだ?
携帯プログラムや、組み込みプログラムのスレだってあるわけだが。
0727デフォルトの名無しさん
2005/07/09(土) 00:04:15あまりに多くの型が出来るため、ハンガリアンではどうしてもムリが生じる。
ハンガリアンで即座に型を理解できる?ハハ面白いことを言うね。
0728デフォルトの名無しさん
2005/07/09(土) 00:08:57プリミティブはすぐわかるじゃないか
#と、反対派の俺が弱弱しく反論してみるw
0729デフォルトの名無しさん
2005/07/09(土) 00:18:550730デフォルトの名無しさん
2005/07/09(土) 00:28:530731デフォルトの名無しさん
2005/07/09(土) 01:11:500732デフォルトの名無しさん
2005/07/09(土) 01:15:52独自クラスについてはプロジェクト内で拡張しろよ。
なんでお前がどんなクラスをつくるかを予測して、1から100まで先駆者が用意してると思えるんだ。
0733デフォルトの名無しさん
2005/07/09(土) 01:18:510734デフォルトの名無しさん
2005/07/09(土) 01:38:10あとプレフィックスが組み合わさるのもイマイチだと思う。
ということで配列のプレフィックスにa使うよりは複数形の単語を使うほうがよさそうに思える。
0735デフォルトの名無しさん
2005/07/09(土) 01:39:38うちの会社はbyte m_aabyData[10][10];とかやるけど。
0736734
2005/07/09(土) 01:48:10そっそ、おれもaaとかやってたけど、どーもなーと思う。
こーゆープレフィックスが重なることが反対派からみたら見づらいといわれる要因になってると思う。
代案はhoge2D[10][10]とか?反対派からのセンスあふれる代案希望。
0737デフォルトの名無しさん
2005/07/09(土) 04:01:02hoge[10][10]
・定義部に変数の構造についてしっかりコメント
・上記変数を使う場合は添字に説明的な名前の変数or定数(列挙定数)を使う(+コメント)
つか、hogeが何に使われるものなのか分からないので名前は付けられない。
> m_aabyData[10][10];
・・・・。
いやね、それがちゃんとコーディング規約になってて
チームできっちり守られているならまあいいとは思うんだけどね・・・。
0738デフォルトの名無しさん
2005/07/09(土) 09:17:12メンバー変数の、BYTE型の、二次元配列だな
と一目見て分かるのは強力だな
0739デフォルトの名無しさん
2005/07/09(土) 09:49:020740デフォルトの名無しさん
2005/07/09(土) 10:14:42・・・情報量がイマイチ
0741デフォルトの名無しさん
2005/07/09(土) 11:15:100742デフォルトの名無しさん
2005/07/09(土) 11:22:43そのセリフはつまり、IDEでもりもり作業できればハンガリアンなんて必要ないってことだろ。
できない状況なら?
0743デフォルトの名無しさん
2005/07/09(土) 11:24:350744デフォルトの名無しさん
2005/07/10(日) 10:51:15研究所の博士が言うことは正しい。確かに理論上正しい。
だが実戦で使えるかどうかは別問題。
命中率99%を誇る銃とのたまったって、新兵が弾丸飛び交うジャングルで撃つ際その精度は保てない。
0745デフォルトの名無しさん
2005/07/10(日) 11:08:09マイクロソフトのハンガリ君が言うことは正しい。確かに理論上正しい。
だが実戦で使えるかどうかは別問題。
命中率99%を誇る銃とのたまったって、新兵が弾丸飛び交うジャングルで撃つ際その精度は保てない。
0746デフォルトの名無しさん
2005/07/10(日) 11:16:210747デフォルトの名無しさん
2005/07/10(日) 11:32:38ハンガリアンは、そのルールが確定しているのだから新兵だろうがなんだろうが使えるだろうに。
「分かりやすくセンスのいい変数名をつけろ」なんて言われても、新兵はどうしていいやら。
0748デフォルトの名無しさん
2005/07/10(日) 11:47:57おまえらは新兵の時に思っちゃったから、今の惨たらしい現実があるんだよ。
>744
研究所の博士とかどっから出てきたの。妄想乙
ハンガリアンは現場で生まれて、現場で消えていったよ。
0749デフォルトの名無しさん
2005/07/10(日) 11:50:21命名規則で杓子定規に決めてあげる。という発想自体が誤りだと思うな。
加えてハンガリアンてプレフィックスだけでそ。
変数本体の名称を決められないという問題は全然解決しないじゃないか。
ハンガリアンの存在理由のなかに「変数名を決める」は入っていないと思うけど。
入っているの?
0750デフォルトの名無しさん
2005/07/10(日) 12:02:39すげえ…例え話にマジツッコミいれてる…
0751デフォルトの名無しさん
2005/07/10(日) 12:06:48博士のたとえは、博士=非ハンガリアンじゃないか?
>>749
おいおい。
例えば「データ」を扱う変数名なら、新兵だって「Data」と名づけるだろ?
問題は「それはどのようなデータか」をどう伝えるかだ。
それをハンガリアンは「メンバー変数だからm_, BYTE型だからby, 二次元配列だからaa」と決めている。
じゃあ非ハンガリアンはどうするのか。
まずはこれを提示して欲しい。
「センスのいい変数名をつけろ!」と言われてつけられる。もしくはつけられるまで勉強だけしていればいい。
そういう状況ならなんら問題はないのかもしれんが…。
0752デフォルトの名無しさん
2005/07/10(日) 12:19:030753デフォルトの名無しさん
2005/07/10(日) 12:24:53使われてるの?
0754デフォルトの名無しさん
2005/07/10(日) 12:29:13むしろ、ハンガリアンを使わずに済むプロジェクトってどんなのだ?
各自完全分業で、完全自社開発?
0755デフォルトの名無しさん
2005/07/10(日) 12:38:28「変数名に任意のプリフィクスを付ける命名法」という意味で言ってるのか?
0756デフォルトの名無しさん
2005/07/10(日) 12:51:45>例えば「データ」を扱う変数名なら、新兵だって「Data」と名づけるだろ?
付けない。Dataなんて変数名は良い変数名とはいいがたい
>問題は「それはどのようなデータか」をどう伝えるかだ。
あのさ、肯定派がそれを主張するのは勝手だけど、
既定の事実の様に記述しないでくれないかな。議論にならないじゃないか。
データ型が重要だという主張をしているってことは理解したよ
その重要性が変数本体の名称の重要性よりも高いのか低いのか
を回答して欲しいのだけれど
>それをハンガリアンは「メンバー変数だからm_, BYTE型だからby, 二次元配列だからaa」と決めている。
>じゃあ非ハンガリアンはどうするのか。まずはこれを提示して欲しい。
上記でそちらの主張を既定の事実の様に書くから、ここで「まずは」と書けるんだね。
ちょっと上を見ればすぐデータ型がわかるようなコードを書く。
上の方のレスを読んで、そのような事が出来ない人達がいることは判るけれど、
それが可能な環境ではそうする。
0757デフォルトの名無しさん
2005/07/10(日) 13:19:31> 付けない。Dataなんて変数名は良い変数名とはいいがたい
すげえ。断定だよ!
お前はおサルさんでも部下に持ってるのか!?(そこまでアホな奴には、非ハンガリアンなんてもっと無理だ!)
>ちょっと上を見ればすぐデータ型がわかるようなコードを書く。
あれ?その上では型はさして重要じゃないようなことを言っているのに、急に翻ったぞ??
「型」は重要なの?重要じゃないの?
ハンガリアン記法を使っている人間は、もちろん重要だと思っているよ。「変数本体の名称の重要性と同じくらい」ね。
>それが可能な環境ではそうする
まったくだね。
で、新兵にはなんて言えばそれを実行してくれるのかな?
ハンガリアン記法を新兵に守らせるのは簡単だ。
ハンガリアン記法を解説している紙の一枚も手渡せば明示的だ。
だが「ちょっと上を見ればすぐデータ型がわかるようなコードを書け」といってもなんら明示的ではない。
人によって10行上を「ちょっと上」と判断するものもいれば、100行上をそう判断するものも居る。
きっと君の意見をコンパイルするとこう怒られるよ。
「error: 'ちょっと上'の定義が曖昧です」
0758デフォルトの名無しさん
2005/07/10(日) 13:32:02ハンガリアン肯定派=変数の「型」を重視して命名
ハンガリアン否定派=変数の「意味」を重視して命名
でFA?
756ではないがハンガリアン否定派の俺としては
Dataなんて変数名はいかなる状況でもありえないと思う。
たいていの変数は何らかのデータを表しているわけで。
0759デフォルトの名無しさん
2005/07/10(日) 13:41:48int 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:380762デフォルトの名無しさん
2005/07/10(日) 13:56:270763デフォルトの名無しさん
2005/07/10(日) 13:59:29>>761 感情論。具体的代案皆無
0764デフォルトの名無しさん
2005/07/10(日) 14:02:56糞環境の方が今や少ないんだから、
糞環境使ってるお前の会社内の掲示板内で
ハンガリアンは有効だと吼えてろよw
2chでピーチクパーチク囀るなw
0765デフォルトの名無しさん
2005/07/10(日) 14:04:56さすが妄想プログラマーw
理想的環境ばかりで働けるなら、さぞやプログラマーは楽な商売でしょうね。
研究所の中だけで吼えていてください。
0766デフォルトの名無しさん
2005/07/10(日) 14:08:280767デフォルトの名無しさん
2005/07/10(日) 14:10:04つうか具体的に何の仕事に何年従属してるか教えてくれw
俺ゲームプログラマ5年目ね。
0768デフォルトの名無しさん
2005/07/10(日) 14:10:06俺仕様の世界でしか働けないなら、他人と連携とるのもままならん。
0769デフォルトの名無しさん
2005/07/10(日) 14:11:250770デフォルトの名無しさん
2005/07/10(日) 14:12:48バーカ
糞環境の古い常識を新しい環境に持ち込まれる方が今や迷惑なんだよ。
ハンガリアン付けないと働けないドアホが言うなw
0771デフォルトの名無しさん
2005/07/10(日) 14:14:07何を主張したいか全然わからん
0772デフォルトの名無しさん
2005/07/10(日) 14:14:32どこの誰がC#やJAVAにハンガリアン持ち込めなんて言ったんだ?
被害妄想もいいとこ。
>>1読め。
>C/C++みたく型付けが強い言語ではハンガリアンって有用じゃないだろうか。
と書かれてるだろが。
0773デフォルトの名無しさん
2005/07/10(日) 14:17:54>どこの誰がC#やJAVAにハンガリアン持ち込めなんて言ったんだ?
それはこっちのセリフだよw!
新しい環境=JavaやC# と俺言ったか?
反論すればいいってもんじゃねーだろw
0774デフォルトの名無しさん
2005/07/10(日) 14:19:00その糞環境の古い常識で作られたOS。実機上でプログラム組まさせてもらっている坊やがいきがるなよw
まさかVisualStudioはVisualStudio上で作られたとか思ってんじゃねーだろーなw
0775デフォルトの名無しさん
2005/07/10(日) 14:20:26ハンガリアン使いたい人は勝手に使えば?
0776デフォルトの名無しさん
2005/07/10(日) 14:21:27だからさ、そのクソクラスは何なの?
何に使うの?何のために使うの?
なんでm_aabyDataが多次元配列になってるわけ?
他人が読むってことをまったく考えてないでしょ。
ハンガリアン以前の問題だな。
0777デフォルトの名無しさん
2005/07/10(日) 14:21:53時代に付いていけない、永遠の坊やが何を言ってるのw
結論
糞環境の皆さんはハンガリアンを使ってください。
あなたの会社内でハンガリアンは有効だと主張してください。
しかし、2ch等の、一般的に非糞環境な人が多いところで
一生懸命ハンガリアンが有効だと吼えないでください。
0778デフォルトの名無しさん
2005/07/10(日) 14:22:200779デフォルトの名無しさん
2005/07/10(日) 14:22:550780デフォルトの名無しさん
2005/07/10(日) 14:23:01ここはハンガリアンについて語るスレなんだが。
「非糞環境について語ろうぜ」スレでも立てて、そこで吼えててくださいな。
0781デフォルトの名無しさん
2005/07/10(日) 14:25:01>だからさ、そのクソクラスは何なの?
>何に使うの?何のために使うの?
それはプロジェクトで決まってることだから、ハンガリアンとはまったく関係なし
>なんでm_aabyDataが多次元配列になってるわけ?
何かしらそうする理由があったんだろ。
例えばセーブデータが冒険の所ごとに分かれてるとか。
これまたハンガリアンとはまったく関係なし
0782デフォルトの名無しさん
2005/07/10(日) 14:25:06ハァ?反論できないといつもその手だなw
0783デフォルトの名無しさん
2005/07/10(日) 14:29:24その「いまさらCOBOL使ってるなんてアホじゃねーのwwww」という論法どうにかならんのか?
需要があり、金になるからまだCOBOLがあるわけなんだが。
0784デフォルトの名無しさん
2005/07/10(日) 14:32:43バーカ。
古い糞環境の奴らはハンガリアン使えばいいって言ってるだろw
それをさも本流かのように2chで喚くなと言ってるんだよw
古い資産を活用するためにはCOBOLは有効だけど、
新規開発するのに今更COBOLは叩かれて当然だろw
0785デフォルトの名無しさん
2005/07/10(日) 14:35:39同様に、糞環境でプログラムを組んでもらう必要がある。そういう需要があるからこそハンガリアンはまだあるのではないのか?
「糞環境」な仕事を誰も引き受けなかったら、そのプロジェクトは一体どうなってしまうのやら。
>>784
?????
これほどの馬鹿は久々に見た。プログラムをやっている人間とは思えない非論理的な意見。
「さも本流かのように2chで喚くな」って、ここハンガリアンスレなんだが。
そして自分の中で「古い〜略」て結論がでているなら、もうこのスレに書き込む必要無いだろ。
0786デフォルトの名無しさん
2005/07/10(日) 14:36:34お前w
COBOLスレでCOBOLの話してるところに割って入って「いまさらCOBOLなんてアホwww2chでCOBOLの話なんてすんなwww」とか喚くのか?
0787デフォルトの名無しさん
2005/07/10(日) 14:38:54肯定派「ハンガリアン守ってもらわないと変数型がすぐにはワカラン」
否定派「すぐにわかるようなコードにしろ」
肯定派「新人にはそんなコードは書けない」
・・・なんだか最後の意見は
「教育コスト負担を放棄するための方便としてのハンガリアン記法」
に聞こえるな。
0788デフォルトの名無しさん
2005/07/10(日) 14:39:24あー…。ちょっとすまん。
もしかして君は、CやC++でプログラムを書く時ハンガリアンを使わないのかね…?
0789デフォルトの名無しさん
2005/07/10(日) 14:39:32ここはハンガリアン賛美スレじゃねーだろが
「ちょっと待て!ハンガリアン」スレだそ
ハンガリアン否定されたくらいで、糞環境と罵られたくらいで怒るなら
「ハンガリアン最高スレ!糞環境の中心でハンガリ愛を叫ぶ」スレ
でも立ててそこに引き篭もってろw
そこには手を出さないでやるからw
0790デフォルトの名無しさん
2005/07/10(日) 14:42:58だから、なんでハンガリアン自体を語るスレなのに「糞環境なのが悪い」とかそういう結論になるのだ?
・ハンガリアンは糞環境でしか役に立たない
という意見は
・ハンガリアンは糞環境で役に立つ
という意見と同義だろ?
0791デフォルトの名無しさん
2005/07/10(日) 14:43:16同意
#あんまり煽るとヨクナイよ
0792デフォルトの名無しさん
2005/07/10(日) 14:43:44よく考えろ低脳。
自分の中でハンガリアンが有効だと結論が出てるなら、
お前もこのスレに書く必要はないだろ。
0793デフォルトの名無しさん
2005/07/10(日) 14:47:07少し違う
・ハンガリアンは糞環境では役に立つ場合がある
0794デフォルトの名無しさん
2005/07/10(日) 14:50:31それもそーだなw
>>792
俺は「自分では有効だと思うが、それ以上の代替案があるなら知りたい」と思ってるんだが。
0795デフォルトの名無しさん
2005/07/10(日) 14:52:09だからねぇ坊や。「糞環境なのが悪い」とか結論出してないでしょ。
勝手に意見捏造すると話が進まないでしょ。
糞環境の人でハンガリアンが有効だと信じてる方は使ってくださいね。
2chでハンガリアンが有効だと主張するときは
まず自分の環境は今時の水準からすると糞なのだと念頭に置いてください。
そして、最新の環境ではハンガリアンは害悪にしかならないということも頭に入れてください。
0796デフォルトの名無しさん
2005/07/10(日) 14:53:570797デフォルトの名無しさん
2005/07/10(日) 14:56:26>そして、最新の環境ではハンガリアンは害悪にしかならないということも頭に入れてください。
つまり、例えば君がオープンソースでソースコードを公開するとき横にこう書かれるわけだ。
「最新の環境でソースを読んでくださいね」
( ゚Д゚)…
0798デフォルトの名無しさん
2005/07/10(日) 14:59:270799デフォルトの名無しさん
2005/07/10(日) 15:00:00言いたいことがあるなら、はっきり言えばいいのに。
もうグゥの音も出ないってこと?
0800デフォルトの名無しさん
2005/07/10(日) 15:00:55( ゚Д゚)…
それが反論になってると思ってるの?
0801デフォルトの名無しさん
2005/07/10(日) 15:02:42・最新の環境の前ではハンガリアンは無意味。読みにくくなるだけ
ハンガリアン推奨派
・最新の環境だけで仕事できるわけでもあるまいし、ハンガリアン全否定する必要なくね?
ハンガリアン否定派
・全否定はしないよ。糞環境でがんばってくださいねw
↑
ここで煽るからこじれる。
0802デフォルトの名無しさん
2005/07/10(日) 15:04:38ハンガリアン否定派
・最新の環境の前ではハンガリアンは無意味。読みにくくなるだけ
ハンガリアン推奨派
・最新の環境だけでしか仕事出来ないのかよ?
↑
ここで煽るからこじれる。
0803デフォルトの名無しさん
2005/07/10(日) 15:07:12いや、そこは見事なまでにつっこみ所だろ。
0804デフォルトの名無しさん
2005/07/10(日) 15:08:27まぁ周りには居ないからいいけどさぁ。
もし最新環境でハンガリアンしてたらぶっ殺すよ。
0805デフォルトの名無しさん
2005/07/10(日) 15:10:13もうそんな機能がついたモノが出てから何年経ってると思ってるのかと。
新しい環境に適応できない生物は滅びるよ?
0806デフォルトの名無しさん
2005/07/10(日) 15:12:080807デフォルトの名無しさん
2005/07/10(日) 15:13:24ぬるい環境(別に馬鹿にしているわけではない。俺だってぬるいほうがいい)から見下ろして「いまさらあんなこと(ハンガリアン)やってるよww」
とか笑ってられるうちが華よ。
「ソースコードは持ち出し禁止です。プリントアウトしたものを持っていってください」
なんてプロジェクトに当たらないといいな。俺も当たりたくなかったw
0808デフォルトの名無しさん
2005/07/10(日) 15:16:480809デフォルトの名無しさん
2005/07/10(日) 15:18:14ほんとハンガリアン以前の問題だな。
その例でも実際のソースでも型情報だけ明示的になっても意味ねーだろがバカw
代案もクソもねーだろw
何のためなのかを伝えることが疎かになってるっつってんだよ。
0810デフォルトの名無しさん
2005/07/10(日) 15:18:52俺だって意味わからんから。
一度詰め寄ってみたけど「規則ですから」しか返ってこねーし。規則決めた人間もう会社にいねーしw
しかしすまん。ハンガリアンと直接関係ないな。
興味持ったらプログラマー板にでもきてくれ。
0811デフォルトの名無しさん
2005/07/10(日) 15:28:39見直したら意外にプリフィクスが見難かったので脱退した。
英単語に余計なもん付いてると読みにくいよホント(´・ω・)
0812698
2005/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:56757に実例が書いてある。規約化の現実の有無がそんなに重要か?
0816デフォルトの名無しさん
2005/07/10(日) 17:31:01>ハンガリアンを規約として位置付けることは多い。
少なくとも複数の業界・会社を渡り歩いて数多くのプロジェクトを見てこないと
こんな発言はできないと思うけど。
答えないってことは大して見てきてないんでしょ?
なんでそんな嘘つくの?
>規約化の現実の有無がそんなに重要か?
規約化もされていないのにハンガリアン使ってるの?
重要かどうかはあんたの現場がどんな形態で開発しているか
よく分からないからなんとも言えないんだけど、一般的に言って重要でしょ。
俺の現場では色んな会社の色々な年齢の人たちと一緒に開発してるから
ハンガリアンなんて知らない人も多いよ。
そこで規約化もされてないのにハンガリアンなんか使ったらどうなると思う?
0817デフォルトの名無しさん
2005/07/10(日) 19:34:54多いからこそハンガリアンというものが一般浸透したわけで。
少ないならそもそも普及してないだろ。
>そこで規約化もされてないのにハンガリアンなんか使ったらどうなると思う?
「おや、おもしろいコーディングですね。へえ、確かに一目で型などがわかって便利ですね^^」
ってなると思う。
「見づらいからつけるな!」って言われる率よりはね。
論理的に規則が決まっており、可読性があり、長い年月使われてきただけの威力がある。
わざわざ「なんとなく見づらいから」という理由で全否定する人間のほうが少ないと思うんだがなぁ。
0818デフォルトの名無しさん
2005/07/10(日) 19:54:53それは思いこみだと我は思いこむ
0819デフォルトの名無しさん
2005/07/10(日) 19:59:10それはやっぱり、当時のプログラマ達から支持されていたからだろ?
(ここは否定されるところではないよな?)
最近は「ハンガリアンを使わなくても大丈夫そう」という環境にシフトしつつあるから、ハンガリアンを捨てようとしているわけで。
0820813
2005/07/10(日) 20:04:06規約にしているプロジェクトを二つばかり目撃したから質問したのに
俺の目撃したプロジェクトはレアケースで規約にしているところなんか殆ど無いの?
はぐらかしのレスばかりで嫌になるぜ
0821デフォルトの名無しさん
2005/07/10(日) 20:26:10少しはまわりのレスを読め。
少なくともうちは規約にしてるよ。
0822813
2005/07/10(日) 20:34:24おぉぅ。有難う御座いました。
>>698氏にも答えて欲しいな。
「書いたことは一般論であって実務では話は別」なんていう回答じゃなきゃいいけど
0823デフォルトの名無しさん
2005/07/10(日) 20:40:28タイプの量というよりは、ViewVectorとかかれると、型がVectorなのかただたんにベクトル量を表す別の何かなのかが区別つかない。
0824デフォルトの名無しさん
2005/07/10(日) 21:28:21WorldVector,ViewVectorって意味不明な例作るなよと
0825デフォルトの名無しさん
2005/07/11(月) 11:55:44>一時はみんなハンガリアンを守れと言われていたほどまで
「みんな」という部分は否定しておこう。
0826デフォルトの名無しさん
2005/07/11(月) 22:51:250827デフォルトの名無しさん
2005/07/12(火) 00:36:420828デフォルトの名無しさん
2005/07/13(水) 00:59:20してないでしょ。
0829デフォルトの名無しさん
2005/07/13(水) 03:05:26Radium Software Development "050704 - Hungarian Notation (1)"
ttp://www.radiumsoftware.com/0507.html#050704
0830デフォルトの名無しさん
2005/07/13(水) 09:02:36少なくともプログラマーという職業についていれば、一度は聞いたことがあるくらいには台頭しているぞ。
0831デフォルトの名無しさん
2005/07/13(水) 23:01:58かなり興味深い内容だね。
特にここ。
>本来 Simonyi 氏が意図していたのは,言語の仕様として存在する「型」
>ではなく,その変数が持つ「意味」や,その変数が利用される「用途」
>などのように,言語の仕様としては扱うことのできない付加的な情報を
>与えるというものだった。
このスレのハンガリアン使いにリンク先をしっかり読んでもらいたいね。
ただ、このリンク先を読むと、例え本来の意味のハンガリアン記法でも
使用すべきでない記法であるということ分かる。
0832デフォルトの名無しさん
2005/07/13(水) 23:06:20有名だからといって多数の現場で使用されているとは限らんのだよ。
0833デフォルトの名無しさん
2005/07/13(水) 23:22:50Dim strHoge As Integer
とかたまにあって殴りたくなったけどw
ただまあ、あれも使っているときは(標準コントロールの類に関しては)
判り易かったけどなあ。
今でも、コマンドボタンとかcmdHogeとかつけたくなるよ。つけないけどw
(レベルの低い話ですまんね)
0834デフォルトの名無しさん
2005/07/14(木) 00:23:12話ずれてる
0835デフォルトの名無しさん
2005/07/14(木) 00:31:25妄想くらい許してやれよ。
結局ハンガリアン否定派なんて、まわりに足並み揃えるのが嫌いな俺仕様糞グラマなんだから。
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,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:40ViewVector ってのはビュー座標系での位置ってこと?
なら 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>Dim strHoge As Integer
きっと strawberry hoge (であってほしい)
0843デフォルトの名無しさん
2005/07/14(木) 16:30:100844デフォルトの名無しさん
2005/07/14(木) 22:21:540845デフォルトの名無しさん
2005/07/14(木) 23:27:09C#や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可読性低下すんの?
0851デフォルトの名無しさん
2005/07/15(金) 00:55:31「最初の大文字」を捜すのがめんどい
0852デフォルトの名無しさん
2005/07/15(金) 00:58:57>>850
ハンガリアン記法部分を適当な文字列に置き換えたソースが読みやすいかどうか試してみたら?
その例だとm_aabyの部分ね。y_ddtoDataとかね。
ハンガリアン使いはこんなやつらばっか。
0853デフォルトの名無しさん
2005/07/15(金) 01:06:39意味のないー文字列がーへんすうにーついてるーソースコードがー読みやすいとーおもってんの?
0854デフォルトの名無しさん
2005/07/15(金) 01:14:22先に感情があってあとから理由を考えてるわけや。
0855デフォルトの名無しさん
2005/07/15(金) 01:14:590856デフォルトの名無しさん
2005/07/15(金) 01:27:53日本人にとって英語はわからん。
アメリカ人にって日本語はさっぱりわからん。
んで文字から発音がわからんとは糞言語だ!
ひらがなカタカナ漢字と多すぎるのは糞言語だ!
と罵り合ってる訳やな。
自然言語なら国別で分かれてるから日常問題となることは少ないんやけど
プログラムなら仕事でぶつかる機会が多いわけやな。
0857デフォルトの名無しさん
2005/07/15(金) 01:36:15>正直な所、ハンガリアンの実害は「可読性の低下」とそれに起因する害だけなのだから、
>そんなに目くじら立てなくても…と思うのだが。
「可読性の低下」ってプログラムにとっては致命的な欠陥だと思うけど。
書きっぱなしのプログラムなんて少ないんじゃないかなぁ。
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何が言いたいのか良く分からない。
お前は関西人にしか分からない言葉を
関西人かどうかも分からない人に対して使うか?
相手が関西人なら、または独り言で呟くなら何も問題ない。
でも相手が関西人じゃなかったら?
知識を共有しているかどうかってことが大事。
で、無意識的に知識を共有させようとするのがハンガリアン使い。
だから嫌われる。
0861デフォルトの名無しさん
2005/07/15(金) 02:19:51広島弁やら博多弁やら土佐弁で書かれた本や漫画なんてなんぼでもあるやん。
標準語が明治以後に人工的につくられた言語であるのに対して、方言には血と心が通っている。
標準語が全国を覆っている無機的なコンクリートであるとすれば、方言は有機的な言葉であって、
青々と繁る草や、樹木のようなもの。方言こそが本当の日本語。
0862デフォルトの名無しさん
2005/07/15(金) 02:27:33え・・・?
酔っ払ってるんですか・・・?
た、例えですよ!
意味を考えてください意味を!
0863デフォルトの名無しさん
2005/07/15(金) 08:16:39とか言うてるけど、否定者の俺は、俺と関係無いところでは自由に使えと言ってる。
肯定者が「C/C++で使わない奴は協調性が無い」とかアホなこというから、
その考えを世界から殲滅しなきゃ気がすまないくらい叩いてるんだよ。
C/C++のオープンソースでハンガリアンとか見たことねぇよボケ
0864デフォルトの名無しさん
2005/07/15(金) 10:26:33aaby とかあまりにもくだらないのを押し付けられるのは嫌だな。
0865デフォルトの名無しさん
2005/07/15(金) 11:37:44ハンガリアン使わないときの可読性低下については無視なのか…?
SaveData
って変数があった時、これをどうしろというのだ。
実装者には分かるのかもしれんが…。
0866デフォルトの名無しさん
2005/07/15(金) 11:41:30ほい
ttp://www.kumei.ne.jp/c_lang/sdk/sdk_74.htm
Windowsプログラマーのお伴「猫でもわかるプログラミング」から。
ハンガリアンだらけのオープンソースですが何か?
選んだ章は適当に目に付いたものを選んだ。他意はない。
他の章ももちろんハンガリアンだらけだ。
0867デフォルトの名無しさん
2005/07/15(金) 11:45:21非ハンガリアン
→ いつものマクドナルド行こう
ハンガリアン
→ 新宿一丁目のマクドナルドに徒歩で行こう
どっちが知識の共有を求めているのやらw
そりゃ「いつもの」という知識が共有されているなら、ハンガリアンは冗長なのかもしれん。
だが相手が「いつもの」を理解している保証なんてねーんだよ。
0868デフォルトの名無しさん
2005/07/15(金) 11:47:220869デフォルトの名無しさん
2005/07/15(金) 11:52:340870デフォルトの名無しさん
2005/07/15(金) 11:54:460871デフォルトの名無しさん
2005/07/15(金) 11:59:06→ これはセーブデータを司る変数です
ハンガリアン
→ これはセーブデータを司る変数です。
このクラスのメンバー変数です。
byte型の二次元配列です。
ハンガリアンの方が情報量が多く、明示的。
「情報量が少なくいほうがいい」なんて、プログラマとしてどうかと思うぞ。
0872デフォルトの名無しさん
2005/07/15(金) 12:03:550873デフォルトの名無しさん
2005/07/15(金) 12:56:15想像力の欠如した馬鹿
0874デフォルトの名無しさん
2005/07/15(金) 13:08:53Streamにそのまま流して大丈夫なのかどうか
添え字
解放する際の手順
ぱっと思いつくだけでこれだけある。
0875デフォルトの名無しさん
2005/07/15(金) 13:55:13ハンガリアンはプリミティブ型にしか適用しない物だと思ってたけど……
SaveDataがBYTE配列と言われればそれまでですがw
あ、プリミティブ型かクラスかを識別するのには使えるかもしれない。
0876875
2005/07/15(金) 14:02:09SaveDataがなんと言うクラスの変数であるか
ではなくて
SaveDataに対して何が出来るのか(タイプになるのかな)
ではないのでしょうか。だからこそハンガリアンで変数の型が分かっただけでは
余り意味がなくて結局クラス定義まで戻らないといけない。
名前付けが重要と言うのは、名前を見ることによってそいつに対して適用可能な操作が
分かりやすい、という側面があるのでは。
逆にそういうタイプの情報が不要でむしろ変数型が重要(signedとかunsigned)なプリミティブ型
について言えば、ハンガリアンの有用性は否定できないと思います。
ただゲームとか組込でなければ、厳密な使い分けをするほどではない?ということで
そういう業界以外(業務システム開発など)では「イラネ」となっているのでは。
0877デフォルトの名無しさん
2005/07/15(金) 14:12:45だからこそハンガリアンの引き合いに出したわけで。
クラスに対する記法は、ハンガリアンでは定められていない。
ハンガリアン否定論者は、バイト配列とかに一体どういう名前を付けているのか不思議でたまらない。
0878875
2005/07/15(金) 15:15:52やっぱりバイト配列だったんですね。
私がつけるとすれば、memoryBlock / rawMemoryBlockとかあたりでしょうか。
ただ少なくともバイト配列がSaveDataであるってのは、ハンガリアン以前の
レベルですよね。データ抽象の観点からして。
本来的に言えば、class SaveDataのメンバ変数にBYTE[]があるという位置付けに
なると思います(クラス名SaveDataが適切かどうかの問題もありますが)。
0879デフォルトの名無しさん
2005/07/15(金) 18:42:41それができるならハンガリアン推奨派だってそうするってのw クラスが嫌いなわけじゃないんだから。
それにクラスの中には結局Byte配列があるわけで、それにはどういう名前つけるのよ。
問題は「バイト配列を作ることになった時に、それにどういう名前をつけるか」だ。
0880デフォルトの名無しさん
2005/07/15(金) 19:18:330881デフォルトの名無しさん
2005/07/15(金) 19:33:49あれ、そんなに変だったでしょうか。まあ構造的に問題があるのは
ハンガリアンとは関係ないので例として良くなかった気はします。
>それにクラスの中には結局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:340887デフォルトの名無しさん
2005/07/15(金) 22:31:270888デフォルトの名無しさん
2005/07/15(金) 22:38:06そんなもの無いってば。gotoを否定するのと同じだよ。
goto使わない理由なんか論理的に証明できなくても、
「自分が見辛い」これで充分だと思うけど。
読むのはいいけど書くのはいやなんだ
0889デフォルトの名無しさん
2005/07/15(金) 22:56:08何れも用途を表わすまっとうなハンガリアンを用いて相応しい関数やマクロで処理すべき内容。
aaby のようないろいろ足りないハンガリアンを使うべきではない。
0890デフォルトの名無しさん
2005/07/15(金) 22:59:12C/C++で使ってるのはもうね、アホかと
0891デフォルトの名無しさん
2005/07/15(金) 23:04:39色々足りてるハンガリアンを提示してみてくれよw
0892デフォルトの名無しさん
2005/07/15(金) 23:05:55逆だろ。
型付けが強いからこそ、必要なんじゃないか。
0893デフォルトの名無しさん
2005/07/16(土) 00:25:11それぞれ、適用する環境が違うってことで終了じゃないの?
俺はJava/.NETばっかやってるけど、クラス/メソッドの分割で
一度に実行する処理を小さく小さく記述するから、
ハンガリアンは全く焼く煮立たん。
上の方にも同じことが書いてあったが、すぐそばに型の定義があるから。
唯一クラスメンバにのみm_とか_とか付けたりするが。
また、何かしらの理由でくそ長いメソッド書く必要があるなら、
ハンガリアンは有用だろうなとも思う。
正直、そんなプログラム組みたくないけどな。
どちらにしろ名前は非常に重要だ。
時間を書けて「名は体を表す」変数/クラス名を付けるべきだ。
そこに必ずしも型情報を含む必要は無いと思う。
0894デフォルトの名無しさん
2005/07/16(土) 10:58:100895デフォルトの名無しさん
2005/07/16(土) 14:12:500896デフォルトの名無しさん
2005/07/16(土) 21:56:43感情論じゃないだろ。
ハンガリアンを使わない人が読めば確実に可読性が下がるってことを理解しろ。
>ハンガリアン支持者の「情報の取捨選択について読み手に選択肢を与えるために気をつかうべし」という論理とはだいぶ違うね。
つまり冗長な情報ってことだよな。
その冗長な情報が必要な情報を読み取る場合に邪魔ってことなんだよ。
しかも、その冗長な情報は読み手が必ずしも理解できるとは限らないときてる。
0897デフォルトの名無しさん
2005/07/16(土) 22:13:14だが読めないわけではない。
じゃあハンガリアンを使っている人が読んだ場合のメリットは?絶大だ。
0898デフォルトの名無しさん
2005/07/16(土) 22:24:340899デフォルトの名無しさん
2005/07/16(土) 22:35:47>>852 に書いてあること試してみた?
変数見るたびに型情報を知ることのどこが効果絶大なんだ?
冗長だって言ってるだろ。
0900デフォルトの名無しさん
2005/07/16(土) 22:55:52ハンガリアン否定派=OOP
0901デフォルトの名無しさん
2005/07/16(土) 23:04:05Dataであることは一目瞭然じゃん。
まぁ俺だったら「その前についている文字列の意味を勉強」するけどな。
意味のある情報だからこそついているわけで、それを「めんどう」とかそういう理由で無視しつづけるほうが効率わるそうだし。
0902デフォルトの名無しさん
2005/07/16(土) 23:04:250903デフォルトの名無しさん
2005/07/16(土) 23:05:18C#やJAVAしか触ったことのない新人類ですか?
0904デフォルトの名無しさん
2005/07/16(土) 23:13:33>変数見るたびに型情報を知ることのどこが効果絶大なんだ
BaseAmount = -1;
NowAmount = GetNowAmount();;
if (BaseAmount < NowAmount){
// 重要な処理
(略)
}
あれー。なんで重要な処理に流れないんだろう。
答え。NowAmountがunsignedだから。
どうして「型情報を知ることは重要ではない」なんて思える人がいるんだろう。
まったくもって不思議。(この場合は、コンパイルすれば警告が出てくれるがね。コンパイルすれば)
0905847
2005/07/16(土) 23:18:11「日本語の読みやすさ」で言い争ってるようなもんだ。
もうちょっと異文化を許容する心の余裕を持たないか?
0906デフォルトの名無しさん
2005/07/16(土) 23:25:06BaseAmount = -1 としている部分がおかしい。
つまりハンガリアン推奨派は変数名と合わない意味的に正しくないコードを書くから
ハンガリアンで型を明示しないとやってられない、ということが証明されたわけだ。
0907デフォルトの名無しさん
2005/07/16(土) 23:31:21こんなこと、プログラマなら誰だって知っていることなのに「普通」って何w
その「普通」を、プログラム初心者は誰にも教わらずに知っていろと?w
それともこの世界のどこかには、ハンガリアンを記したページと同等に詳しい「変数名の常識」を解説したページがあり、そこに「個数は非負整数なのが普通」と記されているのだろうかw
あ ほ か ?
思わず普段は使わない w を3つも使ってしまったわ。
0908デフォルトの名無しさん
2005/07/16(土) 23:36:13すまん。変数名が意味的に正しいかどうか判定してくれるツールはどこにあるんだい?
0909デフォルトの名無しさん
2005/07/16(土) 23:36:25Cでもバリバリプログラミングするんだけどねぇ。
変数を見る”たび”にだよ?
脳内バッファは無いのかい?
>>904
>(この場合は、コンパイルすれば警告が出てくれるがね。コンパイルすれば)
答え出てるじゃん。
それに重要な処理に流れないって分かった時点でその分岐がおかしいって分かる。
0910デフォルトの名無しさん
2005/07/16(土) 23:37:06でもCでは…Cでは有効なんだい!
0911デフォルトの名無しさん
2005/07/16(土) 23:39:59別に勝った負けたのスレじゃないんだし。
もうちょっとスマートに行こうぜ?
>>909
>それに重要な処理に流れないって分かった時点でその分岐がおかしいって分かる。
ハンガリー使ってれば、ソースを見た段階でおかしいってのが分かったんだがね('A`)
0912デフォルトの名無しさん
2005/07/16(土) 23:43:54なぜ有効なのか答えなさい!
結局ハンガリアンのデメリットを無視してまでハンガリアンを
使うことの有効性を示してくれる人なんていないんだよね。
ないから。
0913デフォルトの名無しさん
2005/07/16(土) 23:45:31すまん。ハンガリアンのプレフィクスと型が一致しているかどうかを判定してくれるツールはどこにあるんだい?
0914デフォルトの名無しさん
2005/07/16(土) 23:46:35で、デメリットって?
まさか「なんとなく読みづらい」じゃないよね?
>>913
簡単に作れるけど?
だってルールがきちんと決まっているからね。
0915デフォルトの名無しさん
2005/07/16(土) 23:49:01ツールを通すとしても結局定義を参照するわけだから変数から
すぐに定義に飛べるだけでいいんじゃないのかい?
あと型を変更したときにプレフィクスを修正してくれるツールはどこにあるんだい?
0916デフォルトの名無しさん
2005/07/16(土) 23:49:36順番がおかしいだろう?
重要な処理に流れない→すでにコンパイル済み→警告見てる
0917デフォルトの名無しさん
2005/07/16(土) 23:50:59(;´Д`)……。
「ツールはどこにあるんだい?」の意味わかってる?
「ルールも決まっていないのに、ツールが作れるわけねーよな?HAHAHA」って意味だよ?
>あと型を変更したときにプレフィクスを修正してくれるツールはどこにあるんだい?
置換機能→全てを置換
0918デフォルトの名無しさん
2005/07/16(土) 23:52:230919デフォルトの名無しさん
2005/07/16(土) 23:52:27なんで順番がおかしいと思えるの?
引き継いだEXEを実行したところ、重要な処理に流れない
↓
手元にあるソースによると、流れるはずなんだがなぁ
0920デフォルトの名無しさん
2005/07/16(土) 23:54:05むしろ、どういう時に置換機能が効かないのか教えてくれ。
クラス内の変数名を変えたならクラスについて書かれた.hと.cppを「全て置換」
関数内の変数名を変えたなら「順番に置換」
他に一体どんなシチュエーションが?
0921デフォルトの名無しさん
2005/07/16(土) 23:56:29ああ、自分でコンパイルしたわけじゃないのね。
重要な処理に流れない→ソース見る→分岐部分を見る→変数の型チェック
ハンガリアンだと分岐を見たところで分かるって言いたいんだろ?
どこが効果絶大なの?
0922デフォルトの名無しさん
2005/07/16(土) 23:57:49時間やプロジェクトの大きさにおびえないで済む人はいいなぁ…。
0923デフォルトの名無しさん
2005/07/17(日) 00:01:23はいはい。>>910
0924デフォルトの名無しさん
2005/07/17(日) 00:01:58ある基底クラス 非private メンバ変数の型を
変える場合とか。
更に自分で書いたソースではなく、メンテを引き継いだ場合と
条件付けしてみる。
0925デフォルトの名無しさん
2005/07/17(日) 00:02:13型を気にせずに済むならそうしたい。
余計な情報を付加せずに済むならそうしたい。
そんなもん、ハンガリアン支持者だってそう思ってるわ。
現実的に採用できる範囲で、ハンガリアンが最も現実的な選択だったから使っているだけのこと。
ペーペーにいちいち「Amountってのはな。非負整数なんだよ」なんて1個1個の事例を説明してられない。
ハンガリアン記法について書かれたプリントを投げつけて「それ読んで覚えろ!」
これが現場。
0926デフォルトの名無しさん
2005/07/17(日) 00:06:19なぁ。
非privateメンバー変数の型を変えるって、超大事(おおごと)じゃないか?
継承先でsignedで判定していたのに、unsignedに変えられでもしてみろ。
>>904になるぞ。
そんなもの「変数名を変えるのが面倒」とかいう次元をはるかにぶっとんだ話。
継承先のクラスを全部再チェック必須だw 変数名の書き換えなんて、瑣末極まりないわ
0927924
2005/07/17(日) 00:08:45なぁ、>917,920へのレスだということは分かってくれるよな。
0928デフォルトの名無しさん
2005/07/17(日) 00:10:51917=920=926=俺だし。
0929デフォルトの名無しさん
2005/07/17(日) 00:18:37非ハンガリアンお得意のセリフ。
「型変えたらどうすんの」
すごいよこれ。
まず型を変えるようなシチュエーションが凄い。設計能力無し。
そして非ハンガリアンなら面倒皆無だと思ってる。
型変えたのに何もせずにそのまま動くシチュエーションが凄い。
なんのために型変えたの。
型変えによる不具合考慮一切無し。
じゃあハンガリアンなら面倒皆無なの?と。
そんなわけない。
どうせ全部チェックしなおし。その際ついでレベルで名前書き換える。
むしろ書き換えてないところは未チェックだとわかるし、コンパイルの時エラー出てくれる。
0930デフォルトの名無しさん
2005/07/17(日) 00:20:350931デフォルトの名無しさん
2005/07/17(日) 00:23:00なんの。
匿名掲示板で「だから」とか言われても、君誰。どの文章から続く「だから」なの?
どのレスに対して言ってるの?
0932デフォルトの名無しさん
2005/07/17(日) 00:27:14>まず型を変えるようなシチュエーションが凄い。設計能力無し。
自分だけで作業してる状況しか想像できないのですか。
>どうせ全部チェックしなおし。その際ついでレベルで名前書き換える。
全てチェックが終わってないのに書き換えるのは危険極まりないし、
チェックが終わった後で書き換えるのは2度手間。
非ハンガリアンなら、チェックが終わった後で宣言部のみ書き換えるだけ。
>むしろ書き換えてないところは未チェックだとわかるし、コンパイルの時エラー出てくれる。
コンパイルエラーが出ないケースもあり得ますが。
別にハンガリアンは否定しないけどコイツは…
0933デフォルトの名無しさん
2005/07/17(日) 00:39:03929もちょっとアレだが(多分語り口調はネタなんだろうが)、その答えも変じゃないか?
ハンガリアンが有用になる非カプセル化環境において、他人の型変換が自分のソースに影響するという設計をするか?
0934デフォルトの名無しさん
2005/07/17(日) 00:44:05↓
置換機能で一発じゃね?
↓
非privateメンバー変数の型を変えるとかの時はどうすんだよ
↓
それって、変数名書き換えが面倒とかいう以前の問題じゃね?
この後はどうなったんだ?
0935デフォルトの名無しさん
2005/07/17(日) 00:51:080936932
2005/07/17(日) 00:58:51他人のソースをメンテしなきゃならん状況もあるだろって事。
あと、しがないサラリーマンPGから忠告。
マーフィーの法則ではないが、良くない例には必ず実例が存在すると思いねぇ。
この世には「他人の型変換が自分のソースに影響するという設計」も存在する。
思い出したくもないが。orz
0937デフォルトの名無しさん
2005/07/17(日) 00:59:48盛り込まれていない環境って本当にあんの?
0938937
2005/07/17(日) 01:02:330939デフォルトの名無しさん
2005/07/17(日) 01:03:56業界によるんじゃないの。
全体数からみたらハンガリアンは圧倒的に少ないと思うけど。
0940932
2005/07/17(日) 01:08:06COBOLでハンガリアンは聞いた事がないような。
…スマン。悪い冗談だ。
0941デフォルトの名無しさん
2005/07/17(日) 10:10:00VB6はどこもかしこもハンガリアン(の亜種)
MSDNでも推奨しているしね。
javaでは皆無。
PLSQLはなんちゃってハンガリアンつかってた。
他のプロジェクトはシラネw
いじょ、デジドカの体験談でした。
0942デフォルトの名無しさん
2005/07/17(日) 11:02:19その「業界」というのにJAVAやC#やCOBOLはいれるのか?
C、C++業界というのならば、ハンガリアンのほうが圧倒的に多いと思うが。
0943デフォルトの名無しさん
2005/07/17(日) 11:39:10うにっくすではあまり見掛けんです。
おれの世界が狭いだけかもしれないけど。
0944デフォルトの名無しさん
2005/07/17(日) 11:59:07組み込み系のCやC++こそハンガリアンの舞台だと思われ。
0945デフォルトの名無しさん
2005/07/17(日) 12:44:410946デフォルトの名無しさん
2005/07/17(日) 13:39:37物事自分の頭で考えられず聞きかじった誰かの主張を教条主義的に繰り返す人間は本当に困る。
ハンガリアン肯定側も否定側もね。
俺はハンガリアンには否定的だが、しかしハンガリアンが合理的な選択であるケースも
確かにないわけじゃない。
典型はVB6とか.NETのWindowsフォームのコントロールだね。
例えば価格を入力するテキストボックスの名前はpriceでは若干舌足らずだ。
txtPriceならpriceTextBoxより簡潔にして必要十分の情報が乗っている。
仮にpriceで必要十分だ、という人がいたとしても、じゃあこのテキストボックスには
横にラベルがついていて、このTextを場合によっては変更する必要があるために
適切な命名をしておく必要がある場合はどうする。
このとき、ハンガリアンが許容できるのならlblPriceとできる。
0947デフォルトの名無しさん
2005/07/17(日) 13:41:14最近は組み込み系にもC++が増えてるんですけどー
0948デフォルトの名無しさん
2005/07/17(日) 13:50:110949デフォルトの名無しさん
2005/07/17(日) 15:42:05だからなんだ。C++でハンガリアン使うなボケ。
0950デフォルトの名無しさん
2005/07/17(日) 17:39:42イッチ〜♪ ニ〜♪ ハンガリアン♪
0951デフォルトの名無しさん
2005/07/17(日) 17:42:230952デフォルトの名無しさん
2005/07/17(日) 19:19:34( ゚Д゚)ポカーン
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それをしつけるのが古い奴の仕事じゃん。
古い慣例に従うことのメリットをちゃんと説明してやれよ。
0956デフォルトの名無しさん
2005/07/17(日) 21:21:38色々な点で疑問があるがこれはどうだろうか。
0957デフォルトの名無しさん
2005/07/17(日) 22:03:54きっちり構造化されてるじゃん。
これならハンガリアンにこだわる必要はねーよ。
0958デフォルトの名無しさん
2005/07/17(日) 22:07:17もし構造化されている部分に中身に手をつけろといわれたら、はったおすよ。
そういう観点から見れば糞ソース。
だがそれを起こさないようにきちんとまとまってるから良ソース。
仕事ではいつ引き継ぎになるかわからんから、こういう組み方はできんな。
事故ったり、病気になったり。
「担当者が病気になって誰も手がつけられません」ってわけにいかん。
0959デフォルトの名無しさん
2005/07/17(日) 23:40:140960デフォルトの名無しさん
2005/07/17(日) 23:42:200961デフォルトの名無しさん
2005/07/17(日) 23:44:54他人の書いたもんなんぞ読みにくくて当たり前、規約なんぞあっても無駄だと感じてるけどね。
0962デフォルトの名無しさん
2005/07/17(日) 23:47:27つまりあなたは学生ということですね。
0963デフォルトの名無しさん
2005/07/17(日) 23:49:12>規約なんぞあっても無駄だと感じてるけどね。
コーディング規約を設けてない会社なんて世の中にねーよ('A`)
0964デフォルトの名無しさん
2005/07/17(日) 23:58:50ハンガリアンな変数が使われている部分の誤りを発見したとして
その変数の定義部を全く見ないで修正するのでしょうか?
それともやっぱり定義部を見るんですか?
0965デフォルトの名無しさん
2005/07/18(月) 00:16:25ハンガリアンはソースを読み解く手助けのためにある。
根本的に勘違いしてないか?
0966デフォルトの名無しさん
2005/07/18(月) 00:43:22具体的にこういう時にメリットがあるよ!という状況はどういう時でしょうか。。。
0967デフォルトの名無しさん
2005/07/18(月) 00:51:53ソースを読み解く手助けになる。
但し人によっては逆に鬱陶しいと感じるかもしれない。
コメントを冗長な位に書くか、最低限に抑えるかの違いにも似てるな。
特定のケースに限定しない限り、どっちが良いとは一概には言い切れん。
言い切れる奴は、物事をもう少し多面的に見る努力をした方が良いと思われ。
0968デフォルトの名無しさん
2005/07/18(月) 01:46:33俺の周りでは、ハンガリアン大好きっ子は経歴5年程度より若い連中ばかりだよ。
10年程度の古い連中は、経歴の途中でハンガリアンを押し付けられたから最近の風潮を歓迎している。
若いのは、就職してからずっとハンガリアンだから、変化に抵抗があるんじゃない?
自社流勝手ハンガリアンだけどね。
小さい会社でサンプル少なくて申し訳ないんだけどね。
で、御社でハンガリアン否定している若い奴ってのは、やっぱ入社以来 Java か C# ?
0969デフォルトの名無しさん
2005/07/18(月) 08:56:32うちではむしろ、学生時代にハンガリアンなんて使ってなかったから仕事で覚えるのに抵抗がある若い奴が多い。
CやC++の勉強中にもハンガリアン使ってなかったみたいなんだわ。
ところで俺人事もある程度担当してるんだ。
ものすごく身勝手で申し訳ないんだが、就職活動の際CやC++のプログラムを提出してきて、それがハンガリアン使われてないと
「う……こいつと仕事するの嫌だなぁ…なんでハンガリアンすら使ってないんだ…」
っとちょっともにょる。
0970デフォルトの名無しさん
2005/07/18(月) 11:09:030971デフォルトの名無しさん
2005/07/18(月) 12:36:201メソッド何行ぐらいになるように心がけてる?
俺はハンガリアン否定派だが、だいたい10-20行を心がけている。
もちろん意味ある単位で切り出すので、例外はあるが。
正直、10-20行ぐらいでメソッド記述してると、ハンガリアンって無意味極まりなく思える。
クラスメンバ、グローバルの区別は必要と思うが。
といいつつ、mfcの時はハンガリアンになっちゃうねw
0972デフォルトの名無しさん
2005/07/18(月) 14:05:07もちろん短くしようと心がけてる。
が、ハードの制限(主に容量)でそうはいかないことがある。
そういう時にハンガリアンが有用。
というお話。
0974デフォルトの名無しさん
2005/07/19(火) 16:06:160975デフォルトの名無しさん
2005/07/20(水) 00:05:150976デフォルトの名無しさん
2005/07/20(水) 12:25:31> 「う……こいつと仕事するの嫌だなぁ…なんでハンガリアンすら使ってないんだ…」
> っとちょっともにょる。
俺もあんたと仕事したくねEEEEEEEEEEE!
まあ、俺は逆にハンガリアン使ってるソース見たら落とすし、お互いさまだな。
変数の命名で英語ができないことが分かればさらに落としまくり。
私見だが、英語ができないやつはハンガリアン野郎に多い。
やっぱ、適切な命名ができないからプリフィックスでごまかしてるんじゃねえかと思う。確信してる。
それはともかく、そもそも今のハンガリアン記法が間違って広まった件について。
ttp://www.radiumsoftware.com/0507.html#050704
0978デフォルトの名無しさん
2005/07/20(水) 13:52:25まぁまぁ。
プリミティブ型にハンガリアン記法を使うことには少なからず意味があるし、
そういうのを必要とする業種がある、ということでいいのでは。
(もちろん自分では使わないが)
ただbool型だけはいただけない。
bool型の変数の場合、isXxxxやhasXxxxをつけることが多いと思われるが、
これにハンガリアンを適用すると、bIsXxxxやbHasXxxxとなって違和感がある。
だからと言ってbXxxにするのは命名をないがしろにしていることになる。
それ以外については環境に応じて許容できる。
0979デフォルトの名無しさん
2005/07/20(水) 19:27:30>ハンガリアン使ってるソース見たら落とす
>適切な命名ができないからプリフィックスでごまかしてるんじゃねえかと思う。確信してる。
こんな奴が人事担当か…。その会社も長くないな
0980デフォルトの名無しさん
2005/07/20(水) 23:45:27お前真性のおばかさんだろ?
0981デフォルトの名無しさん
2005/07/21(木) 00:27:11とてもプログラマとは思えません。
0982デフォルトの名無しさん
2005/07/21(木) 00:28:40どんな超優秀人材でも、社内教育すらせずに門前払いするんだな。
そんな会社、どう考えても先長くねーよw
0983デフォルトの名無しさん
2005/07/21(木) 00:36:53⊂⌒( ・ω・) はいはいわろすわろす
`ヽ_っ⌒/⌒c
⌒ ⌒
0984デフォルトの名無しさん
2005/07/21(木) 00:47:12むしろハンガリアン肯定派が自作自演しているのかと疑ってしまうくらいだぞ。
別に対立スレじゃないんだから罵りあう必要ないのに。
0985デフォルトの名無しさん
2005/07/21(木) 00:52:220986デフォルトの名無しさん
2005/07/21(木) 01:00:53もう飽きただけ。
正直好きにしろw
0987デフォルトの名無しさん
2005/07/21(木) 15:20:07使う人間はどうなのかなぁ。俺にはわからない。
ただ、使うことが正しいというのなら、
「ハンガリアン以前には正しい方法は無かった」ということになって
これには首肯出来ないな
0988デフォルトの名無しさん
2005/07/22(金) 11:06:150989デフォルトの名無しさん
2005/07/22(金) 12:03:47城島乙
0990デフォルトの名無しさん
2005/07/22(金) 13:11:380991デフォルトの名無しさん
2005/07/22(金) 13:12:10long long ll;
short h;
0992デフォルトの名無しさん
2005/07/22(金) 13:12:49WORD w;
DWROD dw;
QWORD qw;
0993デフォルトの名無しさん
2005/07/22(金) 13:13:37double d;
long double ld;
0994デフォルトの名無しさん
2005/07/22(金) 13:17:02char c = ch;
TCHAR szHoge[] = "Hoge";
PTSTR pszHoge = szHoge;
CString strHoge = pszHoge;
std::string strFoo = "Foo";
0995デフォルトの名無しさん
2005/07/22(金) 13:21:19std::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:42RECT 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:55unsigned 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:19void *pv;
VARIANT v;
BSTR bs;
IUnknown *punk, *pUnknown;
0999デフォルトの名無しさん
2005/07/22(金) 13:34:33LOGFONT lf;
STARTUPINFO si;
CHOOSECOLOR cc;
CHOOSEFONT cf;
FINDREPLACE fr;
1000デフォルトの名無しさん
2005/07/22(金) 13:36:4710011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。