クラス名・変数名に迷ったら書き込むスレ。Part20
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2011/07/29(金) 21:32:01.00命名規則や設計の善し悪しについて議論するのは基本的に禁止。
前スレ
クラス名・変数名に迷ったら書き込むスレ。Part19
http://hibari.2ch.net/test/read.cgi/tech/1293201229/
0174デフォルトの名無しさん
2011/10/26(水) 02:03:26.790175デフォルトの名無しさん
2011/10/26(水) 07:16:35.80ひょっとしたら寝たら頭スッキリしてわかるかも、と思ったけど無理だた
0176デフォルトの名無しさん
2011/10/26(水) 08:00:04.45縁のない人はスルーしてw
0177デフォルトの名無しさん
2011/10/26(水) 08:23:13.280178デフォルトの名無しさん
2011/10/26(水) 09:07:55.30説明が下手すぎるって言ってるんだ。
0179デフォルトの名無しさん
2011/10/26(水) 09:09:16.040180デフォルトの名無しさん
2011/10/26(水) 11:05:33.130181デフォルトの名無しさん
2011/10/26(水) 15:11:20.40BYMessage
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.320184デフォルトの名無しさん
2011/10/26(水) 19:55:15.85ただ、人間が指定する部分と自動的につけられた部分が区別つくようにすると思う。
MessageService → MessageService_Service
ServiceMessage → ServiceMessage_Service
とか。
0185デフォルトの名無しさん
2011/10/26(水) 19:55:28.29乙
0186デフォルトの名無しさん
2011/10/26(水) 20:33:13.20属性で区別するけどな
0187デフォルトの名無しさん
2011/10/26(水) 20:54:37.01自動生成やらコーディング規約やらに含めるのが間違いなんだろうな
0188デフォルトの名無しさん
2011/10/27(木) 01:08:52.17間違えてる時って、わりと最初のほうから間違えてるから、
最後のほうになって悪あがきしたところでもう詰んでる。
0189デフォルトの名無しさん
2011/10/27(木) 01:14:07.650190デフォルトの名無しさん
2011/10/27(木) 22:05:08.33他にも沢山ファイルがあるとしてだが
0191デフォルトの名無しさん
2011/10/27(木) 22:40:49.990192デフォルトの名無しさん
2011/10/27(木) 23:04:45.92その造語を誰が伝えてどうやって広める?
0193デフォルトの名無しさん
2011/10/28(金) 00:44:21.50造語じゃなくてそのシステム固有のプレフィックスみたいな決め事だよ。
生成された名前には問答無用でそれをくっ付けるんだよ。
ネームスペースを使えない(使わない)ような環境では普通だろ。
0194デフォルトの名無しさん
2011/10/28(金) 00:46:09.310195デフォルトの名無しさん
2011/10/28(金) 13:59:05.69頭悪いソリューションだな
0196デフォルトの名無しさん
2011/10/29(土) 00:07:22.140197デフォルトの名無しさん
2011/10/29(土) 00:22:38.91solutionをソリューションと発音されると気になって仕方がない。
頭悪い奴御用達の渡辺美里の例の歌も気になってしょうがなかったな。
0198デフォルトの名無しさん
2011/10/29(土) 01:16:25.980199デフォルトの名無しさん
2011/10/29(土) 01:17:47.090200デフォルトの名無しさん
2011/10/29(土) 02:00:40.77わかりはじめた!
0201デフォルトの名無しさん
2011/10/29(土) 07:29:33.830202デフォルトの名無しさん
2011/10/29(土) 12:15:43.090203デフォルトの名無しさん
2011/10/29(土) 12:36:59.250204デフォルトの名無しさん
2011/10/29(土) 12:45:15.420205デフォルトの名無しさん
2011/10/29(土) 16:15:50.910206デフォルトの名無しさん
2011/10/29(土) 16:24:59.02現状それしか方法がない、仕方がないとは言え、
やはり解決方法としてはダサいの一言に尽きますなぁ
入力候補の並び替え機能は何で付けないんだろ
0207デフォルトの名無しさん
2011/10/29(土) 17:07:54.160208デフォルトの名無しさん
2011/10/29(土) 18:06:11.19intelliなんだから
0209デフォルトの名無しさん
2011/10/29(土) 18:13:09.030210デフォルトの名無しさん
2011/10/29(土) 19:26:38.46一覧の表示方法とコードの書き方にどのような繋がりがあるのか、
もっとしっかりちゃっかりまったり説明してくれ
0211デフォルトの名無しさん
2011/10/29(土) 19:41:55.54つまり視点をクラスの内部に置いている時(そのクラスを書いている時)には
呼び出そうとしているメソッドのアクセスレベルなんか気にしても意味ない。
っていうか、メソッド一覧がアクセスレベルで分類なんかされたら
かえってありがた迷惑でしかない。
0212デフォルトの名無しさん
2011/10/29(土) 20:02:37.84外からアクセスしねーのに一覧に表示されたら邪魔だろ
そんな簡単なことも分かんねーのかモンキー
0213デフォルトの名無しさん
2011/10/29(土) 20:06:43.73元々MSのインテリセンスは現在のコンテキストから見えるメンバしか表示されませんよ。
何意味不明なこと言ってるんだろうね。
0214デフォルトの名無しさん
2011/10/29(土) 20:13:42.290215デフォルトの名無しさん
2011/10/29(土) 20:54:54.39病院行ってこい
0216デフォルトの名無しさん
2011/10/29(土) 22:42:29.850217デフォルトの名無しさん
2011/10/29(土) 22:53:50.02その通りだと思ったが
protected/privateが現在のコンテキストから見えれば表示される
0218デフォルトの名無しさん
2011/10/29(土) 22:57:07.690219デフォルトの名無しさん
2011/10/30(日) 05:57:32.71熟語になるし一目で型は分かるけど補完に使えない
0220デフォルトの名無しさん
2011/10/30(日) 10:30:28.54またVC#贔屓か
0221デフォルトの名無しさん
2011/10/30(日) 11:44:24.830222デフォルトの名無しさん
2011/10/30(日) 11:49:43.31C#のように完璧は無理だから間違って出るはずのものが出ないよりは全部出たほうがマシって判断なんじゃね
0223デフォルトの名無しさん
2011/10/30(日) 12:02:25.340224デフォルトの名無しさん
2011/11/02(水) 12:49:40.72Hoge(preHoge , ???Hoge);
???って何が入るの?
0225デフォルトの名無しさん
2011/11/02(水) 13:01:25.040226デフォルトの名無しさん
2011/11/02(水) 13:53:23.930227デフォルトの名無しさん
2011/11/02(水) 17:42:51.330228デフォルトの名無しさん
2011/11/02(水) 19:05:14.63HogeFooter
・・・最高にダサいな
0229デフォルトの名無しさん
2011/11/02(水) 22:47:39.870230デフォルトの名無しさん
2011/11/02(水) 22:57:48.15何が同じだと思ったんだ
0231デフォルトの名無しさん
2011/11/02(水) 22:58:14.64コントローラーは何かを管理・制御する役目。
0232デフォルトの名無しさん
2011/11/02(水) 23:41:37.270233デフォルトの名無しさん
2011/11/03(木) 01:20:55.79ありがとう
ということは今までコントローラーとつけてたのはディスパッチャーに
マネージャーとつけてたのはコントローラーにしないとなあ
0234デフォルトの名無しさん
2011/11/03(木) 08:29:06.180235デフォルトの名無しさん
2011/11/03(木) 09:04:19.79自機、敵、弾丸、アイテムなど、プレイ中に出現する「動くもの」全般の基底クラスの名前をお願いしたい。
これらは、自身の座標、移動量、生存フラグ、出現してからの時間といった変数の他、
自身の更新メソッド&描画メソッドなどを持っている。
0236デフォルトの名無しさん
2011/11/03(木) 09:14:42.80class DynamicEntiry : public GameEntity ;
0237デフォルトの名無しさん
2011/11/03(木) 11:11:46.66{
public:
SomeResourceHandle Get(void) { return hRes ; }
private:
SomeResourceHandle hRes ;
};
リソースの所有権がHogeにあって、Getで取得した生ハンドルを外部で保持するのはまずい
ということを利用者にわかりやすく伝えるメソッド名はなにがよいか
0238デフォルトの名無しさん
2011/11/03(木) 11:31:57.01こんな答えは望んじゃいないだろうが、俺なら外に出さなくてすむようにする。
そしたら、少なくともそういう難しいメソッド名(や、使いにくいルールの押し付け)で悩まなくてすむ。
0239デフォルトの名無しさん
2011/11/03(木) 11:35:13.60俺なら、そういう「適切な利用方法」に関する情報は名前には入れない
名前には「それは何か」という情報だけを入れる
外部で保持されてはまずい生ハンドルがどうしてGetで取得できちゃうの?
0240デフォルトの名無しさん
2011/11/03(木) 11:44:32.430241デフォルトの名無しさん
2011/11/03(木) 11:49:45.200242デフォルトの名無しさん
2011/11/03(木) 12:21:54.03ありがとう MovableEntityにしてみる
0243デフォルトの名無しさん
2011/11/03(木) 12:33:41.70.NETだと下層のAPIをラップしたものなど、動作に関して使用者が責任を
持つ必要がある安全でない型やメンバーはUnsafeプレフィックスが付く
この例だと、UnsafeGetHandle()かUnsafeHandle()あたり
後はドキュメントに取得したハンドルの有効期限などを記述すれば良い
0244デフォルトの名無しさん
2011/11/03(木) 13:05:49.720245デフォルトの名無しさん
2011/11/03(木) 15:50:41.16これくらいググれないものなのかね
0246デフォルトの名無しさん
2011/11/03(木) 15:52:53.23余計なものがいっぱい混ざってるし
だから、逆引き辞典の需要があるわけだし
0247デフォルトの名無しさん
2011/11/03(木) 15:59:49.02まあ俺が上手いだけか
0248デフォルトの名無しさん
2011/11/03(木) 16:39:21.37だからコツを教えてあげなよ
0249デフォルトの名無しさん
2011/11/03(木) 16:42:50.060250デフォルトの名無しさん
2011/11/03(木) 20:21:03.48のXXXは単数形?複数形?
0251デフォルトの名無しさん
2011/11/03(木) 20:28:39.760252デフォルトの名無しさん
2011/11/03(木) 20:46:55.470253デフォルトの名無しさん
2011/11/03(木) 20:48:43.600254デフォルトの名無しさん
2011/11/03(木) 21:01:57.14プログラムでは常に複数形にするのが無難だとは思うけど
0255デフォルトの名無しさん
2011/11/03(木) 21:26:41.46ただ可算名詞であっても、同じ名詞が抽象名詞として使われる場合単数形になる、
ということはあるみたいで、それとごっちゃになって覚えていたのかな。
0256デフォルトの名無しさん
2011/11/03(木) 22:47:02.39別に複数形にしなくたってわかるから1byte節約して書かないほうがマシ
0257デフォルトの名無しさん
2011/11/04(金) 01:20:06.06そのルールに従うと、今回のメソッドも複数形になる。
が、そもそも自分はAllを省いて getXXXs() で良いと思う派。
0258デフォルトの名無しさん
2011/11/04(金) 01:29:43.730259デフォルトの名無しさん
2011/11/04(金) 09:00:21.450260デフォルトの名無しさん
2011/11/04(金) 09:10:25.080261デフォルトの名無しさん
2011/11/04(金) 09:20:56.56なんでもドキュメント読めばいいで終わらせてたら名前なんていらんわ
0262デフォルトの名無しさん
2011/11/04(金) 09:25:01.92下手するとシステムハンガリアン() と言われかねないし。
0263デフォルトの名無しさん
2011/11/04(金) 09:36:47.14「〜のよくわからない集合」って書くのと「〜のリスト」「〜のスタック」
と書くのどっちがましかという話
まともな神経をしてれば後者を選ぶだろう
コンテナの抽象化はパフォーマンスに直結する悪手だよ
0264デフォルトの名無しさん
2011/11/04(金) 09:52:21.50困ったことが一度としてないんだがw
0265デフォルトの名無しさん
2011/11/04(金) 10:12:37.98「〜の集合」てのが最も重要でこれが基本
データ構造を付け足すかどうかはオプション
0266デフォルトの名無しさん
2011/11/04(金) 10:16:33.140267デフォルトの名無しさん
2011/11/04(金) 10:23:55.59下位の、より小さなコンテナの変数を、getterで外に出すような展開もべつに無いし。
0268デフォルトの名無しさん
2011/11/04(金) 10:27:03.38名前だけで判断しようとしてるからコケる
0269デフォルトの名無しさん
2011/11/04(金) 10:48:34.99例えば検索するときにどのアルゴリズムを選択するかとかが判断しにくくなる
出社してそれほど時間が経過していなくて頭がすっきりしていて型が完全に頭に入った状況でのコーディングならhogesで問題はないが
何時間もディスプレイやキーボードと格闘して疲労の溜まったPGが5分前の記憶を覚えてるとは限らない
そのたびにhogesってどんな集合だっけとプロトタイプを確認する作業が追加される
さいしょからsortedHogeVectorと名前がついてれば3日徹夜した後であろうとも直ちにランダムアクセス可能、二分探索が有効とわかる
0270デフォルトの名無しさん
2011/11/04(金) 10:52:39.18でおk
0271デフォルトの名無しさん
2011/11/04(金) 10:55:59.53変数名を工夫したところで負担の小さいコードにはならない。
0273デフォルトの名無しさん
2011/11/04(金) 11:27:20.40■ このスレッドは過去ログ倉庫に格納されています