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

クラス名・変数名に迷ったら書き込むスレ。Part20

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2011/07/29(金) 21:32:01.00
クラス名、変数名のつけ方に悩んだら書き込むスレです。

命名規則や設計の善し悪しについて議論するのは基本的に禁止。

前スレ
クラス名・変数名に迷ったら書き込むスレ。Part19
http://hibari.2ch.net/test/read.cgi/tech/1293201229/
0524デフォルトの名無しさん2011/12/14(水) 21:29:26.16
>>517
お前の解釈に無理がある
0525デフォルトの名無しさん2011/12/14(水) 21:30:53.06
>>519
スペルがおかしい
0526デフォルトの名無しさん2011/12/14(水) 21:31:37.02
>>523
・・・大丈夫か?
0527デフォルトの名無しさん2011/12/14(水) 21:33:59.77
>>526
お前のほうが心配だわ
0528デフォルトの名無しさん2011/12/14(水) 21:34:11.28
>>524
あっそ

>>525
じゃあ517は正しいということでいいな
0529デフォルトの名無しさん2011/12/14(水) 21:36:28.82
まだ正しくはないね
0530デフォルトの名無しさん2011/12/14(水) 21:39:14.53
>>523
ゆとり乙
05315182011/12/14(水) 21:39:38.84
ExtractNumberってみると、Numberから何かをExtractすんのかなと思うけど、みんなはそうでもないのだろうか

>>525
すまん、スペルミスは俺だ。
0532デフォルトの名無しさん2011/12/14(水) 21:40:47.09
>>517
はじめからクラスにつける名前を聞いてるんだろ
0533デフォルトの名無しさん2011/12/14(水) 21:41:53.10
>>531
numberをextractする
0534デフォルトの名無しさん2011/12/14(水) 21:58:58.58
>>531
お前はこのスレに今後一切書き込みをするな

辞書も引けない奴がなんで518のように書けるのか理解できないわ
0535デフォルトの名無しさん2011/12/14(水) 22:04:26.47
このスレの奴らが居るチームって開発遅そうwww
0536デフォルトの名無しさん2011/12/14(水) 22:07:18.45
>>534
スレみてりゃわかるが、書き込めないやつだらけになっちゃうよ
0537デフォルトの名無しさん2011/12/14(水) 22:12:56.95
俺以外書き込まなくていいよ
出てるまともな答えはほとんど俺のだし
0538デフォルトの名無しさん2011/12/14(水) 22:16:19.15
>>523
お前はいつでもどこでも爆発してるよなw
0539デフォルトの名無しさん2011/12/14(水) 22:19:22.22
まあ馬鹿なお前らは延々と糞長い名前でも考えてろよ
俺はラムダ使うから。じゃーな
0540デフォルトの名無しさん2011/12/14(水) 22:24:36.83
↑気になって戻って来るに10億ジンバブエドル
0541デフォルトの名無しさん2011/12/14(水) 22:49:23.39
>>537
お前以外書き込めないのなら、お前が質問してお前が答えるのか

