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

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

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

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

前スレ
クラス名・変数名に迷ったら書き込むスレ。Part19
http://hibari.2ch.net/test/read.cgi/tech/1293201229/
0002デフォルトの名無しさん2011/07/29(金) 21:59:20.93
>>1 乙乙

落ちた消えてから助かるぜ。
0003デフォルトの名無しさん2011/07/30(土) 13:23:46.88
おつ。
前スレ埋まったの6月15日か。
0004デフォルトの名無しさん2011/08/01(月) 12:00:38.50
そういえば、質問スレかどこかで変数名の話題になってたな…
0005 忍法帖【Lv=14,xxxPT】 2011/08/02(火) 23:27:22.78
>1

Zなんたらかんたら
0006デフォルトの名無しさん2011/08/03(水) 23:53:39.48
_1zNoNoNotIchiOtsuItItItsHungarianNotation
0007デフォルトの名無しさん2011/08/03(水) 23:55:48.41
面白いと思ってるのかもしれんが、気色が悪いだけ
0008デフォルトの名無しさん2011/08/04(木) 00:32:58.85
すまんかった
0009デフォルトの名無しさん2011/08/04(木) 01:17:07.52
大丈夫
そこそこ面白かったよ
だからもうやめてね
0010 忍法帖【Lv=15,xxxPT】 2011/08/05(金) 12:39:50.66
TONさん誕生の瞬間

704 :デフォルトの名無しさん:2008/12/12(金) 16:04:28
スクリプト言語で、最初のほうで
定数A = 今の完全時刻(年月日から秒まで)
定数B = 定数Aから日付部分を取り出したもの、文字列にすると 2008-12-12
定数C = 定数Aから時間部分を取り出したもの、文字列にすると 16:04:34
としたときの、定数ABC。
Aを NOW という定数名で使うことが多いんだけど、Bは TODAY で、じゃあCは何? みたいな

705 :デフォルトの名無しさん:2008/12/12(金) 16:28:43
TODAYをやめて
DATEとTIMEにしたら?

706 :デフォルトの名無しさん:2008/12/12(金) 17:06:45
TODAYはセンス無いなw

707 :デフォルトの名無しさん:2008/12/12(金) 17:26:11
NOWから取り出した値だってのがわかるような名前がいいと思う。
NOW_DATEとNOW_TIMEでいんじゃね?

708 :デフォルトの名無しさん:2008/12/12(金) 17:31:25
TIMEって日付情報含んでそうだ

709 :デフォルトの名無しさん:2008/12/12(金) 17:48:04
>>708
そりゃお前の誤解だ

710 :デフォルトの名無しさん:2008/12/12(金) 19:31:20
俺はTodayは悪くないと思う。
それでいけばCはTimeOfNowってとこか。
0011デフォルトの名無しさん2011/08/05(金) 17:03:10.14
もう忘れようよ…
0012デフォルトの名無しさん2011/08/05(金) 20:03:16.78
>>10
なんか根暗っていうか、馬鹿なくせに執念深さだけは一人前って感じだなお前
0013デフォルトの名無しさん2011/08/05(金) 20:41:04.73
>>10-12
失せろゴミ
0014デフォルトの名無しさん2011/08/06(土) 01:06:49.39
>>12
TON乙
0015デフォルトの名無しさん2011/08/07(日) 14:49:24.90
tonまだいるのかよ
0016デフォルトの名無しさん2011/08/08(月) 23:45:33.87
結局
date
time
datetime
を使えばいいってことで
0017デフォルトの名無しさん2011/08/09(火) 02:16:18.40
あ行なら0、か行なら1をそれぞれ代入したい変数があるんだけど
かっこいい名前ありませんか
0018デフォルトの名無しさん2011/08/09(火) 02:19:50.84
>>17
consonant_index
0019デフォルトの名無しさん2011/08/09(火) 04:22:17.47
かっこよさを求めているからそれはストレートすぎてダメじゃないかな。
そもそもかっこいい名前を求めるのがダメという意見も出るだろうけれど、要望にはこたえてあげて欲しい
0020デフォルトの名無しさん2011/08/09(火) 04:27:47.64
失せろゴミクズ
0021デフォルトの名無しさん2011/08/09(火) 04:45:05.84
マジレスするとindexはおかしい。せめてそれぐらい突っ込めよ>>20
0022デフォルトの名無しさん2011/08/09(火) 04:46:50.37
それはストレートすぎてダメじゃないかな。
0023デフォルトの名無しさん2011/08/09(火) 05:00:29.60
indexっておかしいの?
0024デフォルトの名無しさん2011/08/09(火) 05:11:34.13
その質問はストレートすぎてダメじゃないかな。
0025デフォルトの名無しさん2011/08/09(火) 08:09:44.09
orderはどう?
0026デフォルトの名無しさん2011/08/09(火) 09:28:53.72
indexだとsqlに通らない
initialでいいかな
0027デフォルトの名無しさん2011/08/09(火) 09:38:22.21
>>21
?
0028デフォルトの名無しさん2011/08/09(火) 09:48:41.85
>>26
カラム名なら単純に consonant で良いんじゃないの
それか index の代わりに idx とか key とか
0029デフォルトの名無しさん2011/08/09(火) 09:50:46.69
>>23
別におかしくないよ

