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/
237 名前:デフォルトの名無しさん [2005/05/05(木) 22:08:37 ] マンドクセからa,b,c,dってやっちゃいける?
238 名前:デフォルトの名無しさん mailto:sage [2005/05/05(木) 23:12:46 ] 止めはしないがそのうち後悔するだろう。
239 名前:デフォルトの名無しさん mailto:sage [2005/05/05(木) 23:20:59 ] そうなるともはや変数に名前さえいらないわけだが。
240 名前:デフォルトの名無しさん mailto:sage [2005/05/06(金) 05:59:01 ] 普段Java風に phoneBook などと名前を付けているのですが、 これにグローバル変数を表す言葉をつけたいのですが何か いいアイディアはないですか? g_phoneBook g_PhoneBook gphoneBook gPhoneBook ↑こんなの思いついたんですが…
241 名前:デフォルトの名無しさん mailto:sage [2005/05/06(金) 07:37:47 ] g〜以上にエコロジーでわかりやすい表記はないと思うが。 っていうか言語と型名(か用途)くらい書いてくれ。 その型のグローバルな変数が1個しかないなら PhoneBook::instance() でもいいかと。
242 名前:デフォルトの名無しさん mailto:sage [2005/05/06(金) 08:08:35 ] 言語はC++で、phoneBook は電話帳(std::multimap)です。 メンバだと phoneBook_ みたいにスタイルを崩さずに 書けるんだけど、グローバル変数だとgのプリフィクス だけで上の四つのパターンが思い浮かんで、どれが いいものかと…。
243 名前:デフォルトの名無しさん mailto:sage [2005/05/06(金) 09:11:52 ] >>240 のなかでは1か4だな。
244 名前:デフォルトの名無しさん mailto:sage [2005/05/06(金) 14:46:10 ] >>240 は規約の問題だと思われ。
245 名前:デフォルトの名無しさん [2005/05/07(土) 00:21:04 ] なんか他人のゴミ捨て監視してる近所の変なオバサンみたいな人がいるなあ。。 別に荒らしているわけでもないわけだし、 問題なのは脱線しているかどうかってことじゃなく有意義かどうかってことだと思うんだが。 有益な脱線もダメだっていうのかなあ。
246 名前:デフォルトの名無しさん mailto:sage [2005/05/07(土) 00:36:51 ] >>245 スレタイ付けてスレッド分けてるのは意味がないと申すか? まぁ文句だけいって適切なスレに誘導しないのは良くないな。 規約の話なら、このへんでどうぞ。 pc8.2ch.net/test/read.cgi/tech/1068752664/
247 名前:デフォルトの名無しさん mailto:sage [2005/05/07(土) 01:53:36 ] 例え有益な情報でも、分散していたら意味ないし、無益でしょ。 その情報を知りたい人が行く場所に書かれてないんだから。 脱線しやすいのは、スレッドの切り方が悪いだけっしょ。
248 名前:デフォルトの名無しさん mailto:sage [2005/05/07(土) 08:10:43 ] スレ違いを開き直るやつがいるスレはここですか。
249 名前:デフォルトの名無しさん mailto:sage [2005/05/07(土) 08:13:41 ] 議論できないノータリンはすっ込んでろ
250 名前:デフォルトの名無しさん mailto:sage [2005/05/07(土) 10:10:16 ] 変数名を決めるのとコーディング規約は切り離せないだろ
251 名前:デフォルトの名無しさん mailto:sage [2005/05/07(土) 21:36:53 ] グレーゾーンの問題ならともかく、>>240 は100%規約の話じゃん。 どれでも好きなやつ使えよとしか言いようがない。
252 名前:デフォルトの名無しさん mailto:sage [2005/05/08(日) 05:26:43 ] gじゃ意味不明だからちゃんと書かないと。 GLOBAL_____phonBook がおすすめ!
253 名前:デフォルトの名無しさん mailto:sage [2005/05/08(日) 07:25:40 ] 漏れなら g_phoneBook か gPhoneBook のどちらかだが確かに微妙だな… 前者の g_ プリフィクスはよく見るけど Java っぽくない 後者は Java っぽいけどあんまり見ない
254 名前:デフォルトの名無しさん [2005/05/11(水) 21:29:58 ] gやめれば? とかいってみるてすと
255 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 08:24:20 ] おいらの法則 グローバル PhoneBook ローカル phone_book
256 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 10:01:25 ] >PhoneBook クラス名っぽくて気持ち悪い
257 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 10:51:01 ] クラス名だったら CPhoneBook とか頭に何かつけるかな。
258 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 10:58:00 ] クラス名にCを付けるなんてキモイ
259 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 10:59:09 ] じゃあ変数名にVariableのVをつけよう。 PhoneBook VPhoneBook;
260 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 11:21:36 ] ハゲキモスw
261 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 12:03:18 ] g_phoneBookがいい希ガス
262 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 18:28:46 ] グローバル変数は大抵シングルトンでよくね? PhoneBook が2冊も3冊も必要なのか? と、スレ違いになっちゃうのか。 thePhoneBook ってのはどう? 「PhoneBook っていったらコレ!」みたいな雰囲気がでる。あと、ユニーク性も強調。
263 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 22:38:03 ] Theを付けると映画のタイトルっぽくなるw ThePhoneBook.prelude(); ThePhoneBook.theme(); ThePhoneBook.episode(); ThePhoneBook.finale();
264 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 22:44:15 ] 大作のようなB級映画のような。
265 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 23:28:59 ] >>262 そんなこと言ってるとマルチスレッドで破綻しないか? 逆に面倒だろ
266 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 00:00:37 ] >>265 プリミティブ型ならマルチスレッドで問題が起きないのかと
267 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 01:17:27 ] くだらないことなのですが、DBのフィールド名で 作成日をCREATE_DATEにしようかと思うのですが、 更新日をどうしようかと悩んでおります。 CHANGE_DATEというのを考えたのですが何か違うような。
268 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 02:54:34 ] UPDATE_DATE なんかかっこ悪いな。 renew(renewed)とかmodify(modified)とか 某フレームワークだと、 作成日 created_on 更新日 updated_on だな。
269 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 02:58:00 ] REFRESH_DATE
270 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 03:31:27 ] LAST_UPDATE
271 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 03:40:53 ] FILETIME ftCreateTime; // 作成日時 FILETIME ftLastAccessTime; // 最終アクセス日時 FILETIME ftLastWriteTime; // 最終更新日時
272 名前:デフォルトの名無しさん [2005/05/15(日) 13:02:02 ] a for accessed c for created c for changed m for modified t for touched u for used
273 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 14:43:13 ] HTTPだと Last-Modified だな
274 名前:267 mailto:sage [2005/05/16(月) 00:56:52 ] 皆さんレスありがとうございました。 色々参考にさせていただきまして、 作成日=CREATED_DATE 更新日=UPDATED_DATE にすることにしました。
275 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 11:02:17 ] updateは微妙に違う気もするが。いいけど
276 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 21:54:38 ] 頭に特定なものをつけておかないと、後で変数名だか定数だかクラス名だか混乱するぜ。
277 名前:デフォルトの名無しさん [2005/05/16(月) 21:56:19 ] 微妙に違うってセンスが理解不能。 こういうのをまさにupdateって言うわけだが。 これがupdateじゃなきゃ、何が(以下略
278 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 00:05:16 ] 「内容的に目新しくなくて、ちょっと誤字を修正しただけ」みたいなのは update ではないという脳内定義を持つ人は「微妙」に感じるのかも。
279 名前:デフォルトの名無しさん [2005/05/17(火) 00:21:02 ] 更新日のカラム名がUPDATE_DATE以外だったらコロヌ(・*・)
280 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 11:02:20 ] ウェ━━━━━━━━(0w0)━━━━━━━━イ!!!
281 名前:デフォルトの名無しさん [2005/05/17(火) 20:29:29 ] 版と刷の違いみたいな
282 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 20:56:55 ] UPDATE_DATE ってなんとなく HTML 言語と同じニュアンスを受ける
283 名前:デフォルトの名無しさん [2005/05/17(火) 21:21:24 ] HTM言語よりはよいだろう
284 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 21:22:07 ] H 文章記述言語
285 名前:デフォルトの名無しさん [2005/05/17(火) 21:25:06 ] 藁田
286 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 21:52:08 ] 官能小説業界標準規格
287 名前:デフォルトの名無しさん [2005/05/17(火) 23:26:01 ] bool型変数ないし、戻り値がブーリアン風な関数の名前について質問です。 言語または命名規約によっては、よく 「isXXX」 という名前が使われるみたいですが、 機能説明した疑問形の文章をそのまま英訳すると、 are、have、canなどの、is以外の単語が使われることってありますよね? もちろん、ちょっと形を変えれば isXXX になるときは別ですが この場合、ちょっと違和感があっても canXXX、haveXXX といった名前にするべきでしょうか? それとも英語的におかしくても isXXX にするべきでしょうか?
288 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 23:32:15 ] areとかhaveとかcan使うに決まってるだろ 馬鹿なこと聞いてんじゃねえよ
289 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 23:42:13 ] >>287 おかしいと分かっているにもかかわらず、isにこだわる理由は? isStockとか? ttp://www.objectclub.jp/community/codingstandard/ コーディング規約 第2条 pc8.2ch.net/test/read.cgi/tech/1068752664/
290 名前:287 mailto:sage [2005/05/18(水) 00:03:18 ] 自分はアマグラマなんで、社内共通の命名規約などとは縁が無い環境です。 いくつかの入門書やウェブサイトをあたってみましたが、それらには 「ブーリアンの場合は isXXX にしよう!」とは書いてあるんですが、 他の単語になる場合などは書かれていないようでした。 そもそも、C言語でJava風の変数名を使うのがおかしいのかもしれませんが(笑) >>288 常識でしたか。ありがとうございます。 >>289 理由は3つあります。 ・標準関数とかがそうなっていた ・haveXXXとかだと、多くの場合変数名が長くなる ・最近Javaの入門書を立ち読みして、ちょっと影響された(笑) こんなところです。
291 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 00:51:14 ] 規約にあるからといって意味も考えずに isHaveXXX なんて書く奴がいる。 本来の「英語(自然言語)に近い状態でソースが読めるようにする」という目的を忘れないで欲しい。
292 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 08:16:36 ] 常識ってバカかこいつ これでも読んどけ www.shos.info/develop/xp/cplusstd.html
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 ] 何をするクラスかが分からんと…