クラス名・変数名に迷ったら書き込むスレ。Part14
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2008/12/29(月) 00:20:32質問する人は、その変数に何を格納するのか(クラスだったらその役割)
プログラミング言語は何なのかを、それぞれ書いて、
いい変数名を思いついた人は、それに答えてあげましょう。
命名規則や設計の善し悪しについて議論するのは基本的に禁止。
>>2 英和・和英・英英など各国語辞書と翻訳サイト。
>>3 類義語(シソーラス)辞書、図形・数式・数学用語の英単語。
>>4 関連スレと、いろいろな言語規約。
>>2-10 諸事情によりリンクがずれた場合。
前スレ。
◆ネーミング倶楽部◆: http://pc3.2ch.net/tech/kako/1035/10353/1035362308.html
Part1: http://pc5.2ch.net/tech/kako/1046/10465/1046541730.html
Part2: http://pc5.2ch.net/tech/kako/1058/10582/1058213523.html
Part3: http://pc5.2ch.net/test/read.cgi/tech/1067171530/
Part4: http://pc5.2ch.net/test/read.cgi/tech/1087209526/
Part5: http://pc8.2ch.net/test/read.cgi/tech/1109330204/
Part6: http://pc8.2ch.net/test/read.cgi/tech/1128266018/
Part7: http://pc8.2ch.net/test/read.cgi/tech/1144978008/
Part8: http://pc10.2ch.net/test/read.cgi/tech/1154448184/
Part9: http://pc11.2ch.net/test/read.cgi/tech/1168356029/
Part10: http://pc11.2ch.net/test/read.cgi/tech/1180146315/
Part11: http://pc11.2ch.net/test/read.cgi/tech/1191250784/
Part12: http://pc11.2ch.net/test/read.cgi/tech/1206118762/
Part13: http://pc11.2ch.net/test/read.cgi/tech/1222661623/
0153デフォルトの名無しさん
2009/02/03(火) 02:15:300154デフォルトの名無しさん
2009/02/03(火) 20:15:30今頃になってネチネチいうって難儀な性格だねホント。
正直精神分析の対象に思える。
しかも言うことが素っ頓狂だし。
まず結論から言うとTimePartOfNowとTimeOfNowは同じ'Now'を使ってもそれの
意味しているものが違うだけで、どちらもお題の答えとして正しい。
君のいうTimePartOfNowの'Now'はNowという名前のデータ構造が存在していることを
前提とした命名だろ。
俺の言ったTimeOfNowの'Now'は文字通りのNowだから。
普通の英会話で"date of today"とは言っても"date part of today"なんて言ったら意味不明だろ。
それから、定数(というかマクロで定義された即値)を大文字をアンダースコアで区切りで
表現するのってC/C++の慣習だろ。
他の言語じゃあまりやらないよ。(そもそもマクロで即値定義なんて原始的なことやってるの
C/C++とアセンブラぐらいしかないし。)
つーか基本的に意味ない習慣だからCでも自分だけで完結するコードなら俺は従わない。
0155デフォルトの名無しさん
2009/02/03(火) 20:17:56今頃になってネチネ(ry
0156デフォルトの名無しさん
2009/02/03(火) 20:21:54なんて命名の本質と何も関係ねえだろw
なんていうか、語るに落ちてるんだよな。
「命名以外の話題は禁止」と執拗にイチャモンをつける一方で、
同じ口で平気で命名の本質と何も関係ないことに固執する、この一貫性のなさ。
一貫してるのは、要するに「執拗に他人にケチをつけている」という一点においてのみ。
0157デフォルトの名無しさん
2009/02/03(火) 22:05:14なにを言っているのだお前は。1行目からおかしいだろ
0158デフォルトの名無しさん
2009/02/03(火) 22:25:35びっくりした。
本当に、びっくりした。
0159デフォルトの名無しさん
2009/02/03(火) 22:27:42C++もマクロで即値定義なんてことはやらないよ。
やってると思った?
0160デフォルトの名無しさん
2009/02/03(火) 22:46:24やっぱり期待通りに笑わせてくれるのなw
date part of today w
作為的なT.O.N.でもない例えでフイタw
0161デフォルトの名無しさん
2009/02/03(火) 23:19:52馬鹿か。
慣習は情報伝達コストを大幅に下げる。
命名に拘る理由の大部分が伝わり易さを求めている以上、基本的に意味ない習慣とか厨二馬鹿にしか言えないわ。
お前が慣習に従うかなんて誰も興味ないっつーの。
お前の狭量自慢もいい加減にしてくれ。
そして自分だけで完結しないこのスレで俺ルールを撒き散らすな。
0162デフォルトの名無しさん
2009/02/03(火) 23:20:07エールをおくらせてもらうよ!!!
T.O.N!!! T.O.N!!!
0163デフォルトの名無しさん
2009/02/03(火) 23:29:43自演乙
0164デフォルトの名無しさん
2009/02/03(火) 23:32:370165デフォルトの名無しさん
2009/02/04(水) 00:00:57これは真性w
0166デフォルトの名無しさん
2009/02/04(水) 00:13:240167デフォルトの名無しさん
2009/02/04(水) 00:19:450168デフォルトの名無しさん
2009/02/04(水) 00:30:37>>156
すごい・・・粘着質です・・・
0169デフォルトの名無しさん
2009/02/04(水) 00:44:380170デフォルトの名無しさん
2009/02/04(水) 01:07:17君それに後続する人の話をちゃんと読んで突っかかってる?
俺は、キャメルとかアンダースコア区切りとか、その種のスタイルの違いは命名の本質と
関係がないから(つまりスレの趣旨に従えばどうでもいいことだから)自分の好きなスタイルで
書いただけで、別に「アンダースコアで区切る書き方をするのは無意味だから止めるべき」などとは
いってないから。
わけのわからんことで突っかからないでくれる?
こんな頭悪い奴に馬鹿呼ばわりされたくないよまったくw
まあ、言いがかりに目をつぶってあえて君の話にのっかかると、
>慣習は情報伝達コストを大幅に下げる。
これはまったく同意なんだが、件の即値を大文字でアンダースコア区切りで
表現する慣習に関して言えば、これによって伝達される情報が本当に
必要不可欠な情報かどうかは俺は大いに疑問を持ってる。
他人が書いたコードを読むとき、たいがいの場合は「それ」が即値か定数か変更可能な変数か、
なんてことはどうでもいい場合が多いからね。
システムハンガリアン的な無意味で時代遅れな偏執に過ぎないでしょ。
0171デフォルトの名無しさん
2009/02/04(水) 01:11:04加えて簡潔な単語でお願いします
0172デフォルトの名無しさん
2009/02/04(水) 02:04:47ゴミはゴミ箱に入ってろ
0173デフォルトの名無しさん
2009/02/04(水) 02:18:060174デフォルトの名無しさん
2009/02/04(水) 02:26:250175デフォルトの名無しさん
2009/02/04(水) 03:01:34TONでもなくウザい人種だなw
0176デフォルトの名無しさん
2009/02/04(水) 03:02:18で、C++でも#define HOGE 5とか書いちゃうの?
0177デフォルトの名無しさん
2009/02/04(水) 03:02:530178デフォルトの名無しさん
2009/02/04(水) 03:11:21余り虐めるなよw
Java以外の経験があるわけが無い
0179デフォルトの名無しさん
2009/02/04(水) 04:28:490180デフォルトの名無しさん
2009/02/04(水) 08:25:290181デフォルトの名無しさん
2009/02/04(水) 12:46:160182デフォルトの名無しさん
2009/02/04(水) 16:01:510183デフォルトの名無しさん
2009/02/04(水) 17:26:46このスレで最上級に偉そうな君の言語経験を教えては貰えまいか?
それぞれ実務何年で頼みます。
0184デフォルトの名無しさん
2009/02/04(水) 20:28:560185デフォルトの名無しさん
2009/02/05(木) 00:42:290186デフォルトの名無しさん
2009/02/05(木) 00:45:480187デフォルトの名無しさん
2009/02/05(木) 23:36:03ぐぐっても、2chのスレくらいいしか見つからないけど、それって面白い話題?
0188デフォルトの名無しさん
2009/02/05(木) 23:45:49どんなネタなのか俺にも分からない
0189デフォルトの名無しさん
2009/02/05(木) 23:45:540190デフォルトの名無しさん
2009/02/06(金) 00:28:13まさに今の時間 みたいな強調表現かもな
0191デフォルトの名無しさん
2009/02/06(金) 00:37:39何故かとても
あたまがわるい
それがTimeOfNow
0192デフォルトの名無しさん
2009/02/06(金) 02:54:36簡潔に表すなら、重度の中二病患者
0193デフォルトの名無しさん
2009/02/06(金) 08:03:280194デフォルトの名無しさん
2009/02/06(金) 16:18:56暫定的に、getResolvedURLとしているけど、これは相対パスから絶対URLを
作成するときに使うような名前だよね?
0195デフォルトの名無しさん
2009/02/06(金) 16:20:270196デフォルトの名無しさん
2009/02/06(金) 16:30:32ありがとん
0197デフォルトの名無しさん
2009/02/07(土) 15:44:51いわゆるフラグという言葉は、本来は2値のみを意味するときに使う言葉でしょうか。
例えば1変数のビットごとに定数を当ててオプション指定するなんて例があったとして
ビットごとに見れば(アリかナシかの)フラグだし、変数としてみれば2値ではないし
こういう場合に変数名にフラグと入れるのは変でしょうか
0198デフォルトの名無しさん
2009/02/07(土) 15:46:440199デフォルトの名無しさん
2009/02/07(土) 15:51:07ありがとうございます。
こういうビット演算によって複数のオプション指定したりする手法にあつらえ向きの名前なんてのはないんでしょうか。
0200デフォルトの名無しさん
2009/02/07(土) 15:51:320201デフォルトの名無しさん
2009/02/07(土) 16:02:280202デフォルトの名無しさん
2009/02/07(土) 16:14:48>>201
ビットフィールドはC/C++のイメージがあるのでニュアンスが違う気もします・・・
0203デフォルトの名無しさん
2009/02/07(土) 16:19:07普通は「その値の特殊な扱い方」、つまりビットマスクを使ってビットごとに
情報を格納したり取得したりする必要がある、なんてことを変数の名前に
盛り込む必要はないはずだと思う。
そんなことより、そのビットごとの値の集合であるその変数の「意味」に注目して名前をつけるべき。
hogeOptionsとかhogeMethodとかhogeModeとかhogeSettingsでいいじゃん。
0204デフォルトの名無しさん
2009/02/07(土) 16:23:16なるほど!確かにそうですね・・・
変なところにこだわっておりました。どうも。
0205デフォルトの名無しさん
2009/02/07(土) 17:56:44, ‐' ´ ``‐、 / ̄:三}
. /,. -─‐- 、. ヽ / ,.=j
_,.:_'______ヽ、 .! ./ _,ノ
`‐、{ へ '゙⌒ `!~ヽ. ! /{. /
`! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/
. {.l '⌒ ゙ 6',! / :::::::::::::::/ __ そんなことよりTimeOfNowの話しようぜ!
. 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、
. ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ
,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 /
/ / :::::::::::::::: ; '´ /´\ / r'\
. i ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、
{ {:::::::::::;:イ / ‖i:::::::/:::::::::::::/ \
. ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: / ヽ
ヽ、 ,. ‐'" .ノ ,〈 > `'‐- '
> _,. ‐'´ / / `)
,ゝ _.⊥.-r┬:/
ヽ_,. -‐i"!´「L.=!┘ ヽ
< / / |
/ 、i / __ ./
0206デフォルトの名無しさん
2009/02/07(土) 19:42:420207デフォルトの名無しさん
2009/02/08(日) 06:01:57オレって…
0208デフォルトの名無しさん
2009/02/08(日) 12:51:280209デフォルトの名無しさん
2009/02/10(火) 00:03:15int xを与えられたときに、xより小さくない2の乗数を返す関数の名前はどういうのがよいでしょうか。
自分で考えたのはint up_to_pow2(int x);といった具合ですが、WEB辞書を見てみると、up to というのが
どうやら思っていたのと違う意味のようでした。
0210デフォルトの名無しさん
2009/02/10(火) 00:11:33x以下の2の乗数のうち最大のものを返すのか、x以上の2の乗数のうち最小のものを返すのか、
どっちだ?
0211デフォルトの名無しさん
2009/02/10(火) 00:12:470212デフォルトの名無しさん
2009/02/10(火) 00:13:350213デフォルトの名無しさん
2009/02/10(火) 00:14:110214デフォルトの名無しさん
2009/02/10(火) 00:15:060215デフォルトの名無しさん
2009/02/10(火) 00:19:03cの数学関数にちなんでceilにしようかとも思いましたが、
ceil_pow2, ceil_to_pow2で意図した意味を成すのか不安なのでround_up_to_pow2にします。
0216デフォルトの名無しさん
2009/02/10(火) 00:19:37画像サイズの正規化にしか使わないと決まっているものなら、>>212でいいんじゃね。
0217デフォルトの名無しさん
2009/02/10(火) 00:20:27rounding up an int to a power of two とか
出てくるからそれでいいとおもう。
0218デフォルトの名無しさん
2009/02/10(火) 01:10:25俺ならとりあえずGetMinPowerOf2()とかGetMinPow2()とかしておいて、
必要ならオプションでFloorかCeilingを指定できるオーバーロードを追加するとかすると思う。
というか、過去にそんなの作った気がする。
0219デフォルトの名無しさん
2009/02/10(火) 01:16:320220デフォルトの名無しさん
2009/02/10(火) 05:10:130221デフォルトの名無しさん
2009/02/10(火) 08:25:210222デフォルトの名無しさん
2009/02/10(火) 08:27:590223デフォルトの名無しさん
2009/02/10(火) 11:10:40265 :デフォルトの名無しさん[sage]:2007/11/22(木) 17:48:28
ある整数値を引数として与えて、その値以上の2のべき乗の数のうち、
最小のものを返す関数の名前は何が相応しいですか?
266 :デフォルトの名無しさん[sage]:2007/11/22(木) 17:52:58
least2PowerGreaterThan(int i)
267 :デフォルトの名無しさん[sage]:2007/11/22(木) 18:03:56
>>265
clp2
268 :デフォルトの名無しさん[sage]:2007/11/22(木) 18:29:21
2Power よりは Power2 の方がいい気が。
power of 2 の of を省略したもの。
昔、自分が使ったのは、CeilPower2 と FloorPower2 でそれぞれ
「x 以上の最小の2のべき」、「x 未満の最大の2のべき」にした。
>>267 も、ceiling power of 2 の略よね?
269 :デフォルトの名無しさん[sage]:2007/11/22(木) 19:02:30
>> >>267 も、ceiling power of 2 の略よね?
Exactly.
See Hacker's Delight
http://www.informit.com/content/images/0201914654/samplechapter/warrench03.pdf
270 :265[sage]:2007/11/22(木) 21:09:54
どうもありがとうございました。
CeilPowerOf2にします。
0224デフォルトの名無しさん
2009/02/11(水) 01:36:483Dモデルのボーンマトリクス等で親を継承する前のマトリクスをLocalMatrix、
継承後のマトリクスをGlobalMatrixと表していますが、
頂点カラー等はライトが当たる前の元の色をLocalColor、ライトの色を適応した
最終的なカラーを保持するメンバ名をGlobalColorと言うものなんでしょうか?
より適切な名前があるような気がしてなりません。
どなたかより良い名前があればご指摘お願いします。
0225224
2009/02/11(水) 01:44:12上記の、元データLocalに対して親を継承したものをGlobalとつけていますが、
マトリクス以外の親を継承したデータの名前に対してGlobal〜とつけるのは適切でしょうか?
継承したデータ、の内容は、色加算等の描画フラグ、ソートの補正値等が含まれます。
0226デフォルトの名無しさん
2009/02/11(水) 20:57:36るーとまとりくす(ry
0227デフォルトの名無しさん
2009/02/11(水) 23:01:410228デフォルトの名無しさん
2009/02/12(木) 03:59:03正直理解できてない…。
もしかしたら言葉にしづらい感覚的なことなのかもしれないが、
そこんところ、教えてもらえないかな
0229デフォルトの名無しさん
2009/02/12(木) 04:30:270230デフォルトの名無しさん
2009/02/12(木) 18:03:17「入力必須であることを設定、取得するプロバティ名」と、
「入力必須なのに入力されていない事を示すプロパティ名」に悩んでいるんだが、
何かいいアイデアないかな?
例えば、Requireと、IsRequireとか付けてみたんだが、
これじゃどっちがどっちだかわからないので、他のを考えてるんだけど思いつかない。
0231デフォルトの名無しさん
2009/02/12(木) 18:17:56Missing
0232デフォルトの名無しさん
2009/02/12(木) 18:28:07IsRequired
IsRequiredButNotFilledIn
0233デフォルトの名無しさん
2009/02/12(木) 18:33:04IsMissing
0234デフォルトの名無しさん
2009/02/12(木) 18:39:25IsRequiredとIsFilledがわかりやすそうなので、これにしました。
ありがとうございました
0235デフォルトの名無しさん
2009/02/12(木) 18:59:440236デフォルトの名無しさん
2009/02/12(木) 19:14:000237デフォルトの名無しさん
2009/02/12(木) 19:21:580238デフォルトの名無しさん
2009/02/12(木) 20:53:05そのクラスは、文字列か何かの別のプロパティを一つだけ持っていて、
そのプロパティが必須かどうかを表すプロパティ、って意味なのか?
だとしたらなんだか無駄な気がするんだけどな。
「それ」が必須かどうかを表現するためだけに、ただの文字列をラップするのか。
「それ」が必須かどうかなんてことは、そのデータを持つクラスが知ってればいいことだと思うけど。
0239デフォルトの名無しさん
2009/02/12(木) 21:03:220240デフォルトの名無しさん
2009/02/12(木) 21:06:16ま、開発経験の無いでっかちド馬鹿に一つだけ教えてやるけど
よくある入力フォームでの話だろ
お前は何の経験も無いから知らないだろうけど
そんな理想論掲げるだけ無駄だし無意味だし金にもならないし社会活動として破綻してる
0241デフォルトの名無しさん
2009/02/12(木) 21:34:51それはそうなんだが、俺(>>238)の言ってる意味わかってる?
普通は>>230みたいな変な実装しないと思うよ。
これじゃたわざわざ述する手間を増やして可読性を落としてるだけじゃん。
0242デフォルトの名無しさん
2009/02/12(木) 21:38:070243デフォルトの名無しさん
2009/02/12(木) 21:46:090244デフォルトの名無しさん
2009/02/12(木) 21:46:470245デフォルトの名無しさん
2009/02/12(木) 21:48:31例えばTextBoxの派生クラスを作るのに、
Require属性がなかったら、いちいち項目ごとに異なる派生クラスを作って、
いちいち入力必須かどうか記述しなくちゃいけないじゃん。
そのほうが手間だし可読性は最悪だろ
Require属性があればプロパティを設定するだけですべてに応用ができる。
0246デフォルトの名無しさん
2009/02/12(木) 21:51:160247デフォルトの名無しさん
2009/02/12(木) 21:55:44バリデートもそれぞれ別にやらなきゃいけないしな
User.IsMissing
Name.IsMissing
MailAddress.IsMissing
・・・・・
Address.IsMissing
とか、いちいち全部チェックするのかしら。
手間だし可読性も最悪。
0248デフォルトの名無しさん
2009/02/12(木) 22:01:03その入力欄が必須かどうかを表す値をGUI部品に持たせるって
普通は変な設計だと思うけどなw
もちろん必須かどうかをユーザーに対して表示する機能を持たせるため、
というような事情はありうるだろうけど。
それ以前に、それって>>230の話と違うことない?
>>230はGUI部品の話をしてたんだろうか?
0249デフォルトの名無しさん
2009/02/12(木) 22:01:56ごめん、変じゃない実装って何?
>>238だけじゃいまいち分からん。
0250デフォルトの名無しさん
2009/02/12(木) 22:06:03GUIで入力しないで何で入力するんだ?念力?
ユーザーオブジェクトの必須フィールドについてとかなら
全然違う書き方で質問してくると思うが
0251デフォルトの名無しさん
2009/02/12(木) 22:08:25インターフェースでIsRequire属性を、それぞれのクラスに継承させ、
ファクトリークラスからインスタンスを生成する。
ファクトリークラスでは
foreach(IInterface object in ObjectList)
boolValue = boolValue & Object.IsMissing;
これだけですべての項目のバリデートができる
user、name、mailAddress、birthDay、age等すべてでValidateするのとどちらが可読性が上かい?
そして、こんな設計は変なのかい?
なんか書いていてむなしいぜ。
0252デフォルトの名無しさん
2009/02/12(木) 22:17:29例えば、Customerクラスに氏を表すFamilyNameというメンバがあるとする。
そのFamilyNameが「入力必須」であることを表現するためだけに、
IsMissingをプロパティに持つ新たな型を導入するのは無駄だということ。
素直にFamilyNameは単純に文字列で持てばいい。
それが必須かどうかの情報はCustomerが持っている方が直感的だ。
■ このスレッドは過去ログ倉庫に格納されています