char consonant[] = { ' ', 'k', 's', 't', 'n', 'h', 'm', 'y', 'l', 'w', 'g', 'z', 'd', 'b' };
int consonant_index;
0030デフォルトの名無しさん2011/08/09(火) 11:38:07.65
先生、パ行がありません!
0031デフォルトの名無しさん2011/08/09(火) 11:52:56.56
これらのイベントを名づけてくれ

1. ユーザーがクリックして、システムがそれを処理する前のイベント
2. ユーザーがクリックして、システムがそれを処理した後のイベント
3. Hoge を見つけた時に発生するイベント
4. システムがロードを開始する直前に発生するイベント
5. システムがロードを開始する直後に発生するイベント
6. システムがロードを就労した直後に発生するイベント
0032デフォルトの名無しさん2011/08/09(火) 11:59:08.63
OnClicking
OnClicked
OnFindXXX
OnBeforeLoad
OnLoading
OnAfterLoad
0033デフォルトの名無しさん2011/08/09(火) 12:35:12.09
MSDN - C# 的には Before & After は使わないとかのルールが決められているけどどうなのよ
0034デフォルトの名無しさん2011/08/09(火) 12:45:40.77
OnClicking
OnClicked
OnHogeFound
OnLoadStarting
OnLoadStarted
OnLoadFinished
0035デフォルトの名無しさん2011/08/09(火) 13:26:39.23
>>33
PreとPostはおk?
0036デフォルトの名無しさん2011/08/09(火) 13:43:45.54
ClkStrkEv
CikExtcnEv
GotHogeScatEv
TakeLoadngEv
EmitLoadngEv
WipeLoadngEv
0037デフォルトの名無しさん2011/08/09(火) 13:46:21.59
>>35 おk

>>36
あまり略さない形式でお願いします!
パスカル・キャメルとかはどうでもいいかな
0038デフォルトの名無しさん2011/08/09(火) 14:06:03.02
>>36
糞すぎる
ネタにしてもつまらん
0039デフォルトの名無しさん2011/08/09(火) 19:48:04.21
Leet並にわかりづらいな
0040デフォルトの名無しさん2011/08/09(火) 20:37:45.80
>>31
まずどういうクラスのイベントなのかが分からないと話が始まらないと思うけど。

言語が何か知らないけど、普通はイベントといえどクラスのメンバというか、
クラスに属する何物かだよな。
0041デフォルトの名無しさん2011/08/09(火) 20:46:50.25
>>31
1. onClick1
2. onClick3 (システムがそれを処理するイベントはonClick2)
3. hogeFound
4. loadReady
5. loadStarted
6. loadFinished
0042デフォルトの名無しさん2011/08/09(火) 22:17:39.15
過去分詞とか使いたくないからonClickPreprocess かな・・なんか引っ掛かるが間違う奴はいないだろ。
0043デフォルトの名無しさん2011/08/10(水) 00:32:23.97
奇妙なこだわり持つなよ。
どうせ大した根拠無いんだろうに。
0044デフォルトの名無しさん2011/08/10(水) 00:41:10.42
馬鹿言え
不規則動詞の活用が覚えられないからに決まってるだろ
0045デフォルトの名無しさん2011/08/10(水) 00:48:25.90
大した根拠じゃないじゃん
0046デフォルトの名無しさん2011/08/10(水) 01:12:46.29
そんなに大マジで返されても困るわ
0047312011/08/10(水) 05:40:30.27
>>40

・1番、2番
マウス関連のイベントを発生させる Mouse クラスが、自身に登録されている全てのリスナーに通知するイベント
1番のイベントはキャンセル用の出力パラメータを持ち、キャンセルされたのであれば、2番のイベントが発生しない

0048312011/08/10(水) 05:43:01.23
・3番、4番、5番
ファイルなどのバイナリストリームからツリー構造のデータを読み込むメソッド LoadDataTree() があり、このメソッドの呼び出し中にノードオブジェクトへ通知されるイベント

4番 : LoadDataTree() が現在のノードの読み込みを開始する時に現在のノードに通知するイベント
   1番イベントと同じく、イベントを処理してキャンセルすることができ、キャンセルしたのであれば LoadDataTree() メソッドは即座に終了する

3番 : LoadDataTree() が現在のノードの子ノードを見つけたときに、現在のノードへ通知するイベント
   Hoge == 子ノードだね
0049312011/08/10(水) 05:45:03.80
5番 : ネタとしていれてみただけだが、意味合いとしては1番イベントに対する2番イベントみたいなもの

6番 : LoadDataTree() が現在のノードの読み込みを終了した時に、現在のノードに通知するイベント
0050デフォルトの名無しさん2011/08/10(水) 16:04:37.38
で、既出の案には何か不満でもあるのか?
0051312011/08/10(水) 19:17:04.53
>>50
で、あんたのお気に入りはどの案なんだ?
0052デフォルトの名無しさん2011/08/10(水) 20:21:40.82
36以外はまあまあ
0053デフォルトの名無しさん2011/08/10(水) 21:15:24.65
>>31
分かってると思うけど、発生順序が違うだけの同じようなイベントを定義するのは
あんまり良いことじゃない。

