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

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

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

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

前スレ
クラス名・変数名に迷ったら書き込むスレ。Part19
http://hibari.2ch.net/test/read.cgi/tech/1293201229/
0484デフォルトの名無しさん2011/12/04(日) 20:25:30.47
>>483
嵐じゃないです
0485デフォルトの名無しさん2011/12/04(日) 20:33:19.92
>>480-481
むしろそこは誰も異論がないと思うんだけど....
0486デフォルトの名無しさん2011/12/04(日) 20:35:59.14
英文として読めるどころかバシバシ省略形で書いていいんだけどね
どうせドキュメント読まないなんてことはあり得ないんだから長い名前書くだけ無駄
衝突さえ回避できればC標準のような適当さで十二分なんだよ
0487デフォルトの名無しさん2011/12/04(日) 20:46:51.23
お前ら揚げ足が取りたいだけじゃないか。
なぜなら俺のレスには、レスしてないし。きれいに避けて通ってるw

ちなみにどこまでも英文に近くしたいのなら、
SmalltalkかObjective C でも使っとけって話だ
0488デフォルトの名無しさん2011/12/04(日) 21:44:36.69
お前のレスってどれだよ
0489デフォルトの名無しさん2011/12/04(日) 23:20:27.31
>>487
どこまでも英文に近くしたいならCOBOLじゃね?
0490デフォルトの名無しさん2011/12/04(日) 23:26:42.85
>>489
適当に「COBOL サンプル」などでググると分かるけど、
COBOL って思ったほど英文っぽくないんだわ
0491デフォルトの名無しさん2011/12/04(日) 23:34:48.54
COBOLは確かにひとつひとつの文の書式は英文臭いけど
抽象化し辛いせいで、結局はその辺の言語以上に英文から離れてくのよねw
ホントに英文っぽくしようとすると命令ごと大量に作らないといけなくて
可能な限りでそうしようとした結果が膨大な単語が並んだ予約語表
しかもそうまでしてもやっぱり英文には程遠いという…
0492デフォルトの名無しさん2011/12/05(月) 00:45:11.47
>>477
×CreateChildは「子オブジェクトを作れ」
○CreateChildは「子オブジェクトを作る」
0493デフォルトの名無しさん2011/12/05(月) 01:02:38.30
>>467
たいていの場合は叙述で解釈できるよ
0494デフォルトの名無しさん2011/12/05(月) 07:08:01.76
要するに何とでも都合が良いように解釈できる&してきたわけだよ
0495デフォルトの名無しさん2011/12/05(月) 08:23:41.73
よし関数型言語での命名法でも考えようぜ
0496デフォルトの名無しさん2011/12/07(水) 10:33:29.74
read() -> doSomething() -> write() の順に実行される
テンプレートパターンのJavaクラスを名前を考えてください。

IOエラーなど生じやすい危険からBridgeScope, CriticalSection
みたいのがいいかなと思うのですがどうでしょう?

abstract class ??? {
onRead(){}
onReadError(){}
onSomething(){}
onWrite(){}
onWriteError(){}
}
0497デフォルトの名無しさん2011/12/07(水) 10:44:52.89
Converter
04984962011/12/07(水) 11:39:48.92
>Converter
onSomething()がリソースの変換とは限らず
振る舞い(ビヘイビア)でも通じるのが良いです。
DTOとしての自身の変数(フィールド)に
マッピングすることが主な目的なので。

class ??? {
__@WebSession
__@Read
__@Write
__Integer id; // Read and Write

__@WebCookie
__@Read
__String login_name; // Read only

__@File(path="/log.txt")
__@Write
__String log; // Write only
__
__@Override
__void onSomething(){
____Service service = new Model();
____log = service.service(this);
__}
}

04994962011/12/07(水) 12:43:08.73
onSomething()もしくはonError()で
Webページのforwardを行わせるので

Resolverにしてみようと思います。
0500デフォルトの名無しさん2011/12/11(日) 17:50:04.58
C++のソートなどに使う比較関数なんだけど
bool compare(X a, X b)
{
a.hoge > b.hoge;
}
これの名前はどうする
hoge_of_a_is_greater_than_hoge_of_bってすると長くて間抜けな気がするし変数名が入ってヤナ感じ
0501デフォルトの名無しさん2011/12/11(日) 19:02:20.62
Xのインスタンスメソッドとして実装すれば何も考えなくても....

っていうか、例えば
bool GT(X a, X b)

ってシグネチャの関数があったときに、これを(b > a)を返す関数だと解釈する人はまずいないと思うけど....
とくに説明がなければ、常識的に言って(a > b)が返ってくるんだろうなと解釈するでしょ。
0502デフォルトの名無しさん2011/12/11(日) 19:54:23.18
bool PriceGreaterThan(X a, X b)
{
 return a.price > b.price;
}

bool HogeGreaterThan(X a, X b)
{
 a.hoge > b.hoge;
}
0503デフォルトの名無しさん2011/12/13(火) 16:59:55.66
有効/無効を一言で表すとなんでしょう?

今 enable メソッドと disable メソッドがあるんですが、
処理がほぼ共通のため、
function enable() { hoge(true); }
function disable() { hoge(false); }
hoge (enable) {
  if (enable) ...
}
みたいな感じでやってます。
みなさんなら hoge のメソッド名は何にしますか?
0504デフォルトの名無しさん2011/12/13(火) 17:05:45.35
SetEnabled
0505デフォルトの名無しさん2011/12/14(水) 18:25:39.67
例えば特定の数値からファイル名を作る場合に〜Builderとかつけることがありますけど、
作ったファイル名から元の数値まで戻す処理を持たせた場合は何がいいんでしょう?
converter?
0506デフォルトの名無しさん2011/12/14(水) 18:44:06.87
parse
0507デフォルトの名無しさん2011/12/14(水) 18:44:16.88
parser
0508デフォルトの名無しさん2011/12/14(水) 19:49:15.58
Converter <--> Inverter はどうよ
0509デフォルトの名無しさん2011/12/14(水) 19:55:42.25
ねーよ
0510デフォルトの名無しさん2011/12/14(水) 20:05:34.20
>>505
特定の数値からファイル名を作る?
意味が分からん

あと〜Builderだと、GoFのBuilderパターンと混同するから良くないかと
0511デフォルトの名無しさん2011/12/14(水) 20:14:53.39
encoder <--> decoder
0512デフォルトの名無しさん2011/12/14(水) 20:19:06.89
それもねーな
0513デフォルトの名無しさん2011/12/14(水) 20:20:26.99
説明的な文章が満足に書けない奴はプログラマに本質的に向いてない。
これ俺の持論。
0514デフォルトの名無しさん2011/12/14(水) 20:25:02.07
まさにParserじゃん
ファイル名に限定したいならFileNameParserにでもすればいい
0515デフォルトの名無しさん2011/12/14(水) 20:30:19.24
>>513
そういう奴はリアルだと「ゆとり(笑)」だったりするから相手にしてもたかが知れてる
0516デフォルトの名無しさん2011/12/14(水) 20:49:37.29
string MakeFileName(int n);
int GetNumber(string fileName);

こういう使い捨ての小さい処理の名前で悩む奴はアホ
0517デフォルトの名無しさん2011/12/14(水) 21:03:01.05
Parserは構文解析器だがファイル名を構文とみなすのは無理がある
それに○○erはクラスに付ける名前だ

>>516
だな
俺はGetの代わりにextractを考えたけど他はほぼ同じだ
0518デフォルトの名無しさん2011/12/14(水) 21:10:44.50
ExstractNumberじゃないことを願うだけだ
0519デフォルトの名無しさん2011/12/14(水) 21:13:46.45
>>518
なんかおかしい?
0520デフォルトの名無しさん2011/12/14(水) 21:23:09.43
使い捨ての小さい処理である根拠が無い
(自分あるいは自分の周りでそういう処理は使い捨ての小さい処理でしかない
というのでは根拠に乏しい)

根拠が無いのにアホと結論づけるのは論理的じゃない
0521デフォルトの名無しさん2011/12/14(水) 21:23:58.89
>>516
数ヶ月後にコードを読むときには、それが「使い捨ての小さな処理」なんてことは
すっかり忘却の彼方になってる自分を想像できない奴はもっとアホだと思う。

ところでこのスレって何のスレだっけ?
0522デフォルトの名無しさん2011/12/14(水) 21:26:40.97
釣られるなよ雑魚どもw
0523デフォルトの名無しさん2011/12/14(水) 21:28:53.80
馬鹿しか居ないのかねぇ
数ヶ月もあいだあいてりゃ最低でもコメント見るだろwww
おまえらコメント見ないの?そんなんでよくPGやってられるな
つーか根拠に乏しいってこんな具体性高い処理ライブラリ化する奴なんて居ねーよwwwwww
どう見てもそのアプリ限定の使い捨てだろうが
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 はわりとマジっぽい

普段からそういうプログラム書いてそう
■ このスレッドは過去ログ倉庫に格納されています