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

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

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

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

前スレ
クラス名・変数名に迷ったら書き込むスレ。Part19
http://hibari.2ch.net/test/read.cgi/tech/1293201229/
0101デフォルトの名無しさん2011/10/05(水) 15:06:11.85
なんじゃそりゃ
0102デフォルトの名無しさん2011/10/05(水) 21:41:35.18
お気に召しませんか
0103デフォルトの名無しさん2011/10/05(水) 22:33:48.57
はい
0104デフォルトの名無しさん2011/10/06(木) 01:08:19.61
find_editors_by_record_id(record_id)
でいいだろ
0105デフォルトの名無しさん2011/10/06(木) 13:24:20.55
GetUserIdsWhichUpdatedThisRecord(recordId)
0106デフォルトの名無しさん2011/10/06(木) 15:25:44.90
>>99です。返事後れました。
やっぱ、しっくりくるものなさげですね。>>100みたいな感じにします。
0107デフォルトの名無しさん2011/10/06(木) 16:14:58.50
whoを使う選択肢はないの?
0108デフォルトの名無しさん2011/10/06(木) 16:23:54.89
ないよ
0109デフォルトの名無しさん2011/10/06(木) 17:45:20.74
ないね
0110デフォルトの名無しさん2011/10/06(木) 17:57:06.13
説明的な名前のメソッドは、ウンコにかける消臭剤のようなもの。
0111デフォルトの名無しさん2011/10/06(木) 18:00:50.42
関係代名詞は使いたくないですね。
GetUpdatedByUserIDs(RecordID)ってのも名前に使うときはありなんですかね。
ググってたらそんな感じのがありましたんで。
0112デフォルトの名無しさん2011/10/06(木) 18:48:33.15
絶望的に英語ができない
0113デフォルトの名無しさん2011/10/06(木) 19:01:37.42
GetUpdaters
0114デフォルトの名無しさん2011/10/06(木) 20:33:47.81
>>99
よくわからんが、GetModifiersとかGetUpdatersみたいな感じ?

>>110
むしろウンココード量産するタイプの奴はたいてい君のように嘯く
0115デフォルトの名無しさん2011/10/06(木) 21:20:36.65
GetUpdatedByUserIDs
↓
プログラマ脳による翻訳: ユーザーIDによって更新された"それ"を取得する
現実: ユーザーIDで更新されてください。
0116デフォルトの名無しさん2011/10/06(木) 21:29:01.49
>>113-114でFA
>>104が惜しいくらいであとはセンス無し
0117デフォルトの名無しさん2011/10/06(木) 21:56:32.16
>>116
こういう場合、どういうセンスが求められているの?
0118デフォルトの名無しさん2011/10/09(日) 15:46:05.85
OSとのリソースのやり取りをラップして一括管理するクラスってどんな名前がいいかな?
○○マネージャーは駄目だっていうけどこの場合マネージャーしか思い浮かばない
0119デフォルトの名無しさん2011/10/09(日) 16:06:26.07
BinwanProducer でどう?
0120デフォルトの名無しさん2011/10/09(日) 17:36:38.55
>>118
一括管理って、具体的に何をするの?
0121デフォルトの名無しさん2011/10/09(日) 18:46:08.07
>>120
実際に確保解放するのをマネージャに任せて
他のリソースが必要なクラスはこのマネージャを仲介して貰う
マネージャは参照数などを管理したり別スレッドで実際の確保解放を行ったりする
0122デフォルトの名無しさん2011/10/09(日) 20:03:54.01
~ManagementService
実質何も解決しないけど
0123デフォルトの名無しさん2011/10/09(日) 20:25:36.91
HogeManager
  └ Hoge

じゃなくて

Hoge
  └ HogeDevice

みたいに、マネージャの方をシンプルな名前にするのは?
0124デフォルトの名無しさん2011/10/09(日) 20:39:32.12
>>121
そのマネージャを利用する側のクラスの立場に立てば、
そのマネージャはリソースを持っているかのように見えるわけだ

