クラス名・変数名に迷ったら書き込むスレ。Part16
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/11/21(土) 13:28:06質問する人は、その変数に何を格納するのか(クラスだったらその役割)
プログラミング言語は何なのかを、それぞれ書いて、
いい変数名を思いついた人は、それに答えてあげましょう。
命名規則や設計の善し悪しについて議論するのは基本的に禁止。
>>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/
Part14: http://pc12.2ch.net/test/read.cgi/tech/1230477632/
Part15: http://pc12.2ch.net/test/read.cgi/tech/1244797870/
0153142
2009/11/29(日) 17:32:00関数名はAttractかApproachにしようと思います。引数はbegin,target,stepあたりで。
>>145
確かに、ゲームではよく使いそうな処理ですね。
>>148-149
GUIに例えるなら、ゆっくり動いて吸着する……という感じでしょうか。
そのままではどんな距離でも反応しちゃうので、あらかじめ最も近いグリッドを求める必要があるでしょうが。
増減と吸着をまとめたいというのは正しいですが、
複雑な計算式で数値を求めるわけでもなく、if〜else if〜elseだけで終わる処理なんですよね。
>>150
終了点を0にすると、結構使う場面はありそうです。絶対値に対してデクリメントするような感じで。
まあ、そのまま書いても数行ですけれど。
>>152
実に良いセンス
0154デフォルトの名無しさん
2009/11/29(日) 19:31:300155デフォルトの名無しさん
2009/11/30(月) 17:23:55minHoge secHoge msecHogeとか?
0156デフォルトの名無しさん
2009/11/30(月) 17:32:41同類のバージョン違いのような物?は末尾を変えてる。
xxxYyyMin
xxxYyySec
xxxYyyMsec
0157デフォルトの名無しさん
2009/11/30(月) 18:24:390158デフォルトの名無しさん
2009/11/30(月) 19:47:40二重管理を避けるのはプログラミングでも仕事でも基本中の基本だよ。
0159デフォルトの名無しさん
2009/11/30(月) 20:01:220160デフォルトの名無しさん
2009/11/30(月) 20:27:23そう?よく考えてみた方がいいと思うよ。
0161155
2009/11/30(月) 20:42:40なるほど、後ろもアリか。
>157
アプリケーションハンガリアンって悪者扱いされてない方のハンガリアンだっけ。
>158-160
単位変換のコストが重い場合、もしくは同列に扱われるけど別の値の場合っていうパターンも。
0162デフォルトの名無しさん
2009/11/30(月) 21:22:53「同列に扱われるけど別の値」は何が言いたいのかよく理解できないけど、
(別の値なら名前を統一する必要ないのでは?)確かに変換コストが高い場合は
キャッシュしとく必要がある場合もあるね。
>アプリケーションハンガリアンって悪者扱いされてない方のハンガリアンだっけ。
そうは思わない。例のシステムハンガリアンよりはマシ、ってだけ。
アセンブラならともかく、まともな言語ならそういうのは構造体なりクラスなりで
表現すべきだと思う。
0163デフォルトの名無しさん
2009/11/30(月) 21:38:58一々型作ってられない時にアプリケーションハンガリアンが出てくると思うんだけどねえ。
別にプリフィックスじゃなくても下みたいなことやってるでしょ?
// 以下は同一スコープ
int onwerAge, userAge;
int updateInterval;
そりゃなんでもかんでも型作った方がコンパイラチェック入るからいいだろうけど
普通はそこまでしないよね。
0164デフォルトの名無しさん
2009/11/30(月) 21:44:09みんな無意識にやってると思う。
0165デフォルトの名無しさん
2009/11/30(月) 22:35:58いや俺は組み込みアセンブラもやってるから、そっちでは仕方なくその種の
プリフィクスだのタグだのくっつける命名をするけど。
0166デフォルトの名無しさん
2009/11/30(月) 22:50:21一々何するにもパブリックフィールド一つだけのクラス書いたり
typedefしたりしちゃってるわけ?
・・・それはそれは失礼しました
アプリケーションハンガリアンが何なのかわかってない人って結構多いのかねぇ・・・
0167デフォルトの名無しさん
2009/11/30(月) 22:59:20やらないよあんなこと。
というか、型を定義することを過剰に重荷に感じるメンタルの方を疑問に思った方がいいと思う。
それはただの習い性というか、思い込みでしょ。
0168デフォルトの名無しさん
2009/11/30(月) 23:07:06>>163 みたいな例でも
class Age とか class Interval 作るの??
int とかどこで使うんだいったい
0169デフォルトの名無しさん
2009/11/30(月) 23:08:46代物じゃないような気がするんだけど、俺の目が節穴なのかな。
0170デフォルトの名無しさん
2009/11/30(月) 23:13:04だからそれがハンガリアン記法がやりたかったことなんだってば。
で>>164なわけ。
0171デフォルトの名無しさん
2009/11/30(月) 23:17:16ハンガリアン嫌いな人はハンガリアンじゃないっていってりゃいいし
好きな人はハンガリアンだっていってりゃいいし
0172デフォルトの名無しさん
2009/11/30(月) 23:35:54>>163みたいのがハンガリアンなら、今時の世の中のコードの命名の大半は
ハンガリアンってことになっちまうよ。
そんなのありかよw
0173デフォルトの名無しさん
2009/11/30(月) 23:40:09int owner, user, update;
なんて命名するようなのがまだ現存してるんだよな・・・
省くなら型作れ、型作るの嫌なら論理的に区別付く名前付けろボケ新人
あとハンガリアンかどうかなんて関係なくね?
>>>163みたいのがハンガリアンなら、今時の世の中のコードの命名の大半は
>ハンガリアンってことになっちまうよ。
だと何かまずいのか?
0174デフォルトの名無しさん
2009/11/30(月) 23:47:180175デフォルトの名無しさん
2009/11/30(月) 23:51:440176デフォルトの名無しさん
2009/12/01(火) 00:03:44class hoge{
puclic:
int msec;
int sec;
int min;
};
0177デフォルトの名無しさん
2009/12/01(火) 02:37:39そういう質問じゃないのよ。
0178155
2009/12/01(火) 03:17:04えっ? 違うの?
0179デフォルトの名無しさん
2009/12/01(火) 03:34:00{
struct hoge {
int msec;
int sec;
} hoge_;
}
ローカルクラスにして使うとか?
うん、それはないね
0180デフォルトの名無しさん
2009/12/01(火) 07:11:40そういう質問じゃないよ
0181デフォルトの名無しさん
2009/12/01(火) 08:28:18int sec()const throw()
{
return _msec / 1000;
}
しょ?
0182デフォルトの名無しさん
2009/12/01(火) 08:36:44>もしくは同列に扱われるけど別の値の場合っていうパターンも。
これがよくわからんし
0183デフォルトの名無しさん
2009/12/01(火) 09:10:47みたいな感じの?
0184デフォルトの名無しさん
2009/12/01(火) 18:18:58あらかじめListNodeをオブジェクトプールで生成しておき、Listに対し要素が追加されたときはオブジェクトプールからListNodeを借りる。
いい名前が思いつかない。
0185デフォルトの名無しさん
2009/12/01(火) 19:00:16PreallocatedList とかかねぇ・・・
いいの思い付かないなあ
0186デフォルトの名無しさん
2009/12/01(火) 19:10:40>もしくは同列に扱われるけど別の値の場合っていうパターンも。
これは単に、別の値ってことでしょ。
元の質問を見ると、実体が1つの場合、そうでない場合の両方を想定してるように読める。
同列って言うのは、たぶん単位は違うけど次元が同じってことかと。
東京から大阪までの距離を保持する変数(km)と、目から鼻先までの距離の示す変数(cm)みたいな。
0187デフォルトの名無しさん
2009/12/01(火) 19:20:08PooledList
0188デフォルトの名無しさん
2009/12/01(火) 19:47:25CachedList
0189デフォルトの名無しさん
2009/12/01(火) 19:54:450190デフォルトの名無しさん
2009/12/01(火) 20:05:222ch みたいな数字が最初にくる固有名詞を変数化するときってどうしてます?
0191デフォルトの名無しさん
2009/12/01(火) 21:01:03storageList
0192デフォルトの名無しさん
2009/12/01(火) 21:04:150193デフォルトの名無しさん
2009/12/01(火) 21:12:402-> z
3-> E
4-> A
5-> s
6-> q
7-> T
8-> g
9-> q
0194デフォルトの名無しさん
2009/12/01(火) 21:33:37語順を工夫して無理やり2語目以降に持ってくのが基本だと思う。
またはone, two, three, .....とちゃんとスペルアウトしちゃうか。
アンダースコアで始まる名前が禁止じゃないルールならその手もあるのかも知れないけど、
見難いから個人的には嫌い。
0195デフォルトの名無しさん
2009/12/01(火) 23:19:090196デフォルトの名無しさん
2009/12/01(火) 23:51:07Hoge web2ch;
Hoge _2ch;
Hoge nichan;
Hoge obj2ch;
0197デフォルトの名無しさん
2009/12/02(水) 00:05:35var["2ch"] = 入れたいもの
0198デフォルトの名無しさん
2009/12/02(水) 08:40:52BBS2ch とか Web2ch あたりが妥当な気がするけど。
0199デフォルトの名無しさん
2009/12/02(水) 13:13:580200デフォルトの名無しさん
2009/12/02(水) 15:03:02iiHoe
iiiHoge
ivHoge
vHoge
0201デフォルトの名無しさん
2009/12/02(水) 16:06:140→O が抜けてる。
0202デフォルトの名無しさん
2009/12/02(水) 17:51:25・何らかの単語を先頭に付けて誤魔化す
・数字部分を英字に置き換える
の2パターンに分類されると思うが?
0203デフォルトの名無しさん
2009/12/02(水) 18:01:160204デフォルトの名無しさん
2009/12/02(水) 21:37:110205デフォルトの名無しさん
2009/12/03(木) 00:20:09何か適当な言葉はありませんか?
割り込み禁止と、禁止解除をそれぞれマクロ名に使います。
{
handle h = int_disable();
〜 // 割り込み禁止中
int_enable(h);
}
このようなコードを
XXXX_begin
〜
YYYY_end
のようにしたい
0206デフォルトの名無しさん
2009/12/03(木) 00:24:30critical section
0207デフォルトの名無しさん
2009/12/03(木) 00:41:13本当にそれやる必要ある?
別に変に別名つけたり抽象化しようとしたりする必要ないんじゃない?
そのままで十分分かりやすいし、別の表現で言い換えたからって
より分かりやすくなるとも思えないけど・・・
0208デフォルトの名無しさん
2009/12/03(木) 00:43:16INT_OBSTRUCT_END
0209デフォルトの名無しさん
2009/12/03(木) 01:18:28uninterruptible_end
0210デフォルトの名無しさん
2009/12/03(木) 10:32:38#define CS_END() LeaveCriticalSection(&g_cs)
0211デフォルトの名無しさん
2009/12/06(日) 14:58:32データ構造としてのmap(c++のstd::map)とかぶるのでほかの呼び方にしたい
どんなのがいいかな?
0212デフォルトの名無しさん
2009/12/06(日) 15:18:13さもなくばlandMap, tileMap, tiles, tileMatrixとか
0213デフォルトの名無しさん
2009/12/06(日) 15:21:39board
field
game_map
0214デフォルトの名無しさん
2009/12/06(日) 15:57:01MapCells とか MapTiles みたいな名前にしたなぁ。
0215デフォルトの名無しさん
2009/12/06(日) 18:06:000216デフォルトの名無しさん
2009/12/06(日) 21:46:43thx.
Boardが気に入ったんで使わせてもらいやす
0217デフォルトの名無しさん
2009/12/07(月) 01:24:570218デフォルトの名無しさん
2009/12/07(月) 02:23:330219デフォルトの名無しさん
2009/12/07(月) 03:01:330220デフォルトの名無しさん
2009/12/07(月) 08:05:36あるある
0221デフォルトの名無しさん
2009/12/07(月) 10:53:110222デフォルトの名無しさん
2009/12/07(月) 16:54:44明確に区別できるように、どうにかなりませんか?
0223デフォルトの名無しさん
2009/12/07(月) 17:33:34引数が違うから自ずと区別できそうだけど。
[オブジェクト指向版]
void Vector3d::normalize();
Vector3d Surface::get_normal(const Point3d& at);
[対象を引数で与える場合]
void normalize_vector(struct vector3d* v);
struct vector3d get_normal_vector(const struct surface* s, const struct point3d* p);
0224デフォルトの名無しさん
2009/12/07(月) 18:00:42Vector GetNormalVector(Vector *a, Vectir *b); // A,Bで構成された平面に対する法線ベクトルを返す
0225デフォルトの名無しさん
2009/12/07(月) 20:03:57Normalizeって要するに正規化するってことであって必ずしも単位ベクトルにするとは
限らないんじゃないのかね。
長さ100に揃えるのだって正規化だよね。
はっきりunitとかunityって言葉を使った方がいいんじゃないか。
というわけで、
GetUnitVector
OOPなら
Vector.NormalizeToUnity()
Vector.ToUnity()
0226デフォルトの名無しさん
2009/12/07(月) 20:27:58数学的に単位ベクトルを求めることをNormalizeするっていうのかな?
0227デフォルトの名無しさん
2009/12/07(月) 22:11:590228デフォルトの名無しさん
2009/12/08(火) 02:04:200229デフォルトの名無しさん
2009/12/08(火) 02:09:510230デフォルトの名無しさん
2009/12/10(木) 19:27:46m_KillTimer って名前つけてるんだ。
でもなんかこれだと「タイマーを無効化する」メソッドみたいな名前だ。
どうすればいいかな
0231デフォルトの名無しさん
2009/12/10(木) 19:31:360232デフォルトの名無しさん
2009/12/10(木) 20:15:23別にそのままでもいいじゃん。
メンバ変数を表すプリフィクスがついてるものをメソッドだと思う奴ないないよ。
どうしても明示的にするなら
mKillerTimer, mTimerToKill, mKillingTimer, mDisposingTimer
とか
っていうか、どうせそんなオブジェクト他にタイマ持ってないんだろうから
単にmTimerでもいいんじゃないの。
クラス名さえ十分適切ならそれでわかるし。
0233デフォルトの名無しさん
2009/12/10(木) 20:51:46KillerTimer とかも物騒でいいな
0234デフォルトの名無しさん
2009/12/10(木) 22:17:59文面を見る限りでは、そのオブジェクトには生存可能な期間(Time To Live)があって、
TTLが0になったらオブジェクトが死ぬイメージに見えたよ。
ってことで、m_ObjectTTL を提案してみる。
0235デフォルトの名無しさん
2009/12/10(木) 22:18:130236デフォルトの名無しさん
2009/12/10(木) 22:22:51でもどっちかっていうと削除されるべきオブジェクトの方に持たせたいところではある。
0237デフォルトの名無しさん
2009/12/11(金) 00:07:56オブジェクトの名前だと思うから、ちょっと違う気がする。
ちなみにTTLってネットワーク以外でも一般的に使うんだろうか。
普通TTLって聞いたら(今時あまり使われないとはいえ)半導体の方を想像しそう
0238デフォルトの名無しさん
2009/12/11(金) 00:20:590239デフォルトの名無しさん
2009/12/11(金) 00:40:25これじゃ分からんな。
0240デフォルトの名無しさん
2009/12/11(金) 01:25:17時刻の表示で、(プログラム起動から)何日目が経過、
ってどう出力したらいいでしょうか?
(経過した日) HH:MM:SS
という感じで簡潔に出力したいのですが。
0241デフォルトの名無しさん
2009/12/11(金) 07:37:08スレ違い
0242デフォルトの名無しさん
2009/12/11(金) 07:37:46uptime
elapsed
0243デフォルトの名無しさん
2009/12/11(金) 07:45:01誰か英語に直してください〜
http://pc12.2ch.net/test/read.cgi/tech/1194343330/
0244デフォルトの名無しさん
2009/12/13(日) 10:45:07bool m_AddObjectAutomatically
bool m_AddObjectAutomaticallyFlag
bool m_AllowAddObjectAutomatically
bool m_AcceptAddObjectAutomatically
bool m_AddObjctAutomaticallyEnabled
bool m_CanAddObjectAutomatically
それともboolにしないで
enum OBJADD {OA_MANUAL, OA_AUTO} m_ObjectAddition
とかのほうがいいですかね?
0245デフォルトの名無しさん
2009/12/13(日) 10:59:35F_AUTODEL = 0x1
0246デフォルトの名無しさん
2009/12/13(日) 17:20:41addition
objects
を省略して
bool auto_add_objects_;
0247デフォルトの名無しさん
2009/12/13(日) 20:45:550248デフォルトの名無しさん
2009/12/13(日) 20:52:520249デフォルトの名無しさん
2009/12/13(日) 22:27:180250デフォルトの名無しさん
2009/12/13(日) 22:39:230251デフォルトの名無しさん
2009/12/14(月) 00:53:410252デフォルトの名無しさん
2009/12/14(月) 01:02:58append
って使い分けてる?
■ このスレッドは過去ログ倉庫に格納されています