クラス名・変数名に迷ったら書き込むスレ。Part20
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2011/07/29(金) 21:32:01.00命名規則や設計の善し悪しについて議論するのは基本的に禁止。
前スレ
クラス名・変数名に迷ったら書き込むスレ。Part19
http://hibari.2ch.net/test/read.cgi/tech/1293201229/
0643デフォルトの名無しさん
2011/12/25(日) 00:13:24.04クラス名でも構いませんが、メソッド名を求めているクラスは
1. 他のウィジェット(GUI部品)のインターフェイスまたは基本クラスであり、
2. サイズの設定/取得以外を行う以外のメンバ関数が存在します
また、例としてWidgetというクラスにminSize/maxSizeを持たせましたが、
実際にそれらのメンバ変数を持つのはWidgetクラスの派生クラス、例としてLabelクラスです
派生クラスでは SetClampedSize仮() メンバ関数を実装しますが、本当にクランプを行うかどうかは実装によります
0644デフォルトの名無しさん
2011/12/25(日) 00:30:15.17関係ない事持ち出すな
0645デフォルトの名無しさん
2011/12/25(日) 00:34:09.660646デフォルトの名無しさん
2011/12/25(日) 00:45:05.930647デフォルトの名無しさん
2011/12/25(日) 01:07:06.20やっぱりminSize/maxSizeを持たせるのなら、メソッド名は単純にsetSizeとかsetCurrentSizeとすべき。
メソッド名に値が規制されることを盛り込むセンスはちょっと変な気がする。
繰り返しになるけど。
0648デフォルトの名無しさん
2011/12/25(日) 01:52:45.55案は俺 setClampedSize を提案したが、よく考えてみれば、
「設定した値がクランプされて格納される」ことをメソッド名で示すのは難しいな
setClampedSize じゃ、クランプ済みのサイズを設定しろ、と言っているように見える
俺も >>647 に同意見だ
メソッドを使うプログラマに「して欲しいこと」はメソッド名に織り込めるが、
メソッドを呼び出した結果「内部状態がどう変化するか」は
メソッド名に入れるべきじゃないような気がする
その代わりに、「どのような意味・役割を持つのか」をクラス名に折り込み、
Widget クラスからは分離させた方が良いのではないか?
具体的には、ClampedSize などの名前のクラスを作り、
設定した値がクランプされて保たれる役割をこのクラスに担わせ、
Widget クラスはこの ClampedSize クラスのインスタンスを保持する
0649デフォルトの名無しさん
2011/12/25(日) 02:02:24.87普通コメントやドキュメントに書かれるね
0650デフォルトの名無しさん
2011/12/25(日) 02:37:08.73参考になった。setSize か setCurrentSize にしてみるよ
ありがとうございました
0651デフォルトの名無しさん
2011/12/25(日) 16:13:56.44setSize(calcClampedSize(300));
とかになんのかな
0652デフォルトの名無しさん
2011/12/25(日) 17:42:57.690653デフォルトの名無しさん
2011/12/25(日) 17:47:06.67public:
explicit XXX(Container<Hoge> & c) : c(c) { }
void Add(Hoge const & hoge) {
c.push(hoge);
}
private:
Container<Hoge> & c;
};
Container<Hoge> c;
void Func(XXX xxx) {
while(isNotEnd) {
xxx.Add(hoge(...));
}
}
コンテナのインターフェースを制限してpushだけ(あるいはほかの必要なメンバだけ)にしたクラスがあるんだけどなにかいい名前はないかな?
用途はこのFuncを始めとして一部の関数でコンテナに対して間違った操作をコンパイル時チェックできるようにしたいというだけです
ContainerAdapterとかだとちょっと不明瞭な気がするけどあまり気にしないでいいのかな
0654デフォルトの名無しさん
2011/12/25(日) 23:16:09.53元の方針では
void Widget::ClampSize(Size input, Size output)
Widget の最小/最大サイズにクランプした input を output に出力する
void Widget::SetSize(Size value)
Widget のサイズを設定する。最小未満または最大値より大きい値を指定されたのであればアサーション(または例外)
bool Widget::TrySetSize(Size value)
Widget のサイズを設定する。設定に成功したのであれば true を返す
の3つの関数があって、それらを呼び出していたという経歴があるのだよ
0655デフォルトの名無しさん
2011/12/26(月) 05:45:51.74Size Widget::ClampSize(Size input);
戻り値はクランプされた値
ってやりたいけど、それはそれとしておいて、
TrySetSizeがあるのなら、SetSizeSafeでもよかったのかもね。
0656デフォルトの名無しさん
2011/12/26(月) 05:47:41.87Size Widget::ClampSize(Size value) にかえるかどうかは適宜。
0657デフォルトの名無しさん
2011/12/26(月) 15:10:21.36だけど〜される人ってなんていうの?
攻撃者→attacker
被攻撃者→?
0658デフォルトの名無しさん
2011/12/26(月) 15:23:11.49ともかく対比として使うことのみが目的なら、-eeで済ますことが多い。今回ならattackee
0659デフォルトの名無しさん
2011/12/26(月) 20:29:51.330660デフォルトの名無しさん
2011/12/26(月) 20:36:58.06reviewer と reviewee とかもよく見るね
0661デフォルトの名無しさん
2011/12/26(月) 23:17:48.43整数の場合に最小値から更に減算した場合などはアンダーフローとは呼ばないのでしょうか?
また呼ばないとしたら最小値からの減算をなんと名付けるべきでしょうか?
0662デフォルトの名無しさん
2011/12/26(月) 23:22:37.91アンダーフロー、オーバーフロー
0663デフォルトの名無しさん
2011/12/26(月) 23:23:08.340664デフォルトの名無しさん
2011/12/26(月) 23:23:42.97人間の頭の中にある計算の意味次第だから
0665デフォルトの名無しさん
2011/12/26(月) 23:59:17.69ググった感じだと使わないと思うんだけど...
個人的にもそういう用法は聞いた(読んだ)ことないから違和感感じる。
0666デフォルトの名無しさん
2011/12/27(火) 00:02:27.770667デフォルトの名無しさん
2011/12/27(火) 00:03:06.63お前の感想など聞いてないわw
0668デフォルトの名無しさん
2011/12/27(火) 00:04:32.54>>919,979,981,987,997
英語188/200点ってことは、2、3個ミスったんですよね?
どういう箇所を間違えたんですか?
999 :デフォルトの名無しさん [↓] :2011/12/04(日) 20:28:27.13
>>998
俺は919じゃねーから知らね。センターは175だったし
ただ小卒レベルで偉そうにしてる老害が目障りだっただけ
1000 :デフォルトの名無しさん [↓] :2011/12/04(日) 20:34:56.90
ゆとり(笑)
0669デフォルトの名無しさん
2011/12/27(火) 00:07:09.020670デフォルトの名無しさん
2011/12/27(火) 00:11:49.20少なくとも符号付整数については、オーバーフローとは演算結果が正しくないことを言う。
プラス/マイナスどちらの方向に「オーバーフロー」したかは問わない場合が多い。
どっちが情報弱者だよ。
0671デフォルトの名無しさん
2011/12/27(火) 00:22:27.850672デフォルトの名無しさん
2011/12/27(火) 01:32:47.02浮動小数点数同士の計算の結果が、表現できる最小の絶対値以下になること
整数同士の演算結果が-128未満だの-65536未満だのになることはアンダーフローとは言わないが、
このことを「整数のアンダーフロー」と言われてみれば確かに伝わる、空耳アワーの時間がやってまいりました
0673デフォルトの名無しさん
2011/12/27(火) 02:12:15.31よくわからんけど漢字能力を鍛え始める時期を考えれば結構早期なんじゃない?
0674デフォルトの名無しさん
2011/12/27(火) 07:20:28.52初めから多寡の問題じゃないんだよ情弱君
0675デフォルトの名無しさん
2011/12/27(火) 10:05:14.13型の定義の部分を、宣言の部分にまとめてしまっても問題はないのですが、
あえて定義を独立させるとき、型名と定数名は、どのような命名規則になるでしょうか。
なお、現在考えている候補は以下のとおりです。
他に良い規則があればお願いします。
struct Hoge HOGE; //同じ名前で定数を大文字に、型をキャメルに
struct tagHoge HOGE; //適当なプリフィクス/サフィックスをつける(システムハンガリアン)
struct Hoge h; //むしろ型名がメイン
struct Fuga HOGE; //全く別の名前を付ける
0676デフォルトの名無しさん
2011/12/27(火) 10:07:32.14なにも規則はありませんよ
0677デフォルトの名無しさん
2011/12/27(火) 11:00:46.910678デフォルトの名無しさん
2011/12/27(火) 11:59:42.68独立した型名を使うことを考えてないなら struct Hoge Hoge; で隠しちゃえば、
別の名前考える手間も省けていいんじゃない?
0679デフォルトの名無しさん
2011/12/27(火) 12:50:37.72_tってtime_tとかの_t?
>>678
ああそれは確かに。でもちょっと怖いw
0680デフォルトの名無しさん
2011/12/27(火) 12:53:00.86class CHoge;
struct SHoge;
class IHoge { virtual 〜 } ;
template <class THoge> 〜
0681デフォルトの名無しさん
2011/12/27(火) 13:09:03.96コメントで元の日本語も添える
最近はめんどくさくなってきて全部コレでいい気がしてきた
0682デフォルトの名無しさん
2011/12/27(火) 17:06:21.280683デフォルトの名無しさん
2011/12/27(火) 19:09:01.64他の用途もある構造体なんだろうか。
定数用途専用なら無名でいいんじゃないかな。
struct { 〜〜 } hoge
0684デフォルトの名無しさん
2011/12/27(火) 21:19:11.010685デフォルトの名無しさん
2011/12/27(火) 22:35:01.79そのまま英訳すると Application だからどうしようか悩んでるの?
0686デフォルトの名無しさん
2011/12/27(火) 22:54:57.70申請書クラスってよく見かけるけど、別に用紙とかの情報持つわけじゃないから申請情報クラスとかでいいのかも
0687デフォルトの名無しさん
2011/12/27(火) 23:45:33.76Yes
0688デフォルトの名無しさん
2011/12/27(火) 23:52:24.770689デフォルトの名無しさん
2011/12/28(水) 00:05:35.760690デフォルトの名無しさん
2011/12/28(水) 01:18:21.45ExcelのApplicationオブジェクトと紛らわしいので。
あと用紙も4枚綴りでカードってイメージじゃないので。
0691デフォルトの名無しさん
2011/12/28(水) 01:49:29.350692デフォルトの名無しさん
2011/12/28(水) 01:53:46.640693デフォルトの名無しさん
2011/12/28(水) 07:23:46.540694デフォルトの名無しさん
2011/12/28(水) 19:28:50.60外側の大きいRectangleと内側の小さいRectangleとの差(上、下、右、左の厚み)を表現するサイズを作りたいんだけど、名前をどうしようか迷う
0695デフォルトの名無しさん
2011/12/28(水) 19:32:04.570696デフォルトの名無しさん
2011/12/28(水) 19:36:27.470697565
2011/12/29(木) 16:32:24.06作る前に質問したから10日しかたってないんだな
http://makuru.tenohiragaeshi.com/
0698デフォルトの名無しさん
2011/12/29(木) 16:34:28.630699デフォルトの名無しさん
2011/12/29(木) 17:11:37.80SingleProcessはなんか違うよなあ
0700デフォルトの名無しさん
2011/12/29(木) 17:14:55.05GateKeeper gateKeeper;
};
0701デフォルトの名無しさん
2011/12/29(木) 18:08:35.54SingletonEnforcer
SingleInstanceForcer
こんなとこ?
0702デフォルトの名無しさん
2011/12/29(木) 18:41:53.020703デフォルトの名無しさん
2011/12/29(木) 19:37:07.600704デフォルトの名無しさん
2011/12/29(木) 19:52:43.290705デフォルトの名無しさん
2011/12/29(木) 20:06:02.420706デフォルトの名無しさん
2011/12/29(木) 20:15:47.080707デフォルトの名無しさん
2011/12/29(木) 21:44:42.17ありがとう参考になります
0708デフォルトの名無しさん
2011/12/31(土) 04:53:53.35亀レスだがサンクス
そんなクラスが存在していたとは知らなんだ
0709デフォルトの名無しさん
2011/12/31(土) 09:55:18.67集めたページの存在を知っていると、名前決めの際に役に立ちますので紹介します
http://www.wgag.net/doc/abbr.html
ほかにも、programming abbreviation などをキーワードにググると色々出てきます
0710デフォルトの名無しさん
2011/12/31(土) 10:44:37.10そういうのは解読に使うもんだ
0711デフォルトの名無しさん
2011/12/31(土) 13:49:27.52class Object { } ;
class ObjectWhichHasPosition : public Object {
math::vector position;
};
class ObjectWhichHasChildren {
std::vector<Object *> children;
};
なんかダサい
0712デフォルトの名無しさん
2011/12/31(土) 14:06:32.65MSのCOMインターフェイスでIObjectWithSiteなどというのもあるし
0713デフォルトの名無しさん
2011/12/31(土) 15:11:00.40余計なお世話かも知れないが、メンバ変数の存在を強く意識したクラスなんて差し替えしにくいし、
ましてや名前にまでそれをつけようってのはとても恐ろしいことだ。
0714デフォルトの名無しさん
2011/12/31(土) 19:24:02.28どうして素直にインターフェイスではだめなんだろう。
0715デフォルトの名無しさん
2011/12/31(土) 21:47:16.69このクラスはバウンディングボックスとハンドルのベクタを与えると、
引数のバウンディングボックスに衝突するバウンディングボックスとペアになっているハンドルを引数のベクタに挿入します
クラス名、メソッド名は何がいいでしょうか。実装は隠蔽されているので実装を反映させた名前は避けたいです
0716デフォルトの名無しさん
2011/12/31(土) 21:54:35.820717デフォルトの名無しさん
2012/01/03(火) 01:53:43.350718デフォルトの名無しさん
2012/01/03(火) 07:22:26.970719デフォルトの名無しさん
2012/01/03(火) 12:09:02.680720デフォルトの名無しさん
2012/01/03(火) 12:47:07.920721デフォルトの名無しさん
2012/01/03(火) 13:44:45.870722デフォルトの名無しさん
2012/01/03(火) 13:59:37.20対象となるものの数値的に現れる性質を調べたり、
あるいは(主に数学的な)問題を数値的に解くことを言っているのだと思うが
(それ以外の解釈を俺は思いつかん)
逆に数値的じゃない解析というのは、
対象となるものの構造的な性質を調べたり、
(主に数学的な)問題を解析的に解くこと、が例として挙げられるな
0723デフォルトの名無しさん
2012/01/03(火) 14:50:06.82むしろそれでもいいかと。
でも今時はto + 変換後の型名が一般的では?
toInt
toDouble
HogeToInt
HogeToDouble
例えばこんな感じ。
0724デフォルトの名無しさん
2012/01/03(火) 14:57:48.38「parse」という言葉に普通込めるニュアンスは、
明らかに違うと思うんだが・・・
0725デフォルトの名無しさん
2012/01/03(火) 17:09:05.020726デフォルトの名無しさん
2012/01/03(火) 17:54:52.93くだらない議論。
というか、解釈と解析なら、むしろ解析の方が妥当。
解釈というと逐語訳ではない(意訳的な)変換をニュアンス的に含むからね。
0727デフォルトの名無しさん
2012/01/03(火) 18:32:05.190728デフォルトの名無しさん
2012/01/03(火) 21:24:08.74※基本的に重い処理
あるものの表現方法を変換する→ToHoge, PiyoToHoge
※基本的に軽い処理
0729デフォルトの名無しさん
2012/01/03(火) 23:34:02.260730デフォルトの名無しさん
2012/01/03(火) 23:47:07.03そもそも「数値解析」なんていうアバウトなメソッドがある訳がない。
訳のわからんこと言ってる連中はこんなもの想像してたのか。
頭おかしいなw
0731デフォルトの名無しさん
2012/01/04(水) 06:09:42.940732デフォルトの名無しさん
2012/01/04(水) 06:46:55.130733デフォルトの名無しさん
2012/01/04(水) 13:52:42.090734デフォルトの名無しさん
2012/01/04(水) 15:34:11.880735デフォルトの名無しさん
2012/01/04(水) 16:14:18.55……は冗談として、SQLだとLIMIT句を使って取得数を変えたりするから、
それに倣って limits(NumOf)Records とか?
0736デフォルトの名無しさん
2012/01/04(水) 17:04:16.600737デフォルトの名無しさん
2012/01/04(水) 20:51:01.68GetHotRatings
0738デフォルトの名無しさん
2012/01/05(木) 02:50:03.84GetTopRecords
class Node { // ツリー構造のノード
private:
List<Node> children;
List<Hoge> hoges;
};
�@ 自身のhogesに登録されているHogeの数を取得するメソッド
�A 自身のhogesに登録されているHogeの数 + 自身を祖先として持つ全ての子ノードに登録されているHogeの数を取得するメソッド
を命名していただきたい
0739デフォルトの名無しさん
2012/01/05(木) 02:56:01.120740デフォルトの名無しさん
2012/01/05(木) 05:50:09.16なるほど、その手があったか!
とは思うものの、やはり�@と�Aの2つに分けて定義したい
0741デフォルトの名無しさん
2012/01/05(木) 07:45:34.950742デフォルトの名無しさん
2012/01/05(木) 09:00:37.51CountHogesRecursively
■ このスレッドは過去ログ倉庫に格納されています