お前程度のレベルでその質問に答えられるのか?
0542デフォルトの名無しさん2011/12/14(水) 22:52:38.82
ああそうしてくれ
0543デフォルトの名無しさん2011/12/14(水) 23:31:10.30
>>537
そういうレスをするときは、自分のレスがどれであるかを書くべきだ
0544デフォルトの名無しさん2011/12/15(木) 11:24:10.16
Hoge型のオブジェクトを登録、削除、条件指定して選択できるクラスを作ったんだけどなんて名前がいい?
今はHogeDataBaseにしてるんだけど中でSQL使うわけでもないから紛らわしいかなと思って
0545デフォルトの名無しさん2011/12/15(木) 11:31:35.70
SQLだけがデータベースではないのでいいんじゃね
0546デフォルトの名無しさん2011/12/15(木) 12:01:35.51
HogeSet みたいな名前使ってる
0547デフォルトの名無しさん2011/12/15(木) 12:07:26.71
オブジェクトの生存期間を管理するだけの目的ならHogeHolder
Hogeと同じインタフェースをもたせて一挙に処理したいときはHogeGroup implements Hoge
それ以外は既存のコレクションクラスで十分だと思ってる
0548デフォルトの名無しさん2011/12/15(木) 12:51:01.55
HogeManagerにしとけばええねん
0549デフォルトの名無しさん2011/12/15(木) 21:00:21.60
HogeTracker
0550デフォルトの名無しさん2011/12/15(木) 21:14:55.29
Hogeクラスのクラスメソッドにしてしまえ。(それなんてActiveRec
0551デフォルトの名無しさん2011/12/15(木) 23:07:42.89
なんでDAOやRepositoryという言葉が出てこないかな…
0552デフォルトの名無しさん2011/12/15(木) 23:19:28.74
なんでだと思う?
0553デフォルトの名無しさん2011/12/15(木) 23:57:07.17
>>536の通りだな
0554デフォルトの名無しさん2011/12/16(金) 00:42:15.42
だお^^
0555デフォルトの名無しさん2011/12/16(金) 02:39:30.85
Containerでいいんでないの。
DataSetでもいいけど。
0556デフォルトの名無しさん2011/12/18(日) 00:07:05.92
ある範囲内で作業して、その範囲が終わったら、変更していた内容を元に戻すような関数を考えていますが、どのような名前にしようか迷ってます。
イメージ的にはDBのトランザクションとロールバックが近いので、
transaction do
 ...なんかする
end # なんかしたのを戻す
としようかと思ったのですが、
・DBライブラリで使っている名前とかぶる
・名前が長い(タイプ量が多い)
という問題があります。
ほかの候補としては、
・sandbox
・block
・scope
を考えてますが、いまいちいい名前ではないように感じています。
なにかお勧めの名前があれば教えて下さい。
0557デフォルトの名無しさん2011/12/18(日) 00:22:29.33
>>556
何が聞きたいのかよく理解できないんだけども....

>変更していた内容を元に戻すような関数を考えていますが、

という割には、
・sandbox
・block
・scope

どれもそういう名前に思えないんだけど。

っていうか、transactionで長いっていつの時代の人よw
0558デフォルトの名無しさん2011/12/18(日) 00:32:59.47
save
なんかする
restore
0559デフォルトの名無しさん2011/12/18(日) 04:19:38.47
BeginXXX
EndXXX
0560デフォルトの名無しさん2011/12/18(日) 04:38:37.29
reset
revert
restore
rollback
0561デフォルトの名無しさん2011/12/18(日) 05:05:32.38
変更してた内容を適用するんじゃなくて、あくまで元に戻すってことは、
例にもあるような、sandbox的な使い方ってことなのかな。

でもsandboxだと、あくまで一時的な作業データそのものを示すような気はするね。
0562デフォルトの名無しさん2011/12/18(日) 08:22:33.66
locally do ... done
0563デフォルトの名無しさん2011/12/18(日) 08:35:18.81
doAtomically
0564デフォルトの名無しさん2011/12/18(日) 18:59:10.81
setUp
tearDown
0565デフォルトの名無しさん2011/12/18(日) 23:45:16.29
変数じゃないけどスクリプトでマウスとキーボードを動かせるマクロソフトを作ろうと思うんだけど
名前何にしようかな
0566デフォルトの名無しさん2011/12/19(月) 00:44:42.12
おいたしちゃうぞ(テヘッ).vbs
0567デフォルトの名無しさん2011/12/19(月) 05:43:06.65
痛い名前にすると普及すかも
0568デフォルトの名無しさん2011/12/19(月) 07:20:06.77
ねぇ見てて.vbs
0569デフォルトの名無しさん2011/12/19(月) 18:57:29.52
検索系の関数の名前ってどうしたらいいですか
searchXXXXとかだと長くなってしまう・・・
0570デフォルトの名無しさん2011/12/19(月) 19:00:56.75
container.select(pred, buffer);
0571デフォルトの名無しさん2011/12/19(月) 19:13:52.67
findXXXX にすれば2文字短くなる
0572デフォルトの名無しさん2011/12/19(月) 19:34:04.25
これで長いとかセンス無さすぎ
0573デフォルトの名無しさん2011/12/19(月) 19:49:15.72
センスは「有る無し」じゃないんだよ

自分のセンスと「合う合わない」なんだよ
0574デフォルトの名無しさん2011/12/19(月) 19:53:36.32
それはそうかもしれん
0575デフォルトの名無しさん2011/12/19(月) 20:00:58.14
識別子の頭に数字が使えたらと思うことがたまにある

3DObject とか、128bitKey とか

なんでできない言語が多いんだろ
構文解析上なにか難しい事があるとは特に思えないけど
0576デフォルトの名無しさん2011/12/19(月) 20:12:16.81
>>573
君はセンスが無いね


0577デフォルトの名無しさん2011/12/19(月) 20:22:52.68
>>575
恐らくは接尾辞絡みだろうね
0578デフォルトの名無しさん2011/12/19(月) 20:37:50.04
ThreeDObject
0579デフォルトの名無しさん2011/12/19(月) 21:00:13.09
ЗDObject
0580デフォルトの名無しさん2011/12/19(月) 21:03:06.31
_3DObj
0581デフォルトの名無しさん2011/12/19(月) 21:03:32.28
>>572
おい、>>578 や >>579 らにも言ってやれよ
0582デフォルトの名無しさん2011/12/19(月) 22:02:11.89
明らかなネタにもしっかりと突っ込んでいかないとな!
0583デフォルトの名無しさん2011/12/19(月) 23:01:41.22
>>578 や >>579 はネタだろうが、>>580 はわりとマジっぽい

普段からそういうプログラム書いてそう
0584デフォルトの名無しさん2011/12/19(月) 23:04:37.74
>>583
>>580がなにか問題でも?
0585デフォルトの名無しさん2011/12/19(月) 23:08:46.71
プライベートメンバ名の先頭にアンダースコアをつける文化圏かと
0586デフォルトの名無しさん2011/12/19(月) 23:20:13.97
>>564
問題は何もない

ただ「識別子の頭に数字をつけるため」にアンダースコアを使うという発想が
一般的じゃないという意味でヘンというだけ

かといってネタとも思えない
本当に普段からそういう目的でプログラム書いてそうだと思った

>>585 なら前例を多く見てきたから分かるけど、
数字をつけるためってのはちょっとね、初めてだったよ
0587デフォルトの名無しさん2011/12/19(月) 23:32:25.95
_1とか普通に使いまくりだろ
0588デフォルトの名無しさん2011/12/19(月) 23:37:24.31
>>586
プライベートメンバの先頭にアンダースコアをつけない人にとってはなんら問題ないと思えることは予想できる。
ただ、プライベート(略)つける人が見たときに文句を言われることは必至だけどね。
0589デフォルトの名無しさん2011/12/20(火) 00:20:13.17
2dObjectってかけたほうがインターフェースシンプルになるよね
0590デフォルトの名無しさん2011/12/20(火) 00:42:21.51
RPGの賽振り処理書いてるときに先頭を数字にしたくなったっけ。
3d6とか。
0591デフォルトの名無しさん2011/12/20(火) 00:44:37.25
rand3d6でいいじゃん
0592デフォルトの名無しさん2011/12/20(火) 00:50:22.82
どう回避すればいいか尋ねたわけじゃないんだが。
0593デフォルトの名無しさん2011/12/20(火) 00:54:48.83
個人的にはなるべくなら_でプリフィクスの識別子は使いたくないね。
メンバ変数も含めて。

enumのメンバー名なんかで、どうしても数値そのものをメンバ名にする必用が
あったりする場面以外では極力避けたい。

やっぱり視覚的に見づらいんだよな。
0594デフォルトの名無しさん2011/12/20(火) 00:55:35.23
3dと書いたら普通はdouble型の数値リテラルなのに
3d6と書いたら識別子なんて紛らわしくてたまらん
0595デフォルトの名無しさん2011/12/20(火) 01:42:43.11
>>590
ダイス数や面数そのものが変数名になることって無くないか?
自分もサイコロ処理は書いたことがあるが、

 int nDice = 3;
 int nFaces = 6;
 int result = RollDice( nDice, nFaces );

…みたいな感じになったぞ。
0596デフォルトの名無しさん2011/12/20(火) 01:59:36.01
パラメータをenumにする場合とかじゃないかな
enum DICE={3d6,…};
0597デフォルトの名無しさん2011/12/20(火) 11:45:37.59
描画関係のメソッドを集めたスタティックなクラスの名前おねがいしゃす
Graphicsとかだと既存とかぶるし
GraphicUtil?
0598デフォルトの名無しさん2011/12/20(火) 12:06:25.11
おすすめはしないがヘルパー関数を集めたクラスは、
たとえばMathHelperなどがある。
0599デフォルトの名無しさん2011/12/20(火) 12:23:57.74
バランスシートを表すものを作ってますが、資産か負債かを表すenumの名前は何がいいでしょうか。
資産はAsset、負債はLiabilityですが、これを示すタイプの名前です。
どうも英語にはそういう概念がないのでは、という気配を感じていますが。
0600デフォルトの名無しさん2011/12/20(火) 12:26:05.72
順序的な意味で前、後ろって英語でなんていうの?
{a, b, c, d, e, f}
ってシーケンスがあって日本語では
aはeの前にある
dはcの後ろにある
と書くところを英語だとどうなる?
front/back、prev/nextはなんかニュアンス違う気がする
0601デフォルトの名無しさん2011/12/20(火) 13:26:18.49
precede, precedent ⇔ follow
かな

後者にはsucceedもあるけど、ぱっと見で間違えそう
0602デフォルトの名無しさん2011/12/20(火) 14:02:26.17
英語でも数列の話では、before, afterなんかを使うけど。
0603デフォルトの名無しさん2011/12/20(火) 16:00:02.07
>>597
既存とかぶってもいいように名前空間が。これもまたおすすめはしないけれど。
0604デフォルトの名無しさん2011/12/20(火) 16:01:39.20
隣接してるかどうか関係なく、そのように言うのかな
0605デフォルトの名無しさん2011/12/20(火) 18:49:27.14
調べたらbefore/behindだってさ
0606デフォルトの名無しさん2011/12/20(火) 22:36:32.06
behind の対義語は ahead だと思ってたぞ…。

before/after
ahead/behind
lead/follow
0607デフォルトの名無しさん2011/12/21(水) 01:26:44.95
MATLABで一時的な数値の記憶など汎用的に使用する変数としてvar1, var2,...という変数名を使っています
しかし、数字を書き忘れると分散を求めるvar()と認識される可能性があります
なにか他に良い変数名はないでしょうか
0608デフォルトの名無しさん2011/12/21(水) 01:54:35.37
困ったらhogeだろう
0609デフォルトの名無しさん2011/12/21(水) 04:13:48.59
temp
0610デフォルトの名無しさん2011/12/21(水) 09:17:55.69
サブシステム間の複雑に込み入ったN対Nの相互参照関係を解消するために
サブシステムを子要素、すべてのサブシステムを集約したクラスを親要素としてN個の1対1の相互参照にさせて
親に問い合わせると問い合わせを適切なサブシステムにディスパッチしてくれる
という構造でプログラムを作ったんだけどこの親と子の関係ってどんな名前がいいですかね?
0611デフォルトの名無しさん2011/12/21(水) 09:33:28.04
relationship
0612デフォルトの名無しさん2011/12/21(水) 09:36:22.56
>>610
あんま想像できなかったけど、
相互作用を記述するにはGoFのMediatorパターンが知られている。
一個のMediatorに対し複数のColleagueがあるような形。
0613デフォルトの名無しさん2011/12/21(水) 10:09:28.20
>>610
親の名前と子の名前と関係の暫定名は何?

0614デフォルトの名無しさん2011/12/21(水) 11:01:42.06
DDDにおけるAntiCorruptionLayerを思い出すなぁ。
親子という表現がよく分からんけど、Facadeパターンのように思える。
0615デフォルトの名無しさん2011/12/21(水) 11:14:52.41
Facadeは無いわ
0616デフォルトの名無しさん2011/12/21(水) 11:55:20.61
>>575
例えばC言語で 3L とか 0xf なんて識別子使われたら困る
数値リテラルとして有効な書法だからね
んで例外作るくらいなら頭に数字は全部禁止!としたほうが
プログラマからしても楽だと思う
0617デフォルトの名無しさん2011/12/21(水) 14:20:20.61
>>608,609
回答どもです

hogeは実際に使ってるソースを見たことがないのでいまいち感覚が掴めない
tempは何度か他の変数に使ったことがあるし・・・う〜んどうしよう
レス参考にして考えてみようと思いますありでした
0618片山博文MZ ◆0lBZNi.Q7evd 2011/12/22(木) 12:34:11.54
タブ型で文書を制御するフレームウィンドウのクラスはどんな名前がいい?
CTabDIFrameWndか?
0619デフォルトの名無しさん2011/12/22(木) 12:42:46.08
DIって何
0620片山博文MZ ◆0lBZNi.Q7evd 2011/12/22(木) 12:44:27.32
wikiを見て分かりました。CTDIFrameWndで決定します。
0621デフォルトの名無しさん2011/12/22(木) 12:55:23.01
クラッシュトゥデスクトップインナーフレームの杖!
0622片山博文MZ ◆0lBZNi.Q7evd 2011/12/22(木) 14:34:01.92
CWandOfCrashToDesktopInnerFrame
0623デフォルトの名無しさん2011/12/22(木) 17:17:07.72
コマンドとクエリーって何が違うの?
■ このスレッドは過去ログ倉庫に格納されています