1 名前:デフォルトの名無しさん mailto:sage [05/02/25 20:16:44 ] クラス名、変数名のつけ方に悩んだら書き込むスレです。 質問する人は、その変数に何を格納するのか(クラスだったらその役割) プログラミング言語は何なのかを、それぞれ書いて、 いい変数名を思いついた人は、それに答えてあげましょう。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 >>2 英和・和英・英英など各国語辞書と翻訳サイト。 >>3 専門用語辞書、類義語(シソーラス)辞書、図形・数式・数学用語の英単語。 >>4 関連スレと、いろいろな言語規約。 >>2-10 諸事情によりリンクがずれた場合。 前スレ。 ◆ネーミング倶楽部◆ pc3.2ch.net/tech/kako/1035/10353/1035362308.html Part1 pc5.2ch.net/tech/kako/1046/10465/1046541730.html Part2 pc5.2ch.net/tech/kako/1058/10582/1058213523.html Part3 pc5.2ch.net/test/read.cgi/tech/1067171530/ Part4(間違って3として進行) pc5.2ch.net/test/read.cgi/tech/1087209526/
293 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 12:39:01 ] have〜 は見たこと無いけど、has〜 とか contains〜 とかは見たことある
294 名前:デフォルトの名無しさん [2005/05/18(水) 13:24:22 ] その前に英語を勉強しろ
295 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 15:33:55 ] まぁisを使う一方でhaveはおかしいよな。 Rubyの標準クラスは anInstance.is_a?(Class) (三人称単数現在) aHash.has_key?(key) (ditto) anArray.include?(element) (原型不定詞) のように不統一で(一応ルールはあるらしい)、慣れるまで混乱する。
296 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 00:09:42 ] エラトステネスのふるいの関数名を考えてください。 適当に、hurui(int *,int)にしちゃったんだけど、 もっとシャキーンとした名前がほしいです。 なんかありませんか??
297 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 00:13:51 ] old
298 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 00:17:42 ] void Shakeen();
299 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 00:18:43 ] EratsnetesSieve
300 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 00:21:03 ] filter
301 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 00:28:47 ] >>298 採用したいが見送り。残念。 >>299 EratosthenesSieve これを採用します。 レスThx!
302 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 14:27:43 ] 定数の列挙に namespace HOGE { enum { TEISUU_1, TEISUU_2, }; }; とよくやるんですが、(VC.netならHOGE::と打てば定数がリストアップされるから) ここでHOGEのネーミング規約として何かいい案はないでしょうか? namespaceの頭文字をつけてn_HOGE::とするか、 STLは小文字でstd::だからhoge::にするか 結局定数だからHOGEにするか・・・。 毎度悩んでます。
303 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 14:40:45 ] constants 長いならk
304 名前:302 mailto:sage [2005/05/19(木) 15:10:18 ] 役割ごとに別の名前空間にしようと思うんですね。 通信プロトコル、動作フラグ、設定データ等等・・・。
305 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 15:13:08 ] Namespace.Class.Method 別に区別しなくていいって言うかスレ違い。
306 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 00:32:44 ] >>302 .NETでやるんなら.NETの流儀(全部Pascal)でやるべきなよーな
307 名前:デフォルトの名無しさん [2005/05/20(金) 08:26:13 ] .NETっていうか、MSご推奨の流儀ね。 でもあれ合理性が感じられないんだよね。 例えばクラスや構造体にCとかSとかプリフィクスするの止めろって言うんだけど やっぱりプリフィクスないと混乱するときあるよ。 インテリセンスでわかるって言うけど、ソース読み直してるときにそんな 面倒なこといちいちやってられるか。 それ以上に、プリフィクスには命名のバッティングを防ぐ効果があって、 これが案外重要だったりすると思うんだけど。
308 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 08:29:39 ] スレ違い
309 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 10:47:26 ] ハンガリアンは名前に実装が現れるのが酷すぎる。 それに型を変えると名前も変えなきゃいけないし、 そもそもnDataってあったとしてもそれが本当に int型かどうか分からないし。 意味を反映した名前を付けたほうがいいでしょ。 バッティングなんて起こる方がおかしいんだし。
310 名前:デフォルトの名無しさん [2005/05/20(金) 12:24:56 ] >>309 なんでいきなりハンガリアンの話になるわけ?
311 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 16:08:22 ] >>310 >>307 の「MS」「プリフィクス」で脊髄反射したんだろ。
312 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 23:28:01 ] グラフを描画するのに以下の二種類のペンを使います。 これらの名前を考えてください。 1.普通のペン 2.視点から実際には見ることのできない部分を書くペン お願いします
313 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 23:31:51 ] Pen InvisiblePen
314 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 23:32:49 ] >>313 やっぱりそうですよね 白身がなかったもので… ありがとう
315 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 15:21:47 ] C++で文字列化できることを表すインターフェース名が決まらないのですが 何か良い案ありますか? class I??? { virtual std::string ToString() const = 0; friend inline std::ostream& operator <<(std::ostream& lhs, const I???& rhs) { return lhs << rhs.ToString(); } } こんな感じの???が思いつきません。
316 名前:315 mailto:sage [2005/05/23(月) 15:25:01 ] ちなみにバイナリデータへのSerializerは既にあって、 シリアライズできるクラスはISerializableを継承するようになってます
317 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 15:41:41 ] ITextSerializable
318 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 15:45:13 ] IStringize
319 名前:315 mailto:sage [2005/05/23(月) 17:03:46 ] 良くやる事なのかと思ったけどあんまり例が無いですね… >>317 氏のはすこし冗長な気がします Deserializeには対応しないのでSerializeと冠するのも不適格な気が >>318 氏のSrtingizeは違う意味でBOOSTなどが使っているので紛らわしいかなぁ でもJavaとかだと想定した挙動みたいですね とりあえずIStringizableで行こうと思います ありがとうございました
320 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 17:30:38 ] >>307 > 例えばクラスや構造体にCとかSとかプリフィクスするの止めろって言うんだけど > やっぱりプリフィクスないと混乱するときあるよ。 混乱するわけがないでしょ。 大文字で始まる名詞があれば、クラスや構造体でしかありえない。
321 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 17:33:46 ] スレ違い
322 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 20:05:45 ] >>315 stringifyってのがあるから stringifiable…?
323 名前:デフォルトの名無しさん [2005/05/23(月) 22:04:41 ] >>320 MSはプロパティもPascal形式にしろっていってるよね? プロパティは通常名詞であることが多いと思うんだけど。 第一、例えばプログラム中でインスタンスが一つしかないような場合でも(こういうの シングルトンパターンっていうんだっけ?)、MSのアホな指針に従わなければ、 例えばクラス名をCGod(あるいはcGod)、そのクラスの唯一の自分自身のインスタンスを 保持する静的フィールドをm_God(またはmGod)、その唯一のインスタンスを 他のクラスから参照する静的プロパティをGodと、すっきり機械的に命名できるのに。 それにキャメル形式って読み難くてイライラするんだよね個人的に。 慣れの問題かとも思ったがそうじゃない気がする。
324 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 22:06:45 ] >>323 >>321 >それにキャメル形式って読み難くてイライラするんだよね個人的に。 >慣れの問題かとも思ったがそうじゃない気がする。 2レス前も読めない読解力の問題。
325 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 22:07:24 ] >>323 完全に慣れの問題だな。
326 名前:315 mailto:sage [2005/05/24(火) 01:15:26 ] >>322 それです!まさにそれ。Stringifiableとも言うみたいです。 Perlは4で止まってたのでその単語をまったく知りませんでした…ありがとう とはいえだいぶマニアックで直感的じゃなくなってきたなぁ(笑)
327 名前:デフォルトの名無しさん [2005/05/24(火) 10:23:13 ] void xxx(struct tagABC *edge){ free(edge->ptInt); free(edge->ptLong); free(edge->ptShort); } ある構造体の変数にポインタがあり、そのポインタには メモリ確保した時のアドレスが格納されています。 このメモリを一気に解放する関数の名称を、命名して下さい。
328 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 10:32:10 ] ABCInitialize/ABCFinalize
329 名前:327 mailto:sage [2005/05/24(火) 10:36:50 ] なるほど。どうもです いただきました
330 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 15:41:14 ] freeABCでいいような。 本体は解放するけどメンバーのデータは解放しない っていう関数が別に必要ならそっちに使いそうな名前 ではあるが。
331 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 19:53:17 ] 以下の3つを区別する必要があるとき、それぞれどのような名前を付けたらよいでしょうか? よろしくお願いします。 ・日時両方: 2005/05/24(火) 15:41:14 ・日付だけ: 2005/05/24(火) ・時刻だけ: 15:41:14
332 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 19:54:21 ] DateTimeFormat
333 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 20:09:38 ] DateTime Date Time
334 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 20:47:04 ] ありがとうございます。 あちこちで頻繁に参照する名前なので、もっと短くて混同しづらい名前はないものかと悩んでいたのですが やはり DateTime のように Date と Time を引き摺り続けるしかないのでしょうか。 まずは Date, Time, DateTime で命名しようと思います。 が、もしもっと見分けやすい名前を思いついた方がいらっしゃいましたら、どうか宜しくお願い致します。
335 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 21:06:27 ] >>334 日付時刻をDateTimeとするのは割と一般的だと思うけどなあ。
336 名前:デフォルトの名無しさん [2005/05/26(木) 02:30:31 ] 姿勢(基底行列)と位置(3次ベクトル)を メンバに持つクラスを作りたいんですが 名前が決まらず困ってます。お助けを。
337 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 02:59:24 ] 何をするクラスかが分からんと…
338 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 03:17:17 ] >>337 へぼい3Dのプログラムなんですけど 3Dオブジェの位置姿勢を担当するクラスを 作ろうと思いまして。 でも全然名前が浮かばないんです。
339 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 04:52:41 ] >>338 設計ミスな希ガス 3Dオブジェのベースクラスで管理するんじゃまずいの? クラスを便利な構造体として使ってない?
340 名前:デフォルトの名無しさん [2005/05/26(木) 08:04:45 ] たしかにそうかもしれません。 設計を見直してみます。 しかし、いろいろ調べたんですが 位置姿勢を一言で表す良い言葉・表現が みつけられなかったのは残念です。
341 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 08:27:46 ] position で位置姿勢の両方の意味はあるみあいだけどな…
342 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 08:46:17 ] 数学(物理学)用語なんだから専門辞書かWikipediaかを当たればわかるんじゃない?
343 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 09:39:25 ] 姿勢というか向きならorientation
344 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 09:40:51 ] ああ、両方をひと言で、なのね。 日本語でも位置姿勢でフタコトだし、無理に一語にしないということでどうよ。
345 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 10:22:32 ] コマンドラインオプションを解析する関数名はどうすればいいですか。 言語はC++です。
346 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 10:24:43 ] parse
347 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 10:46:35 ] parse_arguments (オプションしかないなら _options でも) UNIX APIに倣うとgetopt(解析すると言うよりオプション取り出しだが)
348 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 10:50:59 ] parse_argumentsと parseArgumentsってどっちが主流なの?
349 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 10:53:10 ] parseOption parseCommandLine(Option)
350 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 12:21:57 ] parseCommandLine ってのしか見たことない
351 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 16:54:54 ] >>340 >位置姿勢を一言で表す良い言葉・表現がみつけられなかった(ry これが設計ミスじゃないかな?と疑うきっかけ。 オブジェクト指向の場合、クラスは事象の抽象化なので 必ずぴたっとハマる名前があるはず。
352 名前:345 mailto:sage [2005/05/26(木) 18:18:31 ] dクス。 getoptを使わせていただきます。
353 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 21:37:10 ] >>348 言語による。 C++やJavaなら後者が主流、だと思う
354 名前:デフォルトの名無しさん [2005/05/26(木) 21:38:02 ] 主流とか何かが意味があるかと思うのか?
355 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 21:39:16 ] >>354 自分以外が見るんならあるんじゃね?
356 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 00:24:24 ] Standard C++ Libraryだと _ で繋ぐ方式だね。
357 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 00:25:06 ] スレ違い
358 名前:デフォルトの名無しさん [2005/05/27(金) 05:29:02 ] >>355 見る時に必要なのは文字列を同定する能力 _も2語目語頭大文字化も どちらも他と区別できるくらいの能力が 読むものになければそもそもその人間は コードを読む資格がないとさえ言えよう
359 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 06:32:25 ] >>358 いや単純に気持ち悪いじゃん。 二つが混在してるようだと。
360 名前:デフォルトの名無しさん [2005/05/27(金) 07:44:43 ] >>359 混在?どちらでもいいから統一しておけば問題ないだろう 主流もなにもないコーダの好みで決めればいい
361 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 07:49:25 ] STLとWin32APIを同時に使うとなると否応無しに混在させられてしまう罠。
362 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 08:39:36 ] STLは"_"派、 出来ればこれに合わせたいんだけど 名前が無駄に長くなるんだよね・・
363 名前:______________ mailto:sage [2005/05/27(金) 09:33:16 ] 無駄とはなんだ!
364 名前:デフォルトの名無しさん [2005/05/27(金) 11:10:48 ] 2つの配列を比移動やコピーを行う際、 送り側の配列へのポインタ変数と、受け取り側の配列へのポインタ変数名 どんなのがよろしいでしょうか? int A[10], B[10]; int *pXXX = A; int *pYYY = B; for (i = 0; i < 5; i++) pXXX[i] = pYYY[i + 2]; ※こんな感じで使用予定です
365 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 11:11:34 ] pDest,pSource
366 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 11:15:05 ] ディレクトリを再帰的に巡って消費ファイルサイズを多い順にソートするクラス名(というかツール名)って何がいいですか。
367 名前:364 mailto:sage [2005/05/27(金) 11:17:34 ] >>365 それです! ソースは思いついたんですが、受け手の方が思いつかなくて(英語力ないもんで・・・) Dest ← ちなみにこれのフルスペスってどんなんですか?
368 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 11:21:36 ] >>367 もしかして distribute か?
369 名前:364 mailto:sage [2005/05/27(金) 11:23:53 ] >>368 destinationっぽいです ありがとうございました m(_ _)m
370 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 11:41:08 ] 蛇足だが、DestならSourceもSrcでもいいような気がする。
371 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 12:09:37 ] >364 p, q
372 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 13:20:07 ] ディスティネーションはつづりが覚えられないから、 from, to, でやってる。
373 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 13:24:00 ] toは予約語だから, tinko, manko, でやってる。
374 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 13:32:52 ] mankoは予約語だから, bou, ana, でやってる。
375 名前:デフォルトの名無しさん [2005/05/27(金) 14:17:35 ] >>366 ディレクトリを再帰的に巡って消費ファイルサイズを多い順にソートするクラス名(というかツール名 ) class dsmsfsojs
376 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 14:50:47 ] 見るだけならls -RS か ls -lRS ListFilesRecursiveOrderedBySizeDescending こっから先は命名でなく設計の話になっちゃうけど、順序を 決める部分は比較関数として別に引数として渡すようにする と後ろの長ったらしい部分はその引数の方に吸収できるね。
377 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 20:50:57 ] >>362 変数名を無駄に短く略して暗号化するのは脳内だけにしてほしいよね・・・
378 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 18:44:28 ] >>366 >ディレクトリを『再帰的に巡って』『消費ファイルサイズを』『多い順にソート』する ……ってだけで俺は少なくとも3つのクラスが必要だと思った
379 名前:デフォルトの名無しさん mailto:sage [2005/05/29(日) 21:48:29 ] >>366 それは機能の説明でクラスの説明じゃないな。 その機能を使って何をするのか、を考えればそれがクラス名。
380 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 10:52:18 ] STLの<functional>にあるlessの大文字小文字を区別しないバージョンを作ろうと思うのですが どういう名前にしたらよいでしょうか?
381 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 11:25:10 ] >>380 caselessでいいじゃん
382 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 11:29:10 ] あぁcaseですか。なんで思いつかなかったかな>自分 ありがとうございました。
383 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 11:57:36 ] 普通はilessにすると思うが…
384 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 12:00:48 ] _stricmpやlstrcmpiのiって何の略なんでしょうね?
385 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 12:02:06 ] ignorecase
386 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 12:09:08 ] あ、な〜る
387 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 17:55:19 ] 配列の名前に、適当な名前が見つからないときは要素の型の複数 を使うという俺ルールを採用していて、 Data の配列を作ろうとして手が止まったことがある。 ほんとはたぶんDataっていう要素型名自体がよくないんだけど。
388 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 17:56:54 ] Datumでいいやん
389 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 17:58:52 ] >>387 C/C++なら型名と変数名は同じでも平気だよ。良いスタイルとは言えないだろうけど。 もちろんintとかの組み込み型は予約語だから駄目だけど。
390 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 18:21:14 ] >>388 要素の方を datum ってことよね。 それ以前に、dataとかinfoとかいう漠然とした名前はよくないわけで。 あり得ない話だけど sheep とか fish とか carp の配列を作ろうとすると 悩みそうだな。
391 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 18:28:24 ] 俺なら sheeps, fishes, childs って堂々と書くなw
392 名前:デフォルトの名無しさん mailto:sage [2005/05/30(月) 21:03:14 ] DataArrayとか。 配列が名前に表れるのをきらうならDataCollectionとか。
393 名前:デフォルトの名無しさん [2005/05/30(月) 22:27:31 ] 英文法的に正しいかどうかより意味がわかるかどうか、簡潔かどうかを 優先した方がいいと思うけどね俺は。英文法なんて全然一貫性がないんだからさ。 別にDatasとかでいいじゃん。 setの過去分詞をsetedって記述するでしょ?(っていうと必ずシネーヨって 奴が出てくるんだが。ググッてみろよNativeだってそうしてる)