実際に参照数を管理してるのかどうかは、利用する側にとってはどうでもいい話
もしかしたら実際には参照数以外の別の何かを管理して上手くやっているのかも知れん
スレッドが作られるかどうかも、利用する側には関係ないことなんだろ?

つまり、リソースが必要ならがそのマネージャが持っている事が分かりさえすれば良い

というわけで、単に Resource クラスでいいような気がするが、どうだろう
Resource クラスが別にあって、それを束ねているのなら ResourcePool とか
0125デフォルトの名無しさん2011/10/10(月) 03:52:59.07
SystemResource と SystemResourceManager
0126デフォルトの名無しさん2011/10/10(月) 08:01:33.85
お前ら質問を変えようと必死だなw
そのまま答えろよw
0127デフォルトの名無しさん2011/10/10(月) 09:28:10.27
ResourceLoader
0128デフォルトの名無しさん2011/10/10(月) 12:36:45.74
質問者には悪いけど、なんか意味不明っていうか....

GCない言語でGCみたいな働きをするクラスが欲しいのかも知れんけど、
ちょっと無理があるんじゃないかと。
参照数を管理する、なんて簡単に言うけどどうやってやるんだろう....
0129デフォルトの名無しさん2011/10/10(月) 12:52:13.65
利用者が明示的にマネージャのメソッドを呼ぶんだろ
集中管理する意味は知らないけど別にできなくはない
0130デフォルトの名無しさん2011/10/10(月) 12:56:12.77
>>129
そうやって、リリース側を呼び忘れるとw
不穏な設計に付き合わされる日々が待っている、と。
0131デフォルトの名無しさん2011/10/10(月) 13:08:57.68
「変換された情報」という意味が分かるように変数名をつけたいです
そのまま英語にしますと

transformedInfomation
translatedInformation
convertedInformation

という辺りが妥当ですが、さすがにちょっと長いです
なので省略したいのですが、後半の Information は Info に略せるとして、
前半は

transed
conved

などとしても、海外の方たちもちゅんと意図をくんでくれるでしょうか
0132デフォルトの名無しさん2011/10/10(月) 13:26:23.42
>>131
その変数が100箇所に登場するとかでなければ、変に略す必用ないでしょ。

略すにしても暗号みたいのは却下。
ただでさえ他人の書いたコードなんて暗号なのに、そんな下らない謎解きまでさせるのは勘弁して欲しい。

略すならInformationを丸ごと削る方向で。
translatedとかmodifiedとか。
もちろんこれはローカルのみ可
0133デフォルトの名無しさん2011/10/10(月) 14:23:26.82
俺ならtranslatedだな。
0134デフォルトの名無しさん2011/10/10(月) 14:25:31.09
>>132
> そんな下らない謎解き

つまり、transed や conved などは一般的ではない謎解きレベルということですね

参考になりました
translated にします
0135デフォルトの名無しさん2011/10/10(月) 14:30:49.41
EncodedInfo
0136デフォルトの名無しさん2011/10/10(月) 16:16:35.52
どんな変換をしたかが重要だろ
例えば圧縮変換ならcompressedにすればtranslatedやencodedより明確になる
0137デフォルトの名無しさん2011/10/10(月) 16:51:34.46
>>136
なるほど、確かにその通りです

ただ、今回の質問の趣旨は
プログラミングの世界で transed や conved が一般的かどうか、というもので、
それを訊く為に仮想的な状況を作って質問しました

