クラス名・変数名に迷 ..
[2ch|▼Menu]
237:デフォルトの名無しさん
08/10/13 20:50:18
>>236
レス感謝。

つまり主観(=分かりやすさ)が入るから決め事としてしまった方がいい、と。

238:デフォルトの名無しさん
08/10/14 18:59:22
arr = [1,2,3]
item = arr.remove(1)
とやると
arr = [1, 3], item = 2
になるような「取り出す」メソッドって何がいいですかね。
extractがよさげなんだけどコンピュータだと元を残しつつ取得みたいな使われ方が多いような気がして。
deleteのついでに戻り値で返すおまけ機能にしちゃうのがいいのかな。

239:デフォルトの名無しさん
08/10/14 19:21:50
remove

240:デフォルトの名無しさん
08/10/14 19:47:17
removeAndGet

241:デフォルトの名無しさん
08/10/14 19:52:19
takeとかpickとか

242:デフォルトの名無しさん
08/10/14 20:27:31
Pythonではpopになってる

243:デフォルトの名無しさん
08/10/14 20:43:27
remove

244:デフォルトの名無しさん
08/10/14 21:03:39
fetch

245:デフォルトの名無しさん
08/10/14 21:20:30
getとremoveでいいんじゃね。

そもそも1つのメソッドに複数の機能を持たせようとする時点で(ry

246:デフォルトの名無しさん
08/10/14 22:06:11
>>238
そういう「行数を節約するだけのメリットと引き換えに」、「処理の直感性を犠牲にする」
処理が本当に適切かどうか再考すべきだと思う。

直感的に把握できないような処理だから命名に困るんだよ。

247:デフォルトの名無しさん
08/10/14 22:06:28
それってスタックを実装したいってだけなのでは?
popだろ

248:デフォルトの名無しさん
08/10/14 22:08:51
さらに一般化して splice

249:デフォルトの名無しさん
08/10/14 22:27:55
rubyならslice!かな。

しかし、別に「複数の機能」でも「行数の節約」でもないだろ。
列から一つ取り出したいってのは、実世界でもあって不思議じゃない。
だからこそ、各言語で同じような基本処理が定義されているわけで。

250:デフォルトの名無しさん
08/10/14 22:31:46
popAtだな。

251:デフォルトの名無しさん
08/10/14 22:35:11
>>249
そう言われるとそんな気もしてきちゃうすまんw
では気を取り直して

PullOut
Steal

252:デフォルトの名無しさん
08/10/14 22:36:29
インデックスで指定だからAtを付けた方がよかったか。

253:デフォルトの名無しさん
08/10/14 23:37:22
Atとか付けるとSmalltalkやObjective-Cを思い浮かべてしまう

254:デフォルトの名無しさん
08/10/16 00:35:51
GoTo() は禁止ですか?

255:デフォルトの名無しさん
08/10/16 13:16:03
スペースで桁をそろえる件だけど、コードコンプリートの1版と2版を見比べるとおもしろいのにね。

256:デフォルトの名無しさん
08/10/16 13:24:10
>255
流石に同じモノ2冊は敷居が高いなあ

257:デフォルトの名無しさん
08/10/16 21:30:55
>>255
どうおもしろいのか教えてください

258:デフォルトの名無しさん
08/10/17 12:46:01
>>255
1版は持ってる.
そろえないほうがいいって書いてあった.
2版はどう変わってるの?

259:デフォルトの名無しさん
08/10/17 18:52:30
>>258
2版は持ってる.
そろえないほうがいいって書いてあった.

260:デフォルトの名無しさん
08/10/17 19:11:19
わー、おもしろい

261:デフォルトの名無しさん
08/10/19 16:36:04
255の笑いのツボはどうなっているんだ。

262:デフォルトの名無しさん
08/10/21 13:14:32
class Hoge {
public:
  Fuga* XXXFuga(Fuga* pFuga)
  {
    Fuga* temp = pFuga_;
    pFuga_ = pFuga;
    return temp;
  }
private:
  pFuga_;
};

XXXFugaですが、XXXの部分はどんな動詞がいいですか?

263:デフォルトの名無しさん
08/10/21 13:15:51
exchange

264:デフォルトの名無しさん
08/10/21 13:16:29
>>262 replace

265:デフォルトの名無しさん
08/10/21 14:03:41
setlocaleってこんなだよな

266:デフォルトの名無しさん
08/10/21 14:10:26
swap

267:デフォルトの名無しさん
08/10/21 14:19:31
reset か set

268:デフォルトの名無しさん
08/10/21 15:06:05
>>263
わかりやすいんですが、関数名にはあまり使われない単語な気がして、単純な操作の関数につけるのはちょっと気になります。
>>264
わかりやすくて良いと思いました。
>>266
返り値はvoidで、引数に渡したものの内容が入れ替わってくるイメージがあります。
>>267
resetは、Hogeを生成直後の状態に戻すための変更というイメージがあります。
setは、最もシンプルでいいんですが、返り値なしのイメージが強くて、返り値がある関数は区別した方が良いのか悩みます。

setにしようかやめようか悩みます(set以外ならreplaceの予定)。
返り値がある関数にsetをつけることについて、皆さんは抵抗ありますか?

269:デフォルトの名無しさん
08/10/21 15:09:51
そんなこというならset_and_getでいいじゃん

270:デフォルトの名無しさん
08/10/21 15:45:21
265は無視ですかそうですか

271:デフォルトの名無しさん
08/10/21 15:50:40
呼び出し側でgetしてからsetすればいいだけだろ。
なんでもラップして行数稼げれば勝ちみたいな歪んだ性癖は改めた方がいい。

272:デフォルトの名無しさん
08/10/21 16:28:59
>>269
SetAndGetFugaと書くと、英語として汚くないですか?
>>270
すみません、標準ライブラリに返り値を返すset〜があるという意味でしたか。
setlocaleはメンバ関数ではないので、setter/getterが存在するオブジェクト指向とはニュアンスの違いを感じます。
>>271
行数を稼ぐとか言うのではなく、引数とメンバを交換する機能が必要なケースはあると思います。
262の例をget/setで実装すると、setを呼び出した時、pFuga_に格納されてる古いオブジェクトの寿命管理はどうなるの?と。
shared_ptrを使えば寿命管理は気にしなくてもよくなりますが、Fugaを使う場所全てshared_ptrに書き直さないといけなくなりますし、
破棄のタイミングをはっきりさせたい場合にも、問題になると思います。

やはりsetに返り値があるのは気になるので、replaceにします。
ありがとうございました。

273:デフォルトの名無しさん
08/10/21 17:38:41
二つの仕事を一つで済まそうという例があると、行数稼ぎするなとか言うやつがいるが、
アトミックに動作しなきゃならん場合なんて山ほどあるんだから、ごちゃごちゃ言うな

274:デフォルトの名無しさん
08/10/21 17:50:20
>>271
発想のレベルの低さに驚愕した

275:デフォルトの名無しさん
08/10/21 17:53:03
setとgetをアトミックにやるんだぜっていう事を表現したいなら、
そのまんま SetAndGet みたいのがいいんじゃないの?
アセンブラでは test and set とかよくあるし。

276:デフォルトの名無しさん
08/10/21 21:55:00
>>272
更新して一つ前の値を返す関数なんて割とありがちで、
使われているコードを見れば(必ずしも明示的な名前じゃなくても)それと分かるから
普通にsetでもいい気がする。

replaceでも意味は分かると思うけど、なまじ名前に意味がある分
コードをみて一瞬考え込むかもしれない。

277:デフォルトの名無しさん
08/10/21 21:57:21
コレクションから指定条件(添え字とか)で削除して、削除したものを返す
なんてのもふつーにあるよな。


278:デフォルトの名無しさん
08/10/21 22:08:17
上のpopのやつに話を戻したいのか?
質問者いなくなったみたいだけど。

279:デフォルトの名無しさん
08/10/22 02:28:57
「条件Aを満たした場合、処理Bを行う。」というのが
プログラム中数箇所にあるので、これを関数(使用言語はCです)にしたいのですが、
どういう名前が良いのか悩んでます。

「条件A」は数行に渡ってしまう比較的複雑なもので、処理Bを行うかどうかの
判定にしか使われないものです。
このため「条件A」を満たしているかどうかを判定する関数を作るにしても
適切な関数名が思いつかず、現状は何の関数化も行わずにコピペを数回行うという
書いた本人も、読んだレビュアもがっかりするようなことを繰り返しています。


280:デフォルトの名無しさん
08/10/22 02:35:44
>>279 コードの意味も目的も示さずに名前が決められると思うな。

281:デフォルトの名無しさん
08/10/22 02:41:55
B_IfA()

282:255
08/10/22 03:37:32
むわ。こんなにレスついてたなんて。ごめんね、遅くてorz

初版
単に見やすいと言うだけではなく、ひとかたまりの処理であることを明確にすることも可能となる
単にそろえただけで、処理の区別が明確とならない悪い例
EmployeeName   = InputName
EmployeeAddress = InputAddress
EmployeePhone  = InputPhone
BossTitle      = Title
BossDept      = Department

2版
この10年間で得た知識から、このインデントスタイルは見栄えはよいかもしれないが、
(中略)
面倒であることがわかった。

こんな感じです。

2冊あえて買ったという訳じゃなくて、改版されたから買っただけなんだけどね。

283:デフォルトの名無しさん
08/10/22 06:47:08
つまり
悪い例=面倒

どうおもしろいんですか?

284:デフォルトの名無しさん
08/10/22 11:32:31
初版における良い例。
EmployeeName   = InputName
EmployeeAddress = InputAddress
EmployeePhone  = InputPhone

BossTitle = Title
BossDept = Department

285:デフォルトの名無しさん
08/10/22 11:41:47
あるデータをシステムに import / から export するクラスがあります。
これのクラス名には、なんという名前がいいでしょうか。
import だけ、または export だけなら XxxImporter とか XxxExporter でいいと思うんですけど、
両方を行うクラスについて、いい名前が思いつきません。
たすけてえらいひと。

286:デフォルトの名無しさん
08/10/22 12:00:54
Xxx

287:デフォルトの名無しさん
08/10/22 12:40:53
>>286
今は
DataImporter
とかなんで、これが
Data
となるのはちょっと。。。

288:デフォルトの名無しさん
08/10/22 13:03:07
>>285 XxxPorter

289:デフォルトの名無しさん
08/10/22 13:23:21
XxxTrader


290:デフォルトの名無しさん
08/10/22 13:24:50
import + export = transport

291:デフォルトの名無しさん
08/10/22 13:29:34
>>288
そうか、imとexの両方を行うんだから、それを外したporterというのはありそうですね。
>>289
import and export という意味なら、たしかにtradeまたはexchangeがいいのかもしれません。

アドバイスありがとうございました。検討します。


292:デフォルトの名無しさん
08/10/22 13:54:19
DataImporterという名前がすでにまずいのでは。
適した名前空間の中に入っているから大丈夫だとするのであれば、Dataでも問題はないはず。

293:デフォルトの名無しさん
08/10/22 18:40:20
>>292
Dataというモデルクラスがすでにあるので、むりです。
(実際には、DataはUserだったりItemだったりOrderだったりしますが。)

294:デフォルトの名無しさん
08/10/22 19:01:29
DataIOとか。

295:デフォルトの名無しさん
08/10/22 19:30:18
>>293
よく分かんないんだけどそのUserクラスにエクスポートメソッドをつけるのって愚かなことなの?
インターフェイスでもいいけど。

296:デフォルトの名無しさん
08/10/22 19:31:40
要するにシリアライザ/デシリアライザ、なんでしょ?
一緒にしない方が分かりやすくないか?

シリアライザとデシリアライザを集約するクラス(Dataクラス?)が
Serializer.Save()とDeserializer.Load()を公開すれば必要十分に思うが。。

297:1/2
08/10/23 20:40:56
class User {
  protected $_id, $name, $email, $password;

  public function __construct($id, $name, $email, $password)
  {
    $this->_id = $id;
    $this->_name = $name;
    $this->_email = $email;
    $this->_password = $password;
  }
}

298:2/2
08/10/23 20:41:45
>>297つづき
class Hogehoge {
  function getUser($id)
  {
    //データベースからデータを取ってくる
    return new User($id, $name, $email, $password);
  }

  function getUsers()
  {
    //データベースからデータを取ってくる
    foreach () {
      $users[] = new User($id, $name, $email, $password);
    }
    
    return $users;
  }
}

$hogehoge = new Hogehoge();
$hogehoge->getUser(1234);
$hogehoge->getUsers();

みたいなことをすためのHogehogeのクラス名ってどんなのがいいですか?
ちなみに上のやつはPHPです。

299:デフォルトの名無しさん
08/10/23 20:52:11
Useless

300:デフォルトの名無しさん
08/10/23 21:09:01
MyDatabase

301:デフォルトの名無しさん
08/10/23 21:12:17
>>297
PHPには静的メソッドとかクラスメソッドとかいう概念はないの?
あればUserクラスのメソッドにすればよさそうだが。


302:デフォルトの名無しさん
08/10/23 21:25:22
ああ・・・そうします

303:デフォルトの名無しさん
08/10/23 21:35:27
データベースへのアクセスをラップするクラスじゃなかったのか・・・

304:デフォルトの名無しさん
08/10/24 15:46:21
文字列の中から一文字置き換える関数を作った場合
関数の引数名はそれぞれどのような名にしますか?

305:デフォルトの名無しさん
08/10/24 15:48:17
すみません
>>304ですが、C言語です

306:デフォルトの名無しさん
08/10/24 16:47:15
引数は文字列、検索する文字、置き換え後の文字の3つ?

307:デフォルトの名無しさん
08/10/24 17:08:26
char *s
char old_char
char new_char

308:デフォルトの名無しさん
08/10/24 18:13:59
>>306
はぃ、

309:デフォルトの名無しさん
08/10/24 19:33:33
searchやsubstituteなどを考えるより、old/newやbefore/afterの方がわかりやすい気がする

310:デフォルトの名無しさん
08/10/24 20:46:40
newは予約語となっている言語があるので注意が必要。

311:デフォルトの名無しさん
08/10/25 12:37:10
ターン制のSLG作ってるんですけど
最後にターンを進めた日時を入れる変数名って何がいいですか?


312:デフォルトの名無しさん
08/10/25 12:43:05
startTimeOfThisTurn

313:デフォルトの名無しさん
08/10/25 12:48:12
だからこんなの
(1) まず母国語で考えて、
(2) それを英訳
するだけじゃん。なんで基本どおりやらないんだろう。

最後の作戦の日時: LastOperationDateTime

314:デフォルトの名無しさん
08/10/25 12:50:34
>>312
>>313
ありがとうございました
英語は嫌いです

315:デフォルトの名無しさん
08/10/25 13:16:12
ターンは用語のようなものだから、turnあるいはphaseは残した方が分かりやすいと思うが。

316:デフォルトの名無しさん
08/10/25 13:28:39
用語なわけないだろw
そういう風に勘違いしてる人間がいるだけだと思うけど。

317:デフォルトの名無しさん
08/10/25 14:27:14
>>316
「ターン制のSLG」と言えばどんなゲームか伝わるんだから、ゲームの分野において「ターン」は用語と言えるだろ。

318:デフォルトの名無しさん
08/10/25 14:35:05
よくわからない理屈。。。
単に「順番制」とか「かわりばんこ制」では締まらないからそういってるだけだと思うよ。

それにゲームやらないたちなんで実際のところは知らないけど、
一回のターンで複数の操作が可能という可能性もあるんじゃないの?
だから>>311は「ターンを進める」という書き方をしているんだと思ったんだけど、
これは深読みのし過ぎかな。

319:デフォルトの名無しさん
08/10/25 15:06:43
>>318
> 単に「順番制」とか「かわりばんこ制」では締まらないからそういってるだけだと思うよ。
命名とはそういうものだと思うがw
「用語」という言い方が気に入らないなら「ルール」と言えばいいか?
将棋で「王手」とか「持ち駒」とか命名されているのと一緒。

こういう既に認識されている名前に従うのは分かりやすいんじゃないかっていう話。

320:デフォルトの名無しさん
08/10/25 15:22:35
だから意味的におかしいでしょって言ってるんだってば。。
turnって言葉の意味を辞書で調べた?
その意味と>>311の要求するものが合ってると思うの?

321:デフォルトの名無しさん
08/10/25 15:40:33
>>320は「ターン制のSLG」における「ターン」という言葉の意味を知らないのか?
辞書なんか引いてどうするつもりなんだ?w

322:デフォルトの名無しさん
08/10/25 15:40:57
>>320
そのゲームにおいて命名された用語(ルール)なんだから辞書に載ってなくてあたりまえだろw
ブラウザのcookieなんて本来の英語の意味からしたら意味がわからないが、そこは問題じゃない。
認識されている事が、わかりやすさになるんだよ。

これでレス終わりにする。

323:デフォルトの名無しさん
08/10/25 15:45:46
>>321-322
だからそれが「勘違い」だと言ってるのに。

>「ターン制のSLG」における「ターン」という言葉の意味
それは明らかに英語のturnの意味そのままだ。
違うというのなら具体的に『「ターン制のSLG」における「ターン」という言葉の意味』
を述べてみたら?

そしてそれは>>311の要求とは違うと思われる。

ちなみにチェスや、確か囲碁なんかでもturnと言うんだよ。
というよりそちらが元ネタだろうけどね。

324:デフォルトの名無しさん
08/10/25 16:36:37
>>323はくだらん言葉遊びなんぞしてないで
「そしてそれは>>311の要求とは違うと思われる。 」の理由をさっさと述べるべきだと思いますが。


325:デフォルトの名無しさん
08/10/25 16:46:14
とっくに書いてるけど。。
これだから2chの議論って疲れるよ。

326:デフォルトの名無しさん
08/10/25 17:10:44
久々に英語厨が湧いたか。もっとやれ。

327:デフォルトの名無しさん
08/10/25 19:57:46
1回のターンで複数の行動はできるよ。
で、ターン開始した日時を置いときたいんだからturnという言葉を残すことは何も悪くないと思うんだ。

>>323>>311の要求をどう思っているのかをもっと詳しく書くべき

328:デフォルトの名無しさん
08/10/25 19:59:27
ターン開始じゃなくて、俺のターン終わり、とした日時を置いときたい、の間違いだった。
あれ、ってなるとstartTimeOfThisTurnはおかしいな。

329:デフォルトの名無しさん
08/10/25 20:17:08
英語厨袋叩きワロス

330:デフォルトの名無しさん
08/10/25 20:32:15
LastAdvancedTurnDate

で良いじゃん

331:デフォルトの名無しさん
08/10/25 20:40:57
advanced turn ってとっても意味不明だと思うが…。

332:デフォルトの名無しさん
08/10/25 20:55:20
ターンを進めるのが
advanceTurnで
最後に進めた日時ってことで>>330でよくないの?

333:デフォルトの名無しさん
08/10/25 21:17:19
advance turnなんて言い方はしないと思うし、
そもそも日本語でも「ターンを進める」と書いてあるのを見て何も違和感を感じないとしたら
その言語感覚はおかしいだろう。

順番というのは「進める」ものなのか?
「回ってくる」ものじゃないのか?

334:デフォルトの名無しさん
08/10/25 22:34:12
「開始から20ターンほど進めると敵がでてくるので」とあってもそれほどおかしくないと思う

335:デフォルトの名無しさん
08/10/25 22:40:47
take your turn とか言うから回ってくるものでもなさそう。

336:デフォルトの名無しさん
08/10/25 22:55:36
回ってくるからtakeするんじゃねーの

337:デフォルトの名無しさん
08/10/25 23:31:54
lastTurnとかでいいじゃん。

338:デフォルトの名無しさん
08/10/26 03:50:04
>>333
だからターン終了を意思表示した時間を保持したいんじゃないのか
ゲーム終了時にトータル思考時間を表示したいとか。

339:デフォルトの名無しさん
08/10/26 07:33:31
>>333
つーか、チェスや囲碁でも「○手進める」という表現するじゃん。
ダブルスタンダートになってない?

340:339
08/10/26 07:34:37
訂正
ダブルスタンダート→ダブルスタンダード

341:デフォルトの名無しさん
08/10/26 09:35:07
「ターンを進める」は take next turn とかの方が自然な気が。
他は make turn next とか go on to next turn とかかなぁ。
advanced turn だと、先進的なターン、有利なターン、先手って感じがする。

てか、last turn でいいじゃんって意見に同意。

342:デフォルトの名無しさん
08/10/26 09:42:14
ターンを進めるを英語でなんと言うかの話ではないよね

343:デフォルトの名無しさん
08/10/26 10:19:22
そうだよ、誰もそんな話してない。
日本人にとって自然と思われるかの話だと思うぞ。

まあ、今回の場合「進めた」にはあまり力点は無いから、
俺も LastTurnDateTime あたりで十分だと思う。

344:デフォルトの名無しさん
08/10/26 11:01:45
実は accumulated(total) thinking time さえ取れればよかったりしてな。


345:デフォルトの名無しさん
08/10/26 11:34:47
ターン終了イベントでの処理、もしくはターン情報クラスのようなもので
保持するならturnEndTime、用途によってはturnSpendTime = now - turnStartTimeで良くて、
次ターンで処理させることを目的として保持するならlastTurnEndTimeって感じだろうか

346:デフォルトの名無しさん
08/10/26 13:48:16
ここの連中も本当学習能力がないっていうか、
他人の意見を踏まえて自分の考えを修正していくってことができない奴が多いね。

last turnでいいじゃん?
だからよくないって。
turnが複数のoperationから構成されてたらどうするの?

というより、だから何度も言うが、だからこそ>>311は「ターンを進めた日時」
などという不自然な言い方をしているんだろうと普通は推測するだろう。

347:デフォルトの名無しさん
08/10/26 13:57:44
毎度質問者がいなくなってから盛り上がるスレだね。

348:デフォルトの名無しさん
08/10/26 13:59:23
日時ってゲーム内時間なの?システムタイムなの?

349:デフォルトの名無しさん
08/10/26 14:08:31
>>346
そうだな。>>311の意図は完全に君の 推測 の通りに違いない。流石です。

はい解決。おしまい。

350:デフォルトの名無しさん
08/10/26 14:10:18
>>346がいい名前を提案してお終いだな。

351:デフォルトの名無しさん
08/10/26 14:18:48
つーか、設計君じゃないのw
自信満々に妄想を語るところや他人を見下してるところが似てる。

352:デフォルトの名無しさん
08/10/26 14:30:21
>>350
とっくに>>313に書いてるから。

353:デフォルトの名無しさん
08/10/26 14:56:09
>>313
すばらしい変数名だ
作者の意図も汲んでいてもうこれ以上のものは考えられない

354:デフォルトの名無しさん
08/10/26 16:16:12
operationがどうとか言ってるのはお前だけ(ry

355:デフォルトの名無しさん
08/10/26 18:55:54
今回も英語厨がズバッと解決してくれたな。

356:デフォルトの名無しさん
08/10/26 19:18:27
何この自演

357:デフォルトの名無しさん
08/10/26 19:42:15
>>355
だがお前は日本じゃ二番目だ。

358:デフォルトの名無しさん
08/10/26 20:25:42
最後に○○を追加した日は
LastAdded○○Dateでいいんですよね?
Last○○AddedDateじゃないですよね?
英語厨の人おしえてくださいm(_ _)m

359:デフォルトの名無しさん
08/10/26 23:24:08
そこでなぜ LastDate○○Addedが選択肢にない。


360:デフォルトの名無しさん
08/10/26 23:46:03
addは他動詞だから
LastDateAdded○○
にすべきじゃね?

361:デフォルトの名無しさん
08/10/27 00:04:26
>>346
> 他人の意見を踏まえて自分の考えを修正していくってことができない
>>346

362:デフォルトの名無しさん
08/10/27 01:05:26
>>346
釣りじゃなかったら同情したくなるほどの馬鹿だな

363:デフォルトの名無しさん
08/10/27 01:14:56
>>313
英訳能力に感服したわ。

364:デフォルトの名無しさん
08/10/27 01:42:41
いや、作戦を思い浮かべる辺り日本語能力も結構侮れない。俺無理だもん。

365:デフォルトの名無しさん
08/10/27 01:54:27
何を思い浮かべようと勝手だが、それを周りの人間と共有できなきゃ
意味無いんじゃまいか?
英語的に正しいからと言ってピンと来ない名前を付けてもナー。

で、周りの人間が理解できなきゃそいつらが悪い、と来たもんだ。

366:デフォルトの名無しさん
08/10/27 02:08:52
しかし、d が多いな

367:デフォルトの名無しさん
08/10/27 03:44:24
英語厨としては last より latest を推したい。

368:デフォルトの名無しさん
08/10/27 13:11:25
>>365
>>363-364は皮肉だよ

369:デフォルトの名無しさん
08/10/27 13:33:28
どういう文脈(大域的だったり局所的だったりクラスのメンバだったり)で使われるで
どんな名前が良いかも変わってくると思うから、
お題を出す人はその辺りもある程度示した方が良さそうな気がする。

370:デフォルトの名無しさん
08/10/27 17:40:10
Product というデータがある。これはその会社において、世界中で使われているデータ。
これをlocalizationしたデータに、LocalizedProduct という名前がついている。
またlocalized productとの対比として、もとのデータをoriginal productと呼ぶことがある。
ここまではいい。

最近、地域ごとに独自の製品を持ちたいという要望がでてきた。
お客さんの要望なので、まあそれはいい。
で、その「地域ごとの独自の製品」になんと言う名前をつけたらいいのかで困ってる。
"LocalProduct" は LocalizedProduct と紛らわしい。
"OriginalProduct" も従来の言葉とかぶっている。

なんかいい名前を提案してくれない?


371:デフォルトの名無しさん
08/10/27 17:41:27
>>368
どう見ても>>365>>363-364の内容とは関係無く発言してるだろ
>>313の英語力(笑)は度外視して、物事の優先順位について指摘してるだけじゃね

372:デフォルトの名無しさん
08/10/27 17:46:38
RegionalProduct

373:デフォルトの名無しさん
08/10/27 18:43:29
>>370
要求されているものがもう一つはっきりしないなあ。
「それ」は変数名?それとも型の名前?

なんとなく変数名のように聞こえるが、
そうであるならそれが"localize"されていようと"customize"されていようと
名前を変える必要性があるように思えないんだけど。

374:デフォルトの名無しさん
08/10/27 18:51:12
>>370
おっと、同じのが既に出てた。
>>372に一票。

375:デフォルトの名無しさん
08/10/27 19:28:34
Product→GlobalProduct

376:デフォルトの名無しさん
08/10/27 21:17:00
>>370
"LocalProduct"と"LocalizedProduct"が、意味も良く分かっていいんでない?
それにそんなに紛らわしくないと思うけど。


377:デフォルトの名無しさん
08/10/27 21:26:59
Localである状態にするのがLocalizeだろ

378:デフォルトの名無しさん
08/10/27 22:39:52
>>370
そもそも、

> Product というデータがある。

が、わけわからん。製品じゃないのに Product なんて命名されてるのか?

まあ、世界中で使われてるなら今更変えようが無いだろうから、
俺なら、RealProduct, LocalizedRealProduct あたりにするかな。

379:デフォルトの名無しさん
08/10/27 22:48:00
Realを付ける意味が素で分からん。

380:デフォルトの名無しさん
08/10/27 22:54:58
>>378
そこは普通わかるだろうw

むしろ>>379に突っ込まれているように、君自身の言っていることの方が
余程深刻に意味不明だ。

381:デフォルトの名無しさん
08/10/27 23:36:32
>>379-380
確かに、>>370 読み直したら、俺が勘違いしてるようだ。
>>378 は、忘れてくれ。

382:デフォルトの名無しさん
08/10/28 08:05:54
>>370
OrderMadeProduct

383:デフォルトの名無しさん
08/10/28 10:16:55
それは無いわ

384:デフォルトの名無しさん
08/10/28 17:28:18
サウンドファイルの再生時間を書き込む変数

385:デフォルトの名無しさん
08/10/28 17:30:16
played_seconds

386:デフォルトの名無しさん
08/10/28 17:31:03
>>385
どうも!

387:デフォルトの名無しさん
08/10/28 20:17:45
>>370
area product

388:デフォルトの名無しさん
08/10/28 20:50:38
LimitedProduct

389:デフォルトの名無しさん
08/10/28 22:16:44
regional product

390:デフォルトの名無しさん
08/10/29 17:54:58
TheProduct

391:デフォルトの名無しさん
08/10/30 07:24:04
ローカル変数string[]の変数名が分からない
とりあえず今はskにしてあります
sはstringのsで、kは括弧のkです
括弧が二つあるからskkにしようかsk2にしようか迷ってます

392:デフォルトの名無しさん
08/10/30 08:20:49
せめてspにしろよ。
pはparenthesisのpだ。

393:デフォルトの名無しさん
08/10/30 09:17:06
[]が配列を表しているなら、その変数に格納する情報を複数形にした名前。

names,params[]が配列を表しているなら、その変数に格納する情報を複数形にする。

names,params

394:デフォルトの名無しさん
08/10/30 10:22:17
Tanakas

395:デフォルトの名無しさん
08/10/30 10:53:10
sring[][] stringArrays;

396:デフォルトの名無しさん
08/10/30 11:01:00
↑みたいなのは見りゃわかるんだから変数名としては無意味

397:デフォルトの名無しさん
08/10/30 18:23:39
>>396
↑みたいなレスこそが無意味。

398:デフォルトの名無しさん
08/10/30 20:59:18
いやいや、俺のレスが一番無意味。

399:デフォルトの名無しさん
08/10/30 21:42:37
おまえらみんな不気味

400:デフォルトの名無しさん
08/10/30 23:25:39
しかも不細工

401:デフォルトの名無しさん
08/10/31 08:13:36
>>396
スリング

402:デフォルトの名無しさん
08/11/02 10:31:06
文書やHTML/画像とかを DB に入れる用の Model クラスを Article ってしたんだが
それの View/Controll を兼任するクラスの名前で何かいいのあります?
最初 View/Controll を担当するクラスの Interface を ArticleMechanism ってしてて
具象はそれに形容詞付けたのしてたんだけど、
長くなるから Paper にした。
でも Article を1つしか含んでないのに Paper っておかしくないかと思い始めた。

M:Doc (Documentは他のライブラリでよく使うのがあるからあまり使いたくない)
VC:Article
の方がいいかな。

403:デフォルトの名無しさん
08/11/02 10:57:01
Controll?

404:デフォルトの名無しさん
08/11/02 11:07:14
Presentationとか

405:くるりん子
08/11/02 15:45:03
ハードウェアのパラメータを読み書きするためのクラスって、どんな名前がいーい?
ParamReader, ParamWriter --- 2つに分けるのはやだな。
ParamConfigurator --- なんか長くてやだな。
ParamIO --- なんか違う気がする。
Paramer --- 短くていいけど、造語だな。


406:デフォルトの名無しさん
08/11/02 15:45:53
HardwareParameter

407:デフォルトの名無しさん
08/11/02 15:47:12
ParamConfig

408:くるりん子
08/11/02 15:51:32
>>406
パラメータを読み書きするクラスと、パラメータ値そのものとは別だよ。
ほんとにそれでいいの?

409:デフォルトの名無しさん
08/11/02 16:20:18
>>408
>>203-204

410:デフォルトの名無しさん
08/11/02 16:21:07
Cです。C++でもいいです。


ある文字列を読み込んで解析するプログラムがあります。
その中では、例えば以下のような処理を行うとします。

 ・文字列をトークンに分割
 ・/* 〜 */ の間にある文字列は無視する
 ・( 〜 ) の間にある文字列は特殊な処理を行う など

さて、文字列を先頭から1文字ずつ読み進めていくとき、
現在読んでる文字を、どう解釈すればよいか判断しなければならないことがあります。
先の例で言えば、

 ・現在の文字が「*」で前の文字が「/」なら、「/*」というトークンにする
 ・現在のトークンが「/*」の後にあるなら、コメントアウトとする
 ・「*/」のトークンを見つけたら、コメントアウト扱いをやめる

などです。
このような判断をするためのフラグの、構造体やクラスの名前はどうすればいいでしょうか。


411:デフォルトの名無しさん
08/11/02 16:33:44
context
state

あと、lex/yaccとかを調べてみるのも回り道にはなるが、
悪くないかもしれん。


412:くるりん子
08/11/02 16:44:27
>>409
あのね、今書いているソースコードでは、
・パラメータを読み書きするクラス
・ パラメータそのものを表すクラス
を別々にしているの。
だから、名前も分けたいの。

413:デフォルトの名無しさん
08/11/02 17:35:51
だったら初めからそう書け。
残念だけど、後出しじゃんけんに参加する奴はもういないと思うよ。

414:デフォルトの名無しさん
08/11/02 18:37:37
>>405
「パラメータを読み書きするためのクラス」っていうのは
そのハードを表すクラスのプライベートなオブジェクトであって
外部に公開するものではないんだよね?

普通に
xxxGetter/xxxSetter(xxxはレジスタ名)
でいいんじゃないの?
取得と設定を一つのクラスにまとめるのは多分意味がないと思う。

>>413
前の議論(>>409の一行引用レスクンが引用してるもの)でも言ったが、
普通後だしジャンケンじゃなくても>>408のように考える。

得意げな>>409とか君とかみるとどんだけ設計能力ないだお前、と思うぞ。

415:デフォルトの名無しさん
08/11/02 18:50:50
いや、パラメータを扱うクラスがParameterなのかParameterManagerなのか
どちらが作ろうとしてるものに適切かなんて設計者のさじ加減一つだろ。
ありとあらゆるプログラムで後者の方が適切だとでも?

416:デフォルトの名無しさん
08/11/02 19:01:09
>>415
話がずれてると思うな。

(1) 何らかのレイヤを経由してデータ(バイナリだったり文字列だったり)
  の取得設定を行うクラス



(2) 取得したバイナリなりテキストなりをパースするクラス

は当然別だろうって話だよ。

417:デフォルトの名無しさん
08/11/02 19:01:19
>411
thx
その辺の単語を使うのが良さそうですね。

lexとyaccは……参考にはなるでしょうが、ちょっと遠回りすぎそうです(笑)

418:デフォルトの名無しさん
08/11/02 19:02:52
>>414
>xxxGetter/xxxSetter(xxxはレジスタ名)
2つに分けるのは嫌だって>>405で言ってるケド。つーかレジスタ数×2個にしれってこと?

>>412
>ParamConfigurator --- なんか長くてやだな。
私はこれでいいと思うよ。クラス名なんてコード上にそんな出てこないじゃん?だから判りやすさ優先で!

419:デフォルトの名無しさん
08/11/02 20:53:09
ゲーム作ってるんですけど

       数  維持費  レベル
戦車   3個   10円/個   3
飛行機 1個    10円/個  2
兵隊   50個   10円/個  3

みたいなデータがあって
ループさせて各データの合計値を保存しておく
みたいな関数の名前は何がいいですか?
countはダメなんです

420:デフォルトの名無しさん
08/11/02 21:03:29
各データの合計値ってその例だと具体的にどの値のことなの?

421:デフォルトの名無しさん
08/11/02 21:10:28
sum

422:デフォルトの名無しさん
08/11/02 21:13:57
accumulate

423:デフォルトの名無しさん
08/11/02 21:22:26
>>420
総数 54個
総維持費 540円
合計レベル 8

みたいなことです

424:デフォルトの名無しさん
08/11/02 21:57:34
TotalCount
TotalCost
TotalLevel

425:デフォルトの名無しさん
08/11/02 22:00:39
レベルを合計して意味あんの?

426:デフォルトの名無しさん
08/11/02 22:05:27
俺柔道初段、囲碁初段、オセロ三段、腹三段の合計八段。

427:デフォルトの名無しさん
08/11/02 22:06:30
>>425
意味持たせるかどうかは>>419の決めることだしこのスレで勘案しても仕方ないんでは?

428:デフォルトの名無しさん
08/11/02 22:10:49
>425
合計10レベル分までのユニットを保持できる、みたいなルールじゃない?

429:デフォルトの名無しさん
08/11/02 22:31:40
国力に対応して対戦相手の強さも調節されるんだろう。きっと

430:デフォルトの名無しさん
08/11/02 22:36:41
>>424
それを導く関数の名前です

431:デフォルトの名無しさん
08/11/02 23:49:38
summary(summarize)とか。


432:デフォルトの名無しさん
08/11/03 00:04:57
>>431
こんな感じの待ってました
ありがとうございました

433:デフォルトの名無しさん
08/11/03 09:01:20
テキストから正規表現を読み込んで指定した文字列が
その正規表現からフィルターに一致するか返したりや置き換えた文字列を返すクラス名は何がいいでしょうか?

434:デフォルトの名無しさん
08/11/03 10:22:48
RegExManipurator

435:デフォルトの名無しさん
08/11/03 10:23:43
ごめんスペル間違えた。
RegExManipulator

436:デフォルトの名無しさん
08/11/03 10:32:12
複数の正規表現からOR結合したものとか、
大文字/小文字無視バージョンとか、いろいろ加工して返すクラスに見える。

とケチを付けつつ他のアイディアを出せない俺


437:デフォルトの名無しさん
08/11/03 10:38:50
TextFilter

中で正規表現を使ってるかどうか?なんてどーでもいいんじゃないかな。

438:デフォルトの名無しさん
08/11/03 11:08:02
>>433
それだけの情報で気の利いた命名をしろってのは無理がある可能性が高いと思うね。

クラスライブラリみたいな汎用的なクラスならともかく、
特定用途向けのクラスなら、そのクラスが必要になる背景も書かなきゃダメでしょ。

そういうクラスっていうのは機能じゃなくて意味から命名する場合だって
少なくないんだから。

つーか正規表現使った置換なんていうベタベタで汎用性のない処理なんか
処理の意味から命名する以外にないだろ常識で考えて。

439:デフォルトの名無しさん
08/11/03 13:03:13
とケチを付けつつ他のアイディアを出せない>>438

440:デフォルトの名無しさん
08/11/03 13:05:38
>>439
お前日本語読めないのかよw

441:デフォルトの名無しさん
08/11/03 16:54:23
>>433
RegExFromFile

パターンをファイルから読み込める正規表現クラスってことでしょ。

442:433
08/11/03 17:46:34
総称的でいいですね。有り難う御座います。

443:デフォルトの名無しさん
08/11/03 18:34:35
またいつぞやの設計君がわいて出た
ここはお前のオナニースレじゃないの
いい加減分かれ

444:デフォルトの名無しさん
08/11/03 18:49:43
アンカーきぼんぬ

445:デフォルトの名無しさん
08/11/03 19:26:27
>>441-442
ありえんだろ。
置換処理なんてどうでもありうるベタな処理にそんな一般的な名前をつけるなんて狂ってるよ。

もしも将来、そのクラスとほぼ同じだが別の置換をするクラスが欲しくなったら
どうするのよ。
適当な数字でもプリフィクスしますか?w

446:デフォルトの名無しさん
08/11/03 19:31:56
そんな危惧ができるならインタフェースと実装を分けられる言語を使えばいい。
はい終了

447:デフォルトの名無しさん
08/11/03 19:33:25
>>446
日本語で頼むよ。

448:デフォルトの名無しさん
08/11/03 19:46:58
危惧←この漢字が読めなかったか?

449:デフォルトの名無しさん
08/11/03 21:24:19
>>445
使ってるフレームワークに一般的なRegExっていうクラスがあると想像して
(大抵そんなようなのあるよね)、それの派生でパターンをファイルから
読み込む事ができる特定アプリ版、みたいなイメージで>>441を書いた。
だから一般的な名前というつもりはなかったんだけど。

450:デフォルトの名無しさん
08/11/03 21:46:49
わかるけど、それは>>433で要求されてる物と明らかに違うよね

451:デフォルトの名無しさん
08/11/03 21:56:44
>テキストから正規表現を読み込んで指定した文字列が
>その正規表現からフィルターに一致するか返したりや置き換えた文字列を返すクラス名は何がいいでしょうか?

↓↓

テキストから正規表現を読み込んで、指定した文字列が、
その(読み込んだ)正規表現から(なる)フィルターに一致するか返したり、や、
(指定した文字列を)置き換えた(結果の)文字列を返す

452:デフォルトの名無しさん
08/11/03 22:30:34
だから?

453:デフォルトの名無しさん
08/11/03 22:36:52
>>433で要求されているものだと言いたい

454:デフォルトの名無しさん
08/11/03 22:41:46
なわけがない。
もしそんな風に思うとしたら、それは置換という処理の具体例が想像できてないからだろう。

455:デフォルトの名無しさん
08/11/03 22:46:13
ここへきてようやく俺にも>>443の言ってることが理解できたw
では、みなさまお休みなさい。

456:デフォルトの名無しさん
08/11/03 22:48:36
そんなもんは知らん
要求元の>>433が納得したらしいのだから
それが要求だろう


457:デフォルトの名無しさん
08/11/04 07:57:53
動詞とか名詞で迷うことかある

458:デフォルトの名無しさん
08/11/04 09:21:38
>>433
RegexReader

459:デフォルトの名無しさん
08/11/04 09:30:17
>>450
×わかるけど、それは>>433で要求されてる物と明らかに違うよね
○わかるけど、それは>>433のカキコから俺がエスパーした物と明らかに違うよね

そりゃお前が言うんだから違うんだろう
心底どうでも良い事だ

460:デフォルトの名無しさん
08/11/07 15:32:06
windows.hのマクロのせいでCreateWindowという名前が使えないんですけど、みんなどうしてるんですか?
A/W関数の切り替えにマクロ使ってるからDrawTextとか他にも引っかかることおおいけど、
undefして本当の名前で読んでるのか、いちいち同じインターフェースのインライン関数でも作る?

461:デフォルトの名無しさん
08/11/07 16:07:41
使えないわけではないはず
勝手に CreateWindowA とか CreateWindowW に改名されるだけで
すべてのソースで同じように改名されるなら実質問題にならない
Windows的な命名規則を避けて create_window とか createWindow にするという手も
もしくは NewWindow など同じ意味の違う単語を当てたり

462:デフォルトの名無しさん
08/11/07 16:21:24
そうか、DrawTextとかは関数名だけの置き換えだからセーフなのか。
CreateWindowだとCreateWindowW→CreateWindowExW
の時にマクロの引数があるから、それが違ってコンパイルエラーになるのか

463:デフォルトの名無しさん
08/11/07 16:24:27
あぁ、そういうのがあるのか・・・
厄介なもんだね

464:デフォルトの名無しさん
08/11/07 17:09:19
グローバル名前空間以外に置く

465:デフォルトの名無しさん
08/11/07 17:31:10
マクロは名前空間を超越するから無意味

466:デフォルトの名無しさん
08/11/07 23:19:14
初期化とその逆(破棄? 終了化?)を行う関数に名前を付けたいのですが、
事情により初期化関数側にはinitializeが使えません。

何かよい名前があれば教えてください。

467:デフォルトの名無しさん
08/11/07 23:40:18
Begin/End
Enter/Exit

468:デフォルトの名無しさん
08/11/07 23:51:53
Shokika/Haki

469:デフォルトの名無しさん
08/11/08 00:00:51
MyInitialize/MyFinalize

470:デフォルトの名無しさん
08/11/08 00:23:34
>>466
InitializeXxx/FinalizeXxx
Xxx に具体的な内容を。

471:デフォルトの名無しさん
08/11/08 00:25:24
create/destroy

472:デフォルトの名無しさん
08/11/08 00:41:13
>>467-471
ありがとうございます。
参考になりました。

473:デフォルトの名無しさん
08/11/08 01:51:08
>>466
setup
prepare
start
begin
init

474:デフォルトの名無しさん
08/11/08 15:54:41
ある処理の捜査(1-100)%毎に呼び出すイベントがあります
()の中を埋める変数名はどんなものが宜しいでしょうか?

475:デフォルトの名無しさん
08/11/08 16:00:45
initとinitializeという名前の関数が両方存在するプログラムをメンテしたことがあるけど、もうね(ry

476:デフォルトの名無しさん
08/11/08 16:02:37
(T_T)

477:デフォルトの名無しさん
08/11/08 16:07:24
>>474
捜査?操作?
誤字はともかくそういう読み手にエスパー能力を要求する文章ってどうなの?

そのイベントとは進捗度を通知するイベントという理解でいいのか?
だったら辞書引くだけだと思うんだが。。

478:デフォルトの名無しさん
08/11/08 16:08:28
>>474
progress

479:デフォルトの名無しさん
08/11/08 16:09:33
>>477
走査の間違いでした
イベントは進歩度を表します

>>478
出来れば〜%毎にという意味合いも付け加えたいです

480:デフォルトの名無しさん
08/11/08 16:11:09
〜%, 残り〜秒、〜秒経過とか使い分けるんでもないなら
いちいち明示するのって筋が悪いよ

481:デフォルトの名無しさん
08/11/08 16:14:42
>>480
限定された進歩度を表現したいので使い分けたいのですが・・・


482:デフォルトの名無しさん
08/11/08 16:15:28
>>480
俺もそう思うね。
そもそも進捗度(進歩って普通は言わないよ)を通知するイベントっていうのが
イベントとして不自然だ。

483:デフォルトの名無しさん
08/11/08 16:16:23
>>474
CalledEventFrequency

484:デフォルトの名無しさん
08/11/08 16:23:17
>>483
呼び出す頻度って意味かな?
参考にします
ありがとうございました

485:デフォルトの名無しさん
08/11/08 16:35:10
>>481
まあケチつけるだけだとアレなんで一応考えてみる。
イベント名はProgressNotificationで通知するパラメータの名前はpercentage。
名前に"〜%毎"なんて意味を含めるのはやっぱり愚策に思える。
どうしてもと言うならイベント名をProgressNotificationEveryXXPercentにするのかな。

でも普通はイベントを発生させるオブジェクトのプロパティか何かで
イベント発生のステップの取得/設定ができるようにするんじゃないのか。

486:デフォルトの名無しさん
08/11/08 16:47:50
>>485
あるデータを処理してその進捗度がデータ総数のX/100区切りの時のみ
イベントを発生したかったのです

X=1なら1%毎にX=10なら10%毎にといった感じです

このXを格納する変数を教えて頂きたかったのですが
説明が悪かったようでホントに申し訳ありませんでした


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5396日前に更新/204 KB
担当:undef