どうしてもという場合は、イベントを発生させるクラスにとっての意味ではなく、
リスナー側にやって欲しい処理で命名した方が分かりやすいと思う。(本来邪道臭い気もするけどね)

順序が欲しくなるのは、イベントハンドラ内で利用される別のオブジェクトのデータが
先に更新されている必要がある場合が多いだろうから。
0054312011/08/12(金) 06:50:56.03
> 分かってると思うけど、発生順序が違うだけの同じようなイベントを定義するのは
> あんまり良いことじゃない。
複雑で分かりにくくなることであれば、そこはかとなく理解している
ただ、今まででそれが必要になったことがあるので尋ねた


イベントハンドラ名に「On」を付ける意見が多いな
言語によっても違うだろうけど、Onは付けるべき、付けないでもいい?
0055デフォルトの名無しさん2011/08/12(金) 09:31:43.01
二文字でイベントっぽさが出るので個人的には好き
0056312011/08/15(月) 05:54:31.83
参考になった。ありがとう
0057デフォルトの名無しさん2011/08/17(水) 19:50:20.77
HogeクラスとIHogeインターフェースがあります。Hogeクラスのインスタンスを
コンストラクタの引数に取り、IHogeインターフェースを実装したHogeAdapterクラスが既にあります。
その逆バージョンのクラスの名前をお願いします。
IHogeインターフェースをコンストラクタの引数にとり、Hogeクラスの派生クラスの
名前です。

0058デフォルトの名無しさん2011/08/17(水) 20:03:13.18
>>57
いくら設計議論のスレでなくても、さすがにそれは根本的に考え方がおかしいといわざるを....
0059デフォルトの名無しさん2011/08/17(水) 20:05:50.81
>>58
いや、考えようによっては、名前を決めるということは設計に他ならないともいえる。
だから、設計に口出すのも似たようなもんだとも思える。
0060デフォルトの名無しさん2011/08/17(水) 22:41:29.34
57ですが、全然おかしくないと思いますが。
具体的にはStreamクラスがあります。基本は派生クラスのFileStreamやらでストリームを
扱います。ただ、WindowsのCOMに渡すとき、COMのIStreamインターフェースを
渡す必要があるのですが、そのために、既にStreamAdpaterクラスが用意されてます。
また、COMから返るのはIStreamインターフェースなのですが、通常のライブラリ
では、Streamクラスをベースに扱うようにできてるので、逆バージョンがほしいのです。

0061デフォルトの名無しさん2011/08/17(水) 22:46:02.42
具体的に書くべきでした。すみません。
0062デフォルトの名無しさん2011/08/17(水) 23:35:44.87
>>60
ではベタにComStreamAdapterとか。
まあこれでよければ質問しないかもしれんけどw
でも変に捻っても意味ないよねこういうのは。

アダプダーだと考えなければ、単にComStreamというのもあり?
0063デフォルトの名無しさん2011/08/18(木) 00:47:55.23
>>62
StreamAdapterのまんまでIStreamAdapterぐらいしか思いついていませんでした。
ありがとうございます。
0064デフォルトの名無しさん2011/08/20(土) 09:56:05.41
succやpredをよく見るのですが、これ何の略でしょうか?
前とか先とか関連だと思うのですが...
0065デフォルトの名無しさん2011/08/20(土) 09:58:10.48
successor
predecessor
かな?
0066642011/08/20(土) 10:13:15.23
>>65
ありがとうございます。
なるほど。省略したくなるような綴りですね...
0067デフォルトの名無しさん2011/08/21(日) 22:01:19.31
class C {
public:
 void hoge(bool _isXXX){ // _isXXXはXXXであるか判定する処理を行うかのフラグ
  if (_isXXX) isXXX();
  ...
 }
private:
 bool isXXX(){...} // XXXであるか判定する
}

ここではアンダーバーをつけて区別しましたが、isXXXの名前がかぶってしまいます。
引数の方のisXXXの命名がおかしい気はするのですが、なんて命名すればいいのでしょうか?
0068デフォルトの名無しさん2011/08/21(日) 22:40:37.91
メソッドもおかしいよ
返り値使わずに捨ててるし
0069デフォルトの名無しさん2011/08/21(日) 22:44:25.26
>>68
ああメソッドの呼び出しの部分は省略しすぎました。
XXXであるかの判定結果は利用してる物としてください。
0070デフォルトの名無しさん2011/08/21(日) 22:50:11.76
べただが...

class C {
public:
 void hoge(bool doCheckXXX){ // doCheckXXXはXXXであるか判定する処理を行うかのフラグ
  if (doCheckXXX) isXXX();
  ...
 }
private:
 bool isXXX(){...} // XXXであるか判定する
}
■ このスレッドは過去ログ倉庫に格納されています