素直に最初から 「transed や conved は一般的か」 とだけ質問すべきでした
すいませんでした
0138デフォルトの名無しさん2011/10/15(土) 09:00:16.83
デバック用にクラスの内容を(そのクラスの内容が見えるように)ストリームに出力する関数の名前ってDumpでいい?
0139デフォルトの名無しさん2011/10/15(土) 10:12:57.78
Rubyとかだと文字列を返すinspectってメソッドがあるな。
0140デフォルトの名無しさん2011/10/17(月) 19:30:05.18
>>134
一的な謎解いいと?
0141デフォルトの名無しさん2011/10/18(火) 22:02:21.78
ログインフォームは英語でそのままですが、登録フォームは英語で何て言うんですか?
ユーザ登録時とかのフォームです
Entry Form、SignUp Form、Register Fromとか考えたんですが・・・
0142デフォルトの名無しさん2011/10/18(火) 22:34:19.54
registration form
0143デフォルトの名無しさん2011/10/18(火) 22:42:36.37
EntrySheet
0144デフォルトの名無しさん2011/10/19(水) 13:58:22.95
�@ entry form: 入力フォーム
�A registration form: 登録フォーム
どちらも同じ用途に使われるけど、「登録フォーム」を問われているんだから�Aだろうね
0145デフォルトの名無しさん2011/10/19(水) 15:14:43.36
前に自分が書いたソースを見直したら、RegFormだった(´・ω・`)
0146デフォルトの名無しさん2011/10/19(水) 15:18:35.03
>145 RegistFormよりははるかにマシ
0147デフォルトの名無しさん2011/10/19(水) 15:19:46.59
RenForよりまし
0148デフォルトの名無しさん2011/10/19(水) 19:01:54.08
レンフォー大臣
0149デフォルトの名無しさん2011/10/19(水) 19:30:27.28
それさいあく
0150デフォルトの名無しさん2011/10/19(水) 21:14:40.63
チェック済みのフォームデータを表す変数名を教えてください
0151デフォルトの名無しさん2011/10/19(水) 21:19:00.06
チェッキンファッキンフォーム
0152デフォルトの名無しさん2011/10/19(水) 21:54:19.90
CheckedFormData じゃあかんのか
0153デフォルトの名無しさん2011/10/20(木) 12:45:31.29
validFormDataだろ
0154デフォルトの名無しさん2011/10/20(木) 13:27:10.65
チェックマーク記入済みっていう意味かもしれないぞw
0155デフォルトの名無しさん2011/10/20(木) 13:52:58.10
フォームから入力されたデータで、誰かのチェックが通ったもの、だよね?
0156デフォルトの名無しさん2011/10/20(木) 14:39:11.90
チェックはしたけど正しいかどうかは保証されてないデータかもしれない
0157デフォルトの名無しさん2011/10/20(木) 16:05:58.87
validに一票
0158デフォルトの名無しさん2011/10/20(木) 18:28:03.67
CheckedFormData: チェック済みフォームデータ
ConfirmedFormData: 確認済みフォームデータ
ValidFormData: 有効であるフォームデータ
0159デフォルトの名無しさん2011/10/22(土) 09:08:49.49
>>158
みなさまありがとうございました感謝
0160デフォルトの名無しさん2011/10/24(月) 22:34:58.50
・タイプとパラメーターのセットであるメッセージクラス
・メッセージを受け取り解釈し何らかの動作をするハンドラクラス
・メッセージのタイプを調べそのタイプのメッセージを要求しているハンドラすべてにメッセージをコピーして渡す?クラス

?クラスの名前はメッセージマネージャ以外ではなにが適切ですか?
0161デフォルトの名無しさん2011/10/24(月) 22:37:37.75
メッセージディスパッチャ
0162デフォルトの名無しさん2011/10/24(月) 22:38:38.33
Dispatcherとか?
0163デフォルトの名無しさん2011/10/25(火) 09:58:05.48
SwitchingHub
0164デフォルトの名無しさん2011/10/25(火) 11:09:49.68
message distributor
0165デフォルトの名無しさん2011/10/25(火) 12:52:19.86
次へ、と前へ、で next, prev としてるんですが、
これらを総称した場合の呼び方って何でしょうか?
0166デフォルトの名無しさん2011/10/25(火) 13:01:01.80
連環でいいんじゃないかな
0167デフォルトの名無しさん2011/10/25(火) 13:10:21.59
この日本語初めて聞きました。
調べたんですが、英語だと linkage であってます?
0168デフォルトの名無しさん2011/10/25(火) 14:47:13.36
Navigatorってのも見たことがある
0169デフォルトの名無しさん2011/10/25(火) 15:11:20.20
link
【名詞】【可算名詞】
1
 a(鎖の)環(かん), 輪.
 b(編み物の)目.
 c[通例複数形で] カフスボタン 《★【比較】 「カフスボタン」は和製英語》.
2 (鎖状につながれたソーセージの)一節.
3 結びつけるもの[人]; 連結,きずな,関連 〔with,between〕.

十分じゃねw
0170デフォルトの名無しさん2011/10/26(水) 00:37:40.59
区切りが分かるように特例を設けますか?
ルールを徹底して一貫性を貫きますか?
�@メッセージサービス サービスクラス
�Aサービスメッセージ サービスクラス
後ろが必ず サービス って付きます。
僕はツール作成の容易さを考慮したくて
読みやすさを犠牲にしました。
みんなの意見が聞きたい


0171デフォルトの名無しさん2011/10/26(水) 00:40:49.62
区切りがわからない事態が発生していないのでルール通り
0172デフォルトの名無しさん2011/10/26(水) 00:43:40.27
まずツールってどういう奴よ
0173デフォルトの名無しさん2011/10/26(水) 01:02:58.62
>>172
○○△△サービスクラスってあったら○○と△△が必ず「辞書」みたいなライブラリに存在する
メッセージ+サービス=メッセージングサービスとか造語作る人もいるけど
面倒なのでメッセージは修飾語も主語もメッセージで統一したい
サービスも同じ要領

ツールは設計書に記載してあるクラス名からソースを自動生成するもの
いろんなドキュメントにクラス名やその情報が記載されてある
"似て非なるもの"は厄介
0174デフォルトの名無しさん2011/10/26(水) 02:03:26.79
よくわからん・・・
0175デフォルトの名無しさん2011/10/26(水) 07:16:35.80
日本語で書かれてるはずなのに何を言いたいかがちんぷんかんぷんだ
ひょっとしたら寝たら頭スッキリしてわかるかも、と思ったけど無理だた
0176デフォルトの名無しさん2011/10/26(水) 08:00:04.45
まあ、難しいプロジェクトにいるって事ですw
縁のない人はスルーしてw
0177デフォルトの名無しさん2011/10/26(水) 08:23:13.28
外人?
0178デフォルトの名無しさん2011/10/26(水) 09:07:55.30
難しいプロジェクトだからどうこうのレベルじゃない。
説明が下手すぎるって言ってるんだ。
0179デフォルトの名無しさん2011/10/26(水) 09:09:16.04
2ちゃんにアドバイスを求めてくる難しいプロジェクト(笑)
0180デフォルトの名無しさん2011/10/26(水) 11:05:33.13
クソみたな命名規約があるってことだろ
0181デフォルトの名無しさん2011/10/26(水) 15:11:20.40
AXService
BYMessage
CZMessageService
(A,B,C:修飾語、X,Y,Z:主語)

てことか?

区切りって何よ?特例って君の裁量で設けていいもんなの?
ルールがあるなら基本それ守れよ。
「辞書」みたいなライブラリって何よ?
複数のドキュメントからソース生成すんの?

どこからツッコんで良いかわからんようになった
もっぺん最初から頭ん中整理しなおしてから質問に来てくれ
0182デフォルトの名無しさん2011/10/26(水) 19:01:59.89
「クラス名」を指定することで、そのクラスと、それに関連するソースコードを自動生成するプログラムを作成しています。
例えば「HogeMessenger」と指定すると、HogeMessengerServiceクラスと、それに関係するソースコードが自動生成されます。
この指定するクラス名について悩んでいます。

仕様上、クラス名のサフィックスとして「Service」を付けることになっていますが、
指定するクラス名が「MessageService」だとすると、実際のクラス名は「MessageServiceService」になってしまい、格好が悪い
同様に、「ServiceMessage」→「ServiceMessageService」になってしまい、二度同じ単語が出てきて格好が悪い

「指定するクラス名の最後が「Service」であれば、実際に作成されるクラスのクラス名のサフィックスに「Service」を付けない」
等の特例を設けるべきでしょうか、それとも設ける必要はありませんか?
自分は特例を設けない方向で考えていますが、みなさんはどうしますか?

という質問なのかな?
0183デフォルトの名無しさん2011/10/26(水) 19:48:06.32
目から香川県が落ちるくらい分かりやすい
0184デフォルトの名無しさん2011/10/26(水) 19:55:15.85
自分なら自動生成される名前にかっこよさは求めない。
ただ、人間が指定する部分と自動的につけられた部分が区別つくようにすると思う。

MessageService → MessageService_Service
ServiceMessage → ServiceMessage_Service

とか。
0185デフォルトの名無しさん2011/10/26(水) 19:55:28.29
>>182
乙
0186デフォルトの名無しさん2011/10/26(水) 20:33:13.20
その辺り、C# なら名前はユーザーに自由に決めさせて(他と被ったらユーザーの責任)、
属性で区別するけどな
0187デフォルトの名無しさん2011/10/26(水) 20:54:37.01
まあServiceなんつう業務仕様にも現れそうな一般的単語を
自動生成やらコーディング規約やらに含めるのが間違いなんだろうな
0188デフォルトの名無しさん2011/10/27(木) 01:08:52.17
最近のレスだと>>187だけに同意。
間違えてる時って、わりと最初のほうから間違えてるから、
最後のほうになって悪あがきしたところでもう詰んでる。
0189デフォルトの名無しさん2011/10/27(木) 01:14:07.65
自動的に何でもかんでもServiceを付けるようにした事に何のメリットがあるの?
0190デフォルトの名無しさん2011/10/27(木) 22:05:08.33
ファイル検索するときに*Serviceで容易に拾えるじゃん
他にも沢山ファイルがあるとしてだが
0191デフォルトの名無しさん2011/10/27(木) 22:40:49.99
俺ならそんなありがちな単語でなくて、もっとかぶりそうにない文字列を選ぶけどね・・・
0192デフォルトの名無しさん2011/10/27(木) 23:04:45.92
SrvとかServとかSvとかか?
その造語を誰が伝えてどうやって広める?
0193デフォルトの名無しさん2011/10/28(金) 00:44:21.50
>>192
造語じゃなくてそのシステム固有のプレフィックスみたいな決め事だよ。
生成された名前には問答無用でそれをくっ付けるんだよ。
ネームスペースを使えない(使わない)ような環境では普通だろ。
0194デフォルトの名無しさん2011/10/28(金) 00:46:09.31
例えば yacc が吐くコード中のシンボルの yy みたいなのね。
0195デフォルトの名無しさん2011/10/28(金) 13:59:05.69
>>190
頭悪いソリューションだな
0196デフォルトの名無しさん2011/10/29(土) 00:07:22.14
頭の良いソリューションに出会ったためしがない
0197デフォルトの名無しさん2011/10/29(土) 00:22:38.91
simulationはシミュレーションでもシュミレーションでも気にならないが、
solutionをソリューションと発音されると気になって仕方がない。

頭悪い奴御用達の渡辺美里の例の歌も気になってしょうがなかったな。
0198デフォルトの名無しさん2011/10/29(土) 01:16:25.98
スルーシュンだよな
0199デフォルトの名無しさん2011/10/29(土) 01:17:47.09
もういいよ
0200デフォルトの名無しさん2011/10/29(土) 02:00:40.77
>>197
わかりはじめた!
■ このスレッドは過去ログ倉庫に格納されています