クラス名・変数名に迷ったら書き込むスレ。Part6
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/10/03(月) 00:13:38質問する人は、その変数に何を格納するのか(クラスだったらその役割)
プログラミング言語は何なのかを、それぞれ書いて、
いい変数名を思いついた人は、それに答えてあげましょう。
命名規則や設計の善し悪しについて議論するのは基本的に禁止。
>>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(間違って3として進行)
http://pc5.2ch.net/test/read.cgi/tech/1087209526/
クラス名・変数名に迷ったら書き込むスレ。Part5
http://pc8.2ch.net/test/read.cgi/tech/1109330204/
0153デフォルトの名無しさん
2005/11/03(木) 19:48:01スレの趣旨から外れてるけど命名が問題なわけではない。
>>144のコードを良く見ればわかるはず。
0154デフォルトの名無しさん
2005/11/03(木) 23:11:48Message 以外でお願いします。
0155デフォルトの名無しさん
2005/11/03(木) 23:12:550156デフォルトの名無しさん
2005/11/03(木) 23:30:200157デフォルトの名無しさん
2005/11/03(木) 23:32:29ムリポ orz
>>156
Message 自体が既に使われてるんで、できればそれとは関係無い名前が良いのですが……。
0158デフォルトの名無しさん
2005/11/03(木) 23:33:590159158
2005/11/03(木) 23:34:32StringHolderならどうだ。
0160デフォルトの名無しさん
2005/11/03(木) 23:48:05StringPool # おれならこれ。で、インスタンスをstringPool_errorとかに。
DiagnosticMessagePool # 長っMessageを含むのもいカンザキ?
そもそもあんたの言う「保持」の意味は?
既出のほかにも、pool,list,bag,container,handler,owner,...
0161デフォルトの名無しさん
2005/11/04(金) 00:10:15色々と済みません。
>保持
文字列が各所に分散するのも問題があるので、全文字列を1つにまとめて持っておくクラスを作ろうと考えました。
文字列が欲しいときには stringpool.getFatalErrorString(now_state) とかで、現在の状態を含む文字列を返してきます。
0162デフォルトの名無しさん
2005/11/04(金) 00:18:47そんなクラス作っても静的メソッドの寄せ集めになるだけで無意味な気もするけど。。
0163デフォルトの名無しさん
2005/11/04(金) 00:25:19それが困ったことに、各オブジェクトのマネージャクラスに置いておけることが分かったんです。
静的メソッド全く無し。
ついでに言うと、同じ文字列を複数クラスで使用していたんで、その共通化も兼ねてるんですね。
なんか設計の話はスレ違いっぽくて申し訳ないんですが。
0164デフォルトの名無しさん
2005/11/04(金) 00:43:47じゃ、思いつくままに。
GlobalMessageBag
StringTable
MessageGenerator
SentenceMaker
SpeechWriter
StringStorage
AppMessageDictionary
0165デフォルトの名無しさん
2005/11/04(金) 00:50:46単純ですが思いつきませんでした。これを使わせていただきます。
皆様ありがとうございました m(_ _)m
0166デフォルトの名無しさん
2005/11/04(金) 18:30:32いろいろ組み合わせて呼んでくれる便利メソッドを持つクラスを作るんですが、
いい名前はないでしょうか?言語はC++です。
class IFoo{
public:
virtual void method1() = 0;
virtual void method2() = 0;
};
class ??? : public IFoo{
public:
???(IFoo *foo) : foo_(foo){}
void call_both() {foo_->method1(); foo_->method2();}
void method1() {foo_->method1();}
void method2() {foo_->mothod2();}
private:
Foo *foo_;
};
みたいな感じです。よろしくお願いします。
0167デフォルトの名無しさん
2005/11/04(金) 18:35:30インターフェイスを思いっきり意識してるクラスなら、
インターフェイス名からIとるだけでいい気がする。
0168デフォルトの名無しさん
2005/11/04(金) 18:43:280169166
2005/11/04(金) 18:52:23Iとるだけが単純でわかりやすそうなので、とりあえずこれを使わせていただきます。
ありがとうございました。m(_ _)m
0170デフォルトの名無しさん
2005/11/04(金) 19:26:05Foo foo = new Foo();なんて微妙すぎね?
0171デフォルトの名無しさん
2005/11/04(金) 19:32:01ドドネトの命名ガイドラインでもそうなってるし。
おれはクラスにCはやっぱり付けた方が明示的でいいと思うけどね
0172デフォルトの名無しさん
2005/11/04(金) 19:36:58>>1
0173デフォルトの名無しさん
2005/11/04(金) 19:38:120174デフォルトの名無しさん
2005/11/05(土) 01:20:12たとえば、DBのテーブル構造をマッピングしたオブジェクトが
class Person() {
private String name;
private String age;
public getName(){ return name; }
public getAge(){ return age; }
}
として、このPersonのインスタンスを格納するコレクションがあったとした場合、
いわゆる「データモデル」として呼んでいいのは、コレクションに詰められた個々の
Personインスタンスなのか、それとも、コレクションそのものをモデルとして呼んでいいんでしょうか?
0175今のテンプレを作った気がする人
2005/11/05(土) 01:27:58〜議論するのは基本的に禁止
の部分、
〜議論するのは"基本的に"禁止
にしませんか?
絶対禁止じゃないという雰囲気がいいと思うんですが...
そもそもあの文面は自分と違うスタイルの人を攻撃する目的だと思われるレスが多かったり
宗教戦争がはじまると収集がつかなくなっていたので必要だったものであって、
有益な議論ならばアリかなと思うのですが。
どうでしょう?
0176デフォルトの名無しさん
2005/11/05(土) 02:26:56次スレ立てるやつに一任で。
0177デフォルトの名無しさん
2005/11/05(土) 13:27:53得られる利益よりも失われる不利益の方が大きいに決まってるよな。
こういう簡単なことがわからない馬鹿が多いんだよ。
コントロール感に飢えてる奴ね。
PTAなんかではりきっちゃうオバサンいるでしょ?あれそのものだよね。
お前は世の中や子供の利益考えてモノ言ってるわけじゃなく、
単に自分自身の達成感や世の中操縦してるって感覚が欲しいだけだろ、って。
0178デフォルトの名無しさん
2005/11/06(日) 02:25:50命名のための見かたと考えかたについての議論はあり、くらいで。
0179デフォルトの名無しさん
2005/11/06(日) 11:55:19不毛な宗教戦争にならない限りはいいんじゃね?
0180デフォルトの名無しさん
2005/11/06(日) 11:57:51こういうくだらない流れになるので今後は一切設計ネタおよびメタ設計ネタを禁止します。
0181デフォルトの名無しさん
2005/11/06(日) 12:02:270182デフォルトの名無しさん
2005/11/06(日) 14:18:23というわけで
book_id, author_id
1, 1
1, 2
2, 3
3, 3
のテーブル名をどうしたらいいですか?
0183デフォルトの名無しさん
2005/11/06(日) 14:40:510184デフォルトの名無しさん
2005/11/06(日) 14:50:19book_id, book_title 本テーブル
1, デスノート
2, カイジ
3, 黒沢
author_id, author_name 著者テーブル
1, 大場
2, 小畑
3, 福本
book_id, author_id
1, 1
1, 2
2, 3
3, 3
↑みたいな感じで
それもう使ってるんで別のがいいんです
0185デフォルトの名無しさん
2005/11/06(日) 14:57:070186デフォルトの名無しさん
2005/11/06(日) 14:59:39author_id, author_name 著者テーブル ←これです
1, 大場
2, 小畑
3, 福本
0187デフォルトの名無しさん
2005/11/06(日) 15:04:400188デフォルトの名無しさん
2005/11/06(日) 15:07:44あーなるほど
ありがとうございました
0189デフォルトの名無しさん
2005/11/06(日) 15:38:39このsageない基地外なんか過去から全部同じ椰子じゃないかとまで思ってしまう。
(ネタがつまらんのが致命的にキモイ)
0190デフォルトの名無しさん
2005/11/06(日) 17:49:23何様?
0191デフォルトの名無しさん
2005/11/06(日) 23:43:40前者は java だと equals なんで、後者にどのような名前をつけるのか、ご意見をよろしくお願いします。
0192デフォルトの名無しさん
2005/11/07(月) 00:48:07簡単にでも説明してくれると考えられるんだが…
0193デフォルトの名無しさん
2005/11/07(月) 00:57:03Identicalなんてどう?
0194デフォルトの名無しさん
2005/11/07(月) 00:57:58中身まで確かめるのが、java の equals に Lisp の equal
けど、今回は equals はデフォルト実装のまま (== と等しい) でいきたいんで、
equals 以外の 『中身まで確かめる EQUAL』 みたいな名前が欲しいと思ったんです。
0195デフォルトの名無しさん
2005/11/07(月) 01:01:50これを見た感じだと単に次のように思えたんだが。。。
lispのeq = Javaの==
lispのequal = JavaのEquals
違うのか?
0196デフォルトの名無しさん
2005/11/07(月) 01:04:17java知らないけど、そういうのってequalsをオーバーライドするべきなんじゃ。。
第一、任意のクラスの値同一性の検査法なんて未定義なんじゃないの?
0197デフォルトの名無しさん
2005/11/07(月) 01:05:08じゃあ、equals()とequalsValue()くらいでいいんじゃね?
0198デフォルトの名無しさん
2005/11/07(月) 01:06:54了解です。しばらくはこれで頑張ってみます。
0199デフォルトの名無しさん
2005/11/07(月) 15:11:310200デフォルトの名無しさん
2005/11/07(月) 17:43:25あと、equivalent って数学では同値って意味で、
見かけ上 equals ではないんだけど、あるルールの下では2者の区別が付かないもののこと。
{0, 1, 2} と {a, b, c} は not equal だけど equivalent って事があったりするから、
中身見て等しいかどうか確かめるものに equivalent は違和感がちょっとある。
0201デフォルトの名無しさん
2005/11/07(月) 17:48:38compare by value とか、by か with いるかも。
0202デフォルトの名無しさん
2005/11/07(月) 18:51:29equalsValue だかなんだか知らないけど、値の等価性の検査用のメソッドが
余分にもう一個あるクラスのコードを一年後に見て、そういうクラスを作った
一年前の自分を呪わない自信ある?
普通にequalsをオーバーライドすべきでしょ。
本当に二つも値の等価性の検査用のメソッドが必要なら、なぜそれが二つも必要なのか
少なくともその理由をほのめかすような命名がされてないとイライラすると思うけど。
同義の言い回しをメソッド名にするなんて愚の骨頂でしょ。
0203デフォルトの名無しさん
2005/11/07(月) 18:57:24あります。理由は↓に書いたですが。
ttp://pc8.2ch.net/test/read.cgi/tech/1130315416/628
0204デフォルトの名無しさん
2005/11/07(月) 19:34:02参照が等しくなくても、中身が同じなら true ってのがやりたいんだから、
見かけ上等しくないけど、中身が等しいというルールの下では区別が付かないということで、
equivalent で悪くないと思うんだけど。
まあ、Java ではそれを equals としちゃってるから、
似た別の単語を使うのは混乱の元かもね・・・。
0205デフォルトの名無しさん
2005/11/07(月) 20:08:59そのメンバーの名前を使うのが見た目としても、わかりやすいのでは。
size で比較するなら hasSameSizeAs とか。
A.hasSameSizeAs(B) となると、英文法的にはちょっとおかしいけどね。
0206デフォルトの名無しさん
2005/11/07(月) 20:14:21いや、うん。逆なんだ。
比較対象になっちゃいけないメンバが1つあって、それ以外の内容を比較するメソッドが欲しかったんよ。
具体的に言うと、プロトタイプベースのスロットテーブルがそれなんだけど。
0207デフォルトの名無しさん
2005/11/07(月) 20:26:07設計とかについてあんまりうるさく言わないようにね。すれ違いなので。
>>206
じゃあequalsNearly()とかでどーだ?だいたい同じっつー感じで。w
0208デフォルトの名無しさん
2005/11/07(月) 20:34:18だいたい同じかw それなら equalsFuzzy とかw
0209デフォルトの名無しさん
2005/11/07(月) 21:11:45で、除外する性質の名前を *** に入れる。
0210デフォルトの名無しさん
2005/11/07(月) 23:25:43設計の話を強要するのはいかんというのがスレ趣旨だが
質問者から情報を引き出す場合に「こういう設計じゃいかんの?」と聞くのもNGだろか?
共通に判断する部分だけ別クラスにくくり出して、そいつへのgetter作って、
そいつら同士で==するのはどう?
hoge.getValue() == hage.getValue()
が真のとき、
hoge == hage
が真とは限らない。みたいな。これじゃ駄目?
0211191
2005/11/07(月) 23:30:050212デフォルトの名無しさん
2005/11/07(月) 23:45:30Javaでは同一性の検査には==を、
同値性の検査にはequalsを使う約束になってる。
これはC++で同一性の検査はアドレスとってアドレスを比較し、
同値性の検査にはoperator== を使うと決まってるのと一緒。
lispは知らんがeqとequalがそうなんだろ?
それ以外のことをしたいなら同一性と同値性の話を持ち出すのは間違いだったはずだ。
結局何がしたいん?
0213191
2005/11/08(火) 00:17:56・ java 上で動く俺言語つくっている。
・俺言語上のオブジェクトのインスタンスは、java 上のインスタンスで表現することにした。
・オブジェクトは、それ自身が別々のメンバ表 (スロットテーブル) を持っている。つまりプロトタイプベース。
・ちなみにメンバ表自体は自由に書き換え可能。
・数値オブジェクト "1" のインスタンスが2個あるとする。
・『片方』 に "hoge" という名前のメンバを追加する。
・この時点で、java 上の同値性は偽、俺言語上の同値性を真にしたい。
(なぜなら、java から見たら2つは別々のオブジェクト。しかし俺言語から見たら両方とも "1")
・ java 上の同値性を調べるメソッドは equals
・俺言語上の同値性を調べるメソッドが別に欲しかった。んで equalsValue にした。
0214デフォルトの名無しさん
2005/11/08(火) 01:16:370215デフォルトの名無しさん
2005/11/08(火) 01:17:130216191
2005/11/08(火) 01:23:19うちだけが占有するのもあれなんで、次の質問どうぞ↓
0217デフォルトの名無しさん
2005/11/08(火) 06:53:51その略称を使った方がすっきりしそう。
0218デフォルトの名無しさん
2005/11/08(火) 08:12:57byte[]使ってVMonVMすればいいのに。
0219デフォルトの名無しさん
2005/11/08(火) 11:55:25では命名しよう。
開発コード:うんにょらはっぽっで
0220デフォルトの名無しさん
2005/11/08(火) 20:23:03作りはBoostのvariantとかanyのような感じで、ただし特定の型しか格納できないやつ。
あるいはauto_ptrの外観がポインタっぽくないやつ。
0221デフォルトの名無しさん
2005/11/08(火) 20:42:480222デフォルトの名無しさん
2005/11/08(火) 20:46:52もっといかにもそれ自体が持ってるようなの希望。
box, holder, nutshellと考えたんですがどうにも。
0223デフォルトの名無しさん
2005/11/08(火) 22:27:270224デフォルトの名無しさん
2005/11/08(火) 22:30:03…。
何か踏ん切りがつきました。ありがとう。
variableにします。
0225デフォルトの名無しさん
2005/11/08(火) 22:49:330226デフォルトの名無しさん
2005/11/08(火) 23:06:15そうそう、命名では踏ん切りって大切だよね。
でもふんぎったせいで、あとから落ち着かない気持ちが膨れ上がってくるわけだが。w
0227デフォルトの名無しさん
2005/11/10(木) 06:35:27今のところDG9とかDI8とか味もそっけもない名前なんだけど…。
0228デフォルトの名無しさん
2005/11/10(木) 08:25:47というネタは置いといて。
DX知らないからなんともいえないけど、
そういうのはラップした対象の名前をベタに使えばいいんじゃないの?
DirectXとかCDirectXとかMSDXとか。
ラップするっていってもどうせメソッドの引数のハンドルが省けるって程度の
もんだろうから、実際にはデバイスの種類なんかごとにクラス作る必要があるんだろうけど。
0229デフォルトの名無しさん
2005/11/10(木) 08:32:07DirectXのバージョン間の差異の吸収ラッパーとか、
OpenGLとか他のAPIとの差異の吸収ラッパーとか、
各種処理の前後にフックするためのラッパーとか、
色々目的が違うと思うんだよね。
0230227
2005/11/10(木) 10:32:59いえ、そう言う物ではなくて、>>228さんの言っているように
ちょこっとだけ使いやすくしようってだけの代物です。
激しくショボショボです...orz
>>228
言われて見ればそれでいい気がしてきました。
妙にこった名前にして、後で使うとき「コレなんだっけ?」ってなふうになると鬱陶しいですよね。
ありがとうございました。
0231デフォルトの名無しさん
2005/11/10(木) 12:04:500232219
2005/11/10(木) 12:23:55うむ。
一度スベったくらいではめげずに再び"UnyolaHoppode"を提案する!
無名祭祀書にも述べられている通り
陰陽五行に照らしてもカバラ的にも風水の観点からベスト。
0233デフォルトの名無しさん
2005/11/10(木) 12:49:090235デフォルトの名無しさん
2005/11/11(金) 08:17:50ウニョラー!!!
0236デフォルトの名無しさん
2005/11/12(土) 22:06:500237デフォルトの名無しさん
2005/11/13(日) 01:10:140238デフォルトの名無しさん
2005/11/13(日) 09:28:120239デフォルトの名無しさん
2005/11/13(日) 12:24:51実は案外40ズラ、50ズラ下げたおっさんだったりするんだよな。
なんだよその70年代的なセンスはw
逆に若い奴だったら凄いよマジでw
こういうオッサンって自分の子供や親にその幼稚な姿を見せられるのかね。
ていうかそういう自分の自己イメージによく耐えられるよなw
0240デフォルトの名無しさん
2005/11/13(日) 12:52:20つーか239は、ひょんひょろも知らないらしいぜw
0241デフォルトの名無しさん
2005/11/13(日) 17:42:25ひょんひょろって何のネタ?
グルグルにあったっけ?
0242デフォルトの名無しさん
2005/11/13(日) 18:30:17ひらがなのほうのひょんひょろは知らんが
0243デフォルトの名無しさん
2005/11/13(日) 23:59:070244デフォルトの名無しさん
2005/11/15(火) 11:35:14http://f3.aaa.livedoor.jp/~abal/ha.html#hyonhyoro
0245デフォルトの名無しさん
2005/11/19(土) 15:37:370246デフォルトの名無しさん
2005/11/19(土) 15:43:180247デフォルトの名無しさん
2005/11/19(土) 16:06:20朝
でもこれだけだと寂しいのでこうするといい
朝日
0248デフォルトの名無しさん
2005/11/19(土) 16:16:58beginning_period
end_period
というのが直訳なのかな?
でもちょっと長いしバランスが悪いので、他の名前をお願いします。
変数です。
0249デフォルトの名無しさん
2005/11/19(土) 16:53:54Tdate
0250デフォルトの名無しさん
2005/11/19(土) 18:58:46endDate
dateStart
dateEnd
0251デフォルトの名無しさん
2005/11/19(土) 19:24:42スマートにstart,endかfrom,toしかないならそれで行きます。
0252デフォルトの名無しさん
2005/11/19(土) 20:23:48start <-> finish
begin <-> end
じゃね?
■ このスレッドは過去ログ倉庫に格納されています