クラス名・変数名に迷ったら書き込むスレ。Part20
おつ。
前スレ埋まったの6月15日か。
そういえば、質問スレかどこかで変数名の話題になってたな…
>1
Zなんたらかんたら
_1zNoNoNotIchiOtsuItItItsHungarianNotation
面白いと思ってるのかもしれんが、気色が悪いだけ
すまんかった
大丈夫
そこそこ面白かったよ
だからもうやめてね
TONさん誕生の瞬間
704 :デフォルトの名無しさん:2008/12/12(金) 16:04:28
スクリプト言語で、最初のほうで
定数A = 今の完全時刻(年月日から秒まで)
定数B = 定数Aから日付部分を取り出したもの、文字列にすると 2008-12-12
定数C = 定数Aから時間部分を取り出したもの、文字列にすると 16:04:34
としたときの、定数ABC。
Aを NOW という定数名で使うことが多いんだけど、Bは TODAY で、じゃあCは何? みたいな
705 :デフォルトの名無しさん:2008/12/12(金) 16:28:43
TODAYをやめて
DATEとTIMEにしたら?
706 :デフォルトの名無しさん:2008/12/12(金) 17:06:45
TODAYはセンス無いなw
707 :デフォルトの名無しさん:2008/12/12(金) 17:26:11
NOWから取り出した値だってのがわかるような名前がいいと思う。
NOW_DATEとNOW_TIMEでいんじゃね?
708 :デフォルトの名無しさん:2008/12/12(金) 17:31:25
TIMEって日付情報含んでそうだ
709 :デフォルトの名無しさん:2008/12/12(金) 17:48:04
>>708 そりゃお前の誤解だ
710 :デフォルトの名無しさん:2008/12/12(金) 19:31:20
俺はTodayは悪くないと思う。
それでいけばCはTimeOfNowってとこか。
もう忘れようよ…
>>10 なんか根暗っていうか、馬鹿なくせに執念深さだけは一人前って感じだなお前
tonまだいるのかよ
結局
date
time
datetime
を使えばいいってことで
17 :
デフォルトの名無しさん:2011/08/09(火) 02:16:18.40
あ行なら0、か行なら1をそれぞれ代入したい変数があるんだけど
かっこいい名前ありませんか
かっこよさを求めているからそれはストレートすぎてダメじゃないかな。
そもそもかっこいい名前を求めるのがダメという意見も出るだろうけれど、要望にはこたえてあげて欲しい
失せろゴミクズ
マジレスするとindexはおかしい。せめてそれぐらい突っ込めよ
>>20
それはストレートすぎてダメじゃないかな。
indexっておかしいの?
その質問はストレートすぎてダメじゃないかな。
orderはどう?
26 :
デフォルトの名無しさん:2011/08/09(火) 09:28:53.72
indexだとsqlに通らない
initialでいいかな
>>26 カラム名なら単純に consonant で良いんじゃないの
それか index の代わりに idx とか key とか
>>23 別におかしくないよ
char consonant[] = { ' ', 'k', 's', 't', 'n', 'h', 'm', 'y', 'l', 'w', 'g', 'z', 'd', 'b' };
int consonant_index;
先生、パ行がありません!
これらのイベントを名づけてくれ
1. ユーザーがクリックして、システムがそれを処理する前のイベント
2. ユーザーがクリックして、システムがそれを処理した後のイベント
3. Hoge を見つけた時に発生するイベント
4. システムがロードを開始する直前に発生するイベント
5. システムがロードを開始する直後に発生するイベント
6. システムがロードを就労した直後に発生するイベント
OnClicking
OnClicked
OnFindXXX
OnBeforeLoad
OnLoading
OnAfterLoad
MSDN - C# 的には Before & After は使わないとかのルールが決められているけどどうなのよ
OnClicking
OnClicked
OnHogeFound
OnLoadStarting
OnLoadStarted
OnLoadFinished
ClkStrkEv
CikExtcnEv
GotHogeScatEv
TakeLoadngEv
EmitLoadngEv
WipeLoadngEv
>>35 おk
>>36 あまり略さない形式でお願いします!
パスカル・キャメルとかはどうでもいいかな
Leet並にわかりづらいな
>>31 まずどういうクラスのイベントなのかが分からないと話が始まらないと思うけど。
言語が何か知らないけど、普通はイベントといえどクラスのメンバというか、
クラスに属する何物かだよな。
>>31 1. onClick1
2. onClick3 (システムがそれを処理するイベントはonClick2)
3. hogeFound
4. loadReady
5. loadStarted
6. loadFinished
過去分詞とか使いたくないからonClickPreprocess かな・・なんか引っ掛かるが間違う奴はいないだろ。
奇妙なこだわり持つなよ。
どうせ大した根拠無いんだろうに。
馬鹿言え
不規則動詞の活用が覚えられないからに決まってるだろ
大した根拠じゃないじゃん
そんなに大マジで返されても困るわ
47 :
31:2011/08/10(水) 05:40:30.27
>>40 ・1番、2番
マウス関連のイベントを発生させる Mouse クラスが、自身に登録されている全てのリスナーに通知するイベント
1番のイベントはキャンセル用の出力パラメータを持ち、キャンセルされたのであれば、2番のイベントが発生しない
48 :
31:2011/08/10(水) 05:43:01.23
・3番、4番、5番
ファイルなどのバイナリストリームからツリー構造のデータを読み込むメソッド LoadDataTree() があり、このメソッドの呼び出し中にノードオブジェクトへ通知されるイベント
4番 : LoadDataTree() が現在のノードの読み込みを開始する時に現在のノードに通知するイベント
1番イベントと同じく、イベントを処理してキャンセルすることができ、キャンセルしたのであれば LoadDataTree() メソッドは即座に終了する
3番 : LoadDataTree() が現在のノードの子ノードを見つけたときに、現在のノードへ通知するイベント
Hoge == 子ノードだね
49 :
31:2011/08/10(水) 05:45:03.80
5番 : ネタとしていれてみただけだが、意味合いとしては1番イベントに対する2番イベントみたいなもの
6番 : LoadDataTree() が現在のノードの読み込みを終了した時に、現在のノードに通知するイベント
で、既出の案には何か不満でもあるのか?
51 :
31:2011/08/10(水) 19:17:04.53
36以外はまあまあ
>>31 分かってると思うけど、発生順序が違うだけの同じようなイベントを定義するのは
あんまり良いことじゃない。
どうしてもという場合は、イベントを発生させるクラスにとっての意味ではなく、
リスナー側にやって欲しい処理で命名した方が分かりやすいと思う。(本来邪道臭い気もするけどね)
順序が欲しくなるのは、イベントハンドラ内で利用される別のオブジェクトのデータが
先に更新されている必要がある場合が多いだろうから。
54 :
31:2011/08/12(金) 06:50:56.03
> 分かってると思うけど、発生順序が違うだけの同じようなイベントを定義するのは
> あんまり良いことじゃない。
複雑で分かりにくくなることであれば、そこはかとなく理解している
ただ、今まででそれが必要になったことがあるので尋ねた
イベントハンドラ名に「On」を付ける意見が多いな
言語によっても違うだろうけど、Onは付けるべき、付けないでもいい?
二文字でイベントっぽさが出るので個人的には好き
56 :
31:2011/08/15(月) 05:54:31.83
参考になった。ありがとう
HogeクラスとIHogeインターフェースがあります。Hogeクラスのインスタンスを
コンストラクタの引数に取り、IHogeインターフェースを実装したHogeAdapterクラスが既にあります。
その逆バージョンのクラスの名前をお願いします。
IHogeインターフェースをコンストラクタの引数にとり、Hogeクラスの派生クラスの
名前です。
>>57 いくら設計議論のスレでなくても、さすがにそれは根本的に考え方がおかしいといわざるを....
>>58 いや、考えようによっては、名前を決めるということは設計に他ならないともいえる。
だから、設計に口出すのも似たようなもんだとも思える。
57ですが、全然おかしくないと思いますが。
具体的にはStreamクラスがあります。基本は派生クラスのFileStreamやらでストリームを
扱います。ただ、WindowsのCOMに渡すとき、COMのIStreamインターフェースを
渡す必要があるのですが、そのために、既にStreamAdpaterクラスが用意されてます。
また、COMから返るのはIStreamインターフェースなのですが、通常のライブラリ
では、Streamクラスをベースに扱うようにできてるので、逆バージョンがほしいのです。
具体的に書くべきでした。すみません。
>>60 ではベタにComStreamAdapterとか。
まあこれでよければ質問しないかもしれんけどw
でも変に捻っても意味ないよねこういうのは。
アダプダーだと考えなければ、単にComStreamというのもあり?
>>62 StreamAdapterのまんまでIStreamAdapterぐらいしか思いついていませんでした。
ありがとうございます。
succやpredをよく見るのですが、これ何の略でしょうか?
前とか先とか関連だと思うのですが...
successor
predecessor
かな?
66 :
64:2011/08/20(土) 10:13:15.23
>>65 ありがとうございます。
なるほど。省略したくなるような綴りですね...
class C {
public:
void hoge(bool _isXXX){ // _isXXXはXXXであるか判定する処理を行うかのフラグ
if (_isXXX) isXXX();
...
}
private:
bool isXXX(){...} // XXXであるか判定する
}
ここではアンダーバーをつけて区別しましたが、isXXXの名前がかぶってしまいます。
引数の方のisXXXの命名がおかしい気はするのですが、なんて命名すればいいのでしょうか?
メソッドもおかしいよ
返り値使わずに捨ててるし
>>68 ああメソッドの呼び出しの部分は省略しすぎました。
XXXであるかの判定結果は利用してる物としてください。
べただが...
class C {
public:
void hoge(bool doCheckXXX){ // doCheckXXXはXXXであるか判定する処理を行うかのフラグ
if (doCheckXXX) isXXX();
...
}
private:
bool isXXX(){...} // XXXであるか判定する
}
・IBinaryReader インターフェイス
ストリームからデータを読み取る関数 long ReadLong(), bool ReadBytes(int size) などを持つ
シーク機能は持たない
が定義されているとして、このインターフェイスを使用する側に x バイト以上の読み取りを禁止させるアダプタークラスの名前を考えて欲しい
・Xxx クラス(またはインターフェイス): IBinaryReader インターフェイスから継承
void SetReadableBytes(int) 関数で読み取ることができるバイト数を設定することができる
設定されたバイト数を超える読み込みが発生したのであれば、その地点で例外なんたらかんたら
>>71 ニュアンスがちょっと違ってくるかもしれんが、
Blocked という単語を付けてはどうだろうか
たとえば、IBinaryReaderBlocked、IBlockedBinaryReader とか
>>71 その発想だと、IBinaryReaderを実装したXxxクラスをIBinaryReaderとして扱ったとき、
予期しない(チェック不能な)例外が発生しうることになる。
ちょっとおかしいのでは?
個人的にはIBinaryReader自体にストリームがサイズという概念を持つかどうかを
表すプロパティ(HasLengthとか?)を持たせた方が自然に感じる。
RestrictedBinaryReader
76 :
71:2011/08/22(月) 04:20:40.83
>>72 参考にさせて貰う
自分で考えたのは
IBinaryZoneReader、IBinaryPartReader
こんな感じ
>>73 サイズという概念を持たないものが IBinaryReader だとして、サイズを持つものはどういう名前にするべき?
アダプタークラスなんて書いたのが混乱の元になっているのかもしれない
IBinaryReader 自体はソースストリームからのバイナリ形式の読み取りを行うためのインターフェイス
Xxx も基本概念は同じだけど、読み取り可能バイト数(ReadableBytes)という概念を持つ
ReadableBytes = ソースストリームのサイズ(または残りのバイト数)とは限らない
77 :
71:2011/08/22(月) 04:34:33.18
void hoge(HogeTarget pTarget, IBinaryReader reader)
Xxx newReader(reader, 3) // 3 = 読み取り可能バイト数
pTarget->onRead(newReader);
newReader->skip(newReader->getReadableSize()); // skip(x) = x バイトを読み捨てる
}
bool HogeTarget::onRead(Xxx reader) {
if (reader->getReadableSize() < 4) {
return false;
} else {
this.value = reader->readLong();
}
}
c++とかjavaに似せたコードで書くとこんな感じ?
そのクラスの使い道は具体的に何?
アクセス自体が可能かどうかチェックしたいとか?
それかヘッダ(3バイト・・だと)を高速に読み出したいとか。
80 :
67:2011/08/22(月) 10:16:00.74
81 :
71:2011/08/22(月) 12:09:47.92
>>78 HogeTargetにXxxを引数として受け取るセッタを持たせたい
>>77ではonRead(Xxx)になっているが、SetValue(Xxx)に置き換えてくれ
同様に、クラス名もHogeTargetからLongTargetに置き換えてくれ
また、IBinaryReader派生物はソースストリームのシークをサポートしない
で、そのクラスの使い道は具体的に何?
83 :
71:2011/08/22(月) 13:55:14.88
死ねゴミ
この時期はどこのスレも荒れるな
はーまじはー
既にあるもの(ファイルやメモリ)を元にインスタンス作る関数なんですが
CreateかLoadにするか迷ってます
CreateしてからLoad、もしくはCreateの内部処理でLoadがあるイメージ
deserializeも検討
staticならFromStreamかな
CreateHogeFromZipFile
どうも
必ず第一引数でインスタンスを指すポインタを受け取る関数を集めたクラス
なんて言えばいいか、非侵入型のメンバ関数を集めたクラス?
class xxx // ←これ
{
const std::wstring & GetName(void * pTarget) const;
void Print(void * pTarget, const std::wstring & s);
int Hoge(void * pTarget, int foo, int bar);
};
int data;
xxx xxxInstance;
int dataHoge = xxxInstance(&data, 2, 3);
>>92 いまいち掴めないんだが、xxxのインスタンスはターゲットを使って自己の内部状態を更新するの?
あーごめん、記述ミスってるな
誤: int dataHoge = xxxInstance(&data, 2, 3);
誤: int dataHoge = xxxInstance.Hoge(&data, 2, 3);
>>93 xxx クラスのメンバ関数の記述次第だが、
xxxInstance はメンバ関数を呼び出した際に、仮引数 pTarget が示す先を更新する可能性がある
xxxInstance はメンバ関数を呼び出した際に、xxxInstance 自身(this)を更新する可能性がある
>>94 う〜む、それはやはりコード中での役割で名付けるべきなんじゃないかなあと思う
集めたから、ってだけでは名付けにくいな
役割といわれるとなんとも説明し難い
以下2つの記述は同じ動作を意味している感じ
class Foo
{
const std::wstring & GetName() const;
void Print(const std::wstring & s);
int Hoge(int foo, int bar);
...
};
Foo foo;
foo.Print("てst");
// -----
class xxx
{
const std::wstring & GetName(const Foo * pTarget) const;
void Print(const Foo * pTarget, const std::wstring & s);
int Hoge(const Foo * pTarget, int foo, int bar);
...
};
xxx xxxInstance;
Foo foo;
xxxInstance.Print(&foo, "てst");
C#の拡張メソッド的なノリ?
TargetHelperとかTargetExtenderみたいな感じだろうか
98 :
92:2011/09/15(木) 01:32:42.52
なるほど、確かにそれに酷似しているな>>拡張メソッド
上記の場合、FooExtenderとか、Foo追加する機能Extenderがいいかもな
ありがとう。とりあえずその線で命名してみる
引数で指定のレコードを更新したユーザーのIDの一覧を取得するみたいな
そんな名前のメソッドをお願いします。
GetUserIDs(ARecordID)
みたいな。
更新したのニュアンスの英語をどこにつければいいでしょうか。お願いします。
GetUserIDsUpdatedRecord
英文の中なら UserIDs と Updated の間に which を入れる
なんじゃそりゃ
お気に召しませんか
はい
find_editors_by_record_id(record_id)
でいいだろ
GetUserIdsWhichUpdatedThisRecord(recordId)
>>99です。返事後れました。
やっぱ、しっくりくるものなさげですね。
>>100みたいな感じにします。
whoを使う選択肢はないの?
ないよ
ないね
説明的な名前のメソッドは、ウンコにかける消臭剤のようなもの。
関係代名詞は使いたくないですね。
GetUpdatedByUserIDs(RecordID)ってのも名前に使うときはありなんですかね。
ググってたらそんな感じのがありましたんで。
絶望的に英語ができない
GetUpdaters
>>99 よくわからんが、GetModifiersとかGetUpdatersみたいな感じ?
>>110 むしろウンココード量産するタイプの奴はたいてい君のように嘯く
GetUpdatedByUserIDs
↓
プログラマ脳による翻訳: ユーザーIDによって更新された"それ"を取得する
現実: ユーザーIDで更新されてください。
>>116 こういう場合、どういうセンスが求められているの?
OSとのリソースのやり取りをラップして一括管理するクラスってどんな名前がいいかな?
○○マネージャーは駄目だっていうけどこの場合マネージャーしか思い浮かばない
BinwanProducer でどう?
>>120 実際に確保解放するのをマネージャに任せて
他のリソースが必要なクラスはこのマネージャを仲介して貰う
マネージャは参照数などを管理したり別スレッドで実際の確保解放を行ったりする
~ManagementService
実質何も解決しないけど
HogeManager
└ Hoge
じゃなくて
Hoge
└ HogeDevice
みたいに、マネージャの方をシンプルな名前にするのは?
>>121 そのマネージャを利用する側のクラスの立場に立てば、
そのマネージャはリソースを持っているかのように見えるわけだ
実際に参照数を管理してるのかどうかは、利用する側にとってはどうでもいい話
もしかしたら実際には参照数以外の別の何かを管理して上手くやっているのかも知れん
スレッドが作られるかどうかも、利用する側には関係ないことなんだろ?
つまり、リソースが必要ならがそのマネージャが持っている事が分かりさえすれば良い
というわけで、単に Resource クラスでいいような気がするが、どうだろう
Resource クラスが別にあって、それを束ねているのなら ResourcePool とか
SystemResource と SystemResourceManager
お前ら質問を変えようと必死だなw
そのまま答えろよw
ResourceLoader
質問者には悪いけど、なんか意味不明っていうか....
GCない言語でGCみたいな働きをするクラスが欲しいのかも知れんけど、
ちょっと無理があるんじゃないかと。
参照数を管理する、なんて簡単に言うけどどうやってやるんだろう....
利用者が明示的にマネージャのメソッドを呼ぶんだろ
集中管理する意味は知らないけど別にできなくはない
>>129 そうやって、リリース側を呼び忘れるとw
不穏な設計に付き合わされる日々が待っている、と。
「変換された情報」という意味が分かるように変数名をつけたいです
そのまま英語にしますと
transformedInfomation
translatedInformation
convertedInformation
という辺りが妥当ですが、さすがにちょっと長いです
なので省略したいのですが、後半の Information は Info に略せるとして、
前半は
transed
conved
などとしても、海外の方たちもちゅんと意図をくんでくれるでしょうか
>>131 その変数が100箇所に登場するとかでなければ、変に略す必用ないでしょ。
略すにしても暗号みたいのは却下。
ただでさえ他人の書いたコードなんて暗号なのに、そんな下らない謎解きまでさせるのは勘弁して欲しい。
略すならInformationを丸ごと削る方向で。
translatedとかmodifiedとか。
もちろんこれはローカルのみ可
俺ならtranslatedだな。
>>132 > そんな下らない謎解き
つまり、transed や conved などは一般的ではない謎解きレベルということですね
参考になりました
translated にします
EncodedInfo
どんな変換をしたかが重要だろ
例えば圧縮変換ならcompressedにすればtranslatedやencodedより明確になる
>>136 なるほど、確かにその通りです
ただ、今回の質問の趣旨は
プログラミングの世界で transed や conved が一般的かどうか、というもので、
それを訊く為に仮想的な状況を作って質問しました
素直に最初から 「transed や conved は一般的か」 とだけ質問すべきでした
すいませんでした
デバック用にクラスの内容を(そのクラスの内容が見えるように)ストリームに出力する関数の名前ってDumpでいい?
Rubyとかだと文字列を返すinspectってメソッドがあるな。
141 :
デフォルトの名無しさん:2011/10/18(火) 22:02:21.78
ログインフォームは英語でそのままですが、登録フォームは英語で何て言うんですか?
ユーザ登録時とかのフォームです
Entry Form、SignUp Form、Register Fromとか考えたんですが・・・
registration form
EntrySheet
@ entry form: 入力フォーム
A registration form: 登録フォーム
どちらも同じ用途に使われるけど、「登録フォーム」を問われているんだからAだろうね
前に自分が書いたソースを見直したら、RegFormだった(´・ω・`)
>145 RegistFormよりははるかにマシ
RenForよりまし
レンフォー大臣
それさいあく
チェック済みのフォームデータを表す変数名を教えてください
チェッキンファッキンフォーム
CheckedFormData じゃあかんのか
validFormDataだろ
チェックマーク記入済みっていう意味かもしれないぞw
フォームから入力されたデータで、誰かのチェックが通ったもの、だよね?
チェックはしたけど正しいかどうかは保証されてないデータかもしれない
validに一票
CheckedFormData: チェック済みフォームデータ
ConfirmedFormData: 確認済みフォームデータ
ValidFormData: 有効であるフォームデータ
・タイプとパラメーターのセットであるメッセージクラス
・メッセージを受け取り解釈し何らかの動作をするハンドラクラス
・メッセージのタイプを調べそのタイプのメッセージを要求しているハンドラすべてにメッセージをコピーして渡す?クラス
?クラスの名前はメッセージマネージャ以外ではなにが適切ですか?
メッセージディスパッチャ
Dispatcherとか?
SwitchingHub
message distributor
165 :
デフォルトの名無しさん:2011/10/25(火) 12:52:19.86
次へ、と前へ、で next, prev としてるんですが、
これらを総称した場合の呼び方って何でしょうか?
連環でいいんじゃないかな
167 :
デフォルトの名無しさん:2011/10/25(火) 13:10:21.59
この日本語初めて聞きました。
調べたんですが、英語だと linkage であってます?
Navigatorってのも見たことがある
link
【名詞】【可算名詞】
1
a(鎖の)環(かん), 輪.
b(編み物の)目.
c[通例複数形で] カフスボタン 《★【比較】 「カフスボタン」は和製英語》.
2 (鎖状につながれたソーセージの)一節.
3 結びつけるもの[人]; 連結,きずな,関連 〔with,between〕.
十分じゃねw
区切りが分かるように特例を設けますか?
ルールを徹底して一貫性を貫きますか?
@メッセージサービス サービスクラス
Aサービスメッセージ サービスクラス
後ろが必ず サービス って付きます。
僕はツール作成の容易さを考慮したくて
読みやすさを犠牲にしました。
みんなの意見が聞きたい
区切りがわからない事態が発生していないのでルール通り
まずツールってどういう奴よ
>>172 ○○△△サービスクラスってあったら○○と△△が必ず「辞書」みたいなライブラリに存在する
メッセージ+サービス=メッセージングサービスとか造語作る人もいるけど
面倒なのでメッセージは修飾語も主語もメッセージで統一したい
サービスも同じ要領
ツールは設計書に記載してあるクラス名からソースを自動生成するもの
いろんなドキュメントにクラス名やその情報が記載されてある
"似て非なるもの"は厄介
よくわからん・・・
日本語で書かれてるはずなのに何を言いたいかがちんぷんかんぷんだ
ひょっとしたら寝たら頭スッキリしてわかるかも、と思ったけど無理だた
まあ、難しいプロジェクトにいるって事ですw
縁のない人はスルーしてw
外人?
難しいプロジェクトだからどうこうのレベルじゃない。
説明が下手すぎるって言ってるんだ。
2ちゃんにアドバイスを求めてくる難しいプロジェクト(笑)
クソみたな命名規約があるってことだろ
AXService
BYMessage
CZMessageService
(A,B,C:修飾語、X,Y,Z:主語)
てことか?
区切りって何よ?特例って君の裁量で設けていいもんなの?
ルールがあるなら基本それ守れよ。
「辞書」みたいなライブラリって何よ?
複数のドキュメントからソース生成すんの?
どこからツッコんで良いかわからんようになった
もっぺん最初から頭ん中整理しなおしてから質問に来てくれ
「クラス名」を指定することで、そのクラスと、それに関連するソースコードを自動生成するプログラムを作成しています。
例えば「HogeMessenger」と指定すると、HogeMessengerServiceクラスと、それに関係するソースコードが自動生成されます。
この指定するクラス名について悩んでいます。
仕様上、クラス名のサフィックスとして「Service」を付けることになっていますが、
指定するクラス名が「MessageService」だとすると、実際のクラス名は「MessageServiceService」になってしまい、格好が悪い
同様に、「ServiceMessage」→「ServiceMessageService」になってしまい、二度同じ単語が出てきて格好が悪い
「指定するクラス名の最後が「Service」であれば、実際に作成されるクラスのクラス名のサフィックスに「Service」を付けない」
等の特例を設けるべきでしょうか、それとも設ける必要はありませんか?
自分は特例を設けない方向で考えていますが、みなさんはどうしますか?
という質問なのかな?
目から香川県が落ちるくらい分かりやすい
自分なら自動生成される名前にかっこよさは求めない。
ただ、人間が指定する部分と自動的につけられた部分が区別つくようにすると思う。
MessageService → MessageService_Service
ServiceMessage → ServiceMessage_Service
とか。
その辺り、C# なら名前はユーザーに自由に決めさせて(他と被ったらユーザーの責任)、
属性で区別するけどな
まあServiceなんつう業務仕様にも現れそうな一般的単語を
自動生成やらコーディング規約やらに含めるのが間違いなんだろうな
最近のレスだと
>>187だけに同意。
間違えてる時って、わりと最初のほうから間違えてるから、
最後のほうになって悪あがきしたところでもう詰んでる。
自動的に何でもかんでもServiceを付けるようにした事に何のメリットがあるの?
ファイル検索するときに*Serviceで容易に拾えるじゃん
他にも沢山ファイルがあるとしてだが
俺ならそんなありがちな単語でなくて、もっとかぶりそうにない文字列を選ぶけどね・・・
SrvとかServとかSvとかか?
その造語を誰が伝えてどうやって広める?
>>192 造語じゃなくてそのシステム固有のプレフィックスみたいな決め事だよ。
生成された名前には問答無用でそれをくっ付けるんだよ。
ネームスペースを使えない(使わない)ような環境では普通だろ。
例えば yacc が吐くコード中のシンボルの yy みたいなのね。
頭の良いソリューションに出会ったためしがない
simulationはシミュレーションでもシュミレーションでも気にならないが、
solutionをソリューションと発音されると気になって仕方がない。
頭悪い奴御用達の渡辺美里の例の歌も気になってしょうがなかったな。
スルーシュンだよな
もういいよ
むしろ趣味レーションは気にしろよw
スィサイドスルーシュン!
プレフィックスって見辛くて仕方ないからサフィックスにしてほしい
うむアクセス演算子の記述も逆順を許容できるようにすべきだよな
アンダーバーのプレフィクスを使うと総合開発環境の入力候補でprivateメンバを後ろに追いやる事ができるのが便利なんだよ
>>205 現状それしか方法がない、仕方がないとは言え、
やはり解決方法としてはダサいの一言に尽きますなぁ
入力候補の並び替え機能は何で付けないんだろ
privateメンバを後ろに追いやりたいという動機そのものが理解できないけどね俺は。
privateとかpublicを判断してソートしてくれりゃいいのにね
intelliなんだから
むしろ、そんな必要性を感じるのなら、きっとコードの書き方が間違ってるんだよ。
>>209 一覧の表示方法とコードの書き方にどのような繋がりがあるのか、
もっとしっかりちゃっかりまったり説明してくれ
当たり前のことだが、アクセスレベルとはクラスの外側からのメンバーの見え方を制御するもの。
つまり視点をクラスの内部に置いている時(そのクラスを書いている時)には
呼び出そうとしているメソッドのアクセスレベルなんか気にしても意味ない。
っていうか、メソッド一覧がアクセスレベルで分類なんかされたら
かえってありがた迷惑でしかない。
>>211 外からアクセスしねーのに一覧に表示されたら邪魔だろ
そんな簡単なことも分かんねーのかモンキー
intelliって言ってるからMSのVSの事を言ってるんだと思うが、
元々MSのインテリセンスは現在のコンテキストから見えるメンバしか表示されませんよ。
何意味不明なこと言ってるんだろうね。
などと意味不明の供述をしており動機は未だ不明
(え、protected/privateでも表示されるよな・・・)
217 :
デフォルトの名無しさん:2011/10/29(土) 22:53:50.02
213っておかしなこと言っているか?
その通りだと思ったが
protected/privateが現在のコンテキストから見えれば表示される
C#は出ないけどVC++はコンテキスト関係なく全部表示されなかったか
変数名にクラス名サフィックス付いてるのよく見るけど良いのか悪いのか分からない
熟語になるし一目で型は分かるけど補完に使えない
↑アホ
贔屓どころかC++のインテリセンスの方が普通に考えてコストかかってるだろう
C#のように完璧は無理だから間違って出るはずのものが出ないよりは全部出たほうがマシって判断なんじゃね
いいから黙ってろザコ供
何か処理する前と後に呼び出されるコールバック関数があるんだけど
Hoge(preHoge , ???Hoge);
???って何が入るの?
preの反対はpost
はい次の患者さんどうぞ
callableかな
HogeHeader
HogeFooter
・・・最高にダサいな
ディスパッチャーとコントローラーってどう違うの・・・?
何もかも違うだろう
何が同じだと思ったんだ
ディスパッチャーは何かを適切なところへ送り届ける役目。
コントローラーは何かを管理・制御する役目。
むしろコントローラーといったらディスパッチされる側になることが多いんじゃないか
>>231 ありがとう
ということは今までコントローラーとつけてたのはディスパッチャーに
マネージャーとつけてたのはコントローラーにしないとなあ
コントローラーは入力を適切な形に変換して対象のオブジェクトに届けるんだよ
例として、2Dのシューティングゲームを想像してほしいのだけれど、
自機、敵、弾丸、アイテムなど、プレイ中に出現する「動くもの」全般の基底クラスの名前をお願いしたい。
これらは、自身の座標、移動量、生存フラグ、出現してからの時間といった変数の他、
自身の更新メソッド&描画メソッドなどを持っている。
class MovableEntity : public GameEntity ;
class DynamicEntiry : public GameEntity ;
class Hoge
{
public:
SomeResourceHandle Get(void) { return hRes ; }
private:
SomeResourceHandle hRes ;
};
リソースの所有権がHogeにあって、Getで取得した生ハンドルを外部で保持するのはまずい
ということを利用者にわかりやすく伝えるメソッド名はなにがよいか
>>237 こんな答えは望んじゃいないだろうが、俺なら外に出さなくてすむようにする。
そしたら、少なくともそういう難しいメソッド名(や、使いにくいルールの押し付け)で悩まなくてすむ。
>>237 俺なら、そういう「適切な利用方法」に関する情報は名前には入れない
名前には「それは何か」という情報だけを入れる
外部で保持されてはまずい生ハンドルがどうしてGetで取得できちゃうの?
そういう情報はコメントで書くもんだ
DangerousGetHandle()
>>236 ありがとう MovableEntityにしてみる
>>237 .NETだと下層のAPIをラップしたものなど、動作に関して使用者が責任を
持つ必要がある安全でない型やメンバーはUnsafeプレフィックスが付く
この例だと、UnsafeGetHandle()かUnsafeHandle()あたり
後はドキュメントに取得したハンドルの有効期限などを記述すれば良い
.NETだとほんとにヤバいのはDangerous
.NETにある機能の名前ってよく質問に出るね
これくらいググれないものなのかね
機能から名前って、意外にググるの難しいだろ
余計なものがいっぱい混ざってるし
だから、逆引き辞典の需要があるわけだし
そうかな
まあ俺が上手いだけか
そうだよ
だからコツを教えてあげなよ
247 さんかっこいー
getAllXXX
のXXXは単数形?複数形?
複数
それは、中学英語の範疇ではないのか
単数にしてる人多いんだよね
英語的にはallの場合は可算名詞であっても単数になる場合があったと思ったけどね。
プログラムでは常に複数形にするのが無難だとは思うけど
あれ、念のため確認してみたら、all+可算名詞の場合は常に複数形が正しいみたいだな。
ただ可算名詞であっても、同じ名詞が抽象名詞として使われる場合単数形になる、
ということはあるみたいで、それとごっちゃになって覚えていたのかな。
複数が前提だけどひとつしか値が返らない場合はどうするんですか?
別に複数形にしなくたってわかるから1byte節約して書かないほうがマシ
自分の場合、配列など複数の要素を持つ変数は複数形で名付けてる。
そのルールに従うと、今回のメソッドも複数形になる。
が、そもそも自分はAllを省いて getXXXs() で良いと思う派。
ああ、確かに何か特別な理由でもない限りAllなんて付けないのが普通だな。
複数形にするだけだとデータ構造が見えないから困る
そういうものはコメントやドキュメントに書けばいい
ドキュメント読む手間をなるべく少なくするような命名を模索してんだろ
なんでもドキュメント読めばいいで終わらせてたら名前なんていらんわ
データ構造は型情報って気もするなあ。
下手するとシステムハンガリアン() と言われかねないし。
〜sって「抽象的なコンテナ型である」って意味のハンガリアンみたいなもんだろ
「〜のよくわからない集合」って書くのと「〜のリスト」「〜のスタック」
と書くのどっちがましかという話
まともな神経をしてれば後者を選ぶだろう
コンテナの抽象化はパフォーマンスに直結する悪手だよ
名前に情報を詰め込むには限度がある
「〜の集合」てのが最も重要でこれが基本
データ構造を付け足すかどうかはオプション
データ構造ってリストやスタックみたいな簡単なものばかりじゃないしなぁ
OOPで考えるとデータ構造はModelクラスとして扱えば十分だからなぁ。
下位の、より小さなコンテナの変数を、getterで外に出すような展開もべつに無いし。
パフォーマンス気にするならなおさらドキュメント類は読むべきだな
名前だけで判断しようとしてるからコケる
hogesってところまでしかわかっていない場合は
例えば検索するときにどのアルゴリズムを選択するかとかが判断しにくくなる
出社してそれほど時間が経過していなくて頭がすっきりしていて型が完全に頭に入った状況でのコーディングならhogesで問題はないが
何時間もディスプレイやキーボードと格闘して疲労の溜まったPGが5分前の記憶を覚えてるとは限らない
そのたびにhogesってどんな集合だっけとプロトタイプを確認する作業が追加される
さいしょからsortedHogeVectorと名前がついてれば3日徹夜した後であろうとも直ちにランダムアクセス可能、二分探索が有効とわかる
SortedVector hoges;
でおk
変数の型を忘れるほど「遠くに」書いてしまうようでは、
変数名を工夫したところで負担の小さいコードにはならない。
272 :
271:2011/11/04(金) 10:56:53.26
動的型言語だったらどうするの?
パフォーマンス気にして動的型付けねぇ
へぇ
変数名に実装方法を現すような単語まで入れちゃうと、
やっぱ遅いから同じインターフェイスのあっちの実装にとかなったら、
変数名ぜんぶ変えなきゃいけなくなっちゃう。
表す
>>275 同意
>>269 なんか、パフォーマンス考えたら配列から
ツリー構造(順序付きキュー)に変わる可能性も大いにある
そうなったら、
何時間もディスプレイやキーボードと格闘して疲労の溜まったPGが
sortedHogeVector を全部変えるんだぞ
まぁ、普通そういう探索アルゴリズムとかは、
コンテナを利用する側ではなく提供する側が実装すべきだけどな
まさに実装方法に依存するんだし
フルボッコわろた
コンテナ代わったらメソッドも変わるから書き換え作業しなきゃならないのは同じだろ
ぶっちゃけ名前が原因で問題が出るぐらいにあちこちで変数に直接触ってる時点で負けと気がつくべきだろうね
メンバ関数やインラインのヘルパ関数を適切に使っていれば変数名なんて長くても三文字(気をきかせるなら一行コメント)もあれば十分と気がつくよ
さらにアホが寄ってきた
いや言ってることは正しいだろ。3文字で十分はネーヨって思うけど
昔のベーシックは2文字だったよな
あ、識別子として区別されるのが頭2文字で、
変数名自体は何文字でも良かったか
たしかスコープも配列初期化も無かったろ
>>269 お前はメモ帳でコーディングしてんのか?
ったりメーだろバカ
λが有るとまじで変数名いらないな
289 :
デフォルトの名無しさん:2011/11/10(木) 17:19:22.13
商品が表示されるページが店舗別か全体表示かのフラグの名前で悩んでます。
isStore にしてるんですが、何か違う気がしてます。
〜別、という場合はどんな名前が良いでしょうか?
>>289 〜別だとpartとかsectionとかsegmentとか
どれもフラグっぽくないな
store_sectionとかするとcobolっぽくなるな
isStoreLocalView
もうcatalogDisplayModeにしとけば?
データベースだと、group by store とかになりそうだし、そこからヒントに出来ないものか
294 :
デフォルトの名無しさん:2011/11/10(木) 22:21:25.52
店舗別に表示するかどうか
SetShowsByStore(value : bool) : void { showsByStore = value; }
ShowsByStore() : bool { return showsByStore; }
なにそのデタラメ
至るところで細かく
if( isStore ){
〜
}
とかやってると思うとゾワッと来た
主語がねえ
言語は?Java?
isHogeは疑問文じゃなくて Object is hoge だって主張を何処かで見た気がするんだけど、
これってOOの場合のみなんだろうか
Cでもisdigitとかあるじゃん
hoge is Valid object.
↓
hoge.isValidObject();
↓
hoge.isValid();
>300は>297に対し?
直前のレスに対してだろ・・・
>>303 is〜の形式が、疑問文かどうかという問いに一切触れてなくね?
XXX.isYYYとかisYYY(XXX)は疑問文じゃないよ
「XXXはYYYである」
という命題の真偽を返り値として返すということ
だって疑問文だとnotしたときにおかしくなるだろ?
>>305 でも、「bool変数やboolを返す関数は、疑問形で命名してね」
ってガイドラインはちらほらあるのが現実なんだよね(´・ω・`)
ところで、notしたときってのは !isHoge がおかしいってこと?
まさか isNotHoge じゃないよね?
?が入れられない時点でくだらない話題だ
isXXXは引数の値が単数のときだよね
配列とか渡してそこからXXXの場合だったらhasXXX?
Isn't object valid ?
に対して
有効ならyes
そうでないならno
直感的にはyesはtrue、noはfalseだ
if(!obj.isValid()) { homuhomu(obj); }
と書いた時に、!obj.isValid()を否定疑問文(つまりIsn't obj valid ?)であるとすると
英語圏の人間はobjが有効(yes)ならhomuhomu(obj)すると認識してしまう
ところが!obj.isValid()をたんなる否定命題(Obj isn't valid.)で返り値がその真偽であるとすれば直感との齟齬は生じない
英語圏の人間でもobjが無効の場合にhomuhomu(obj)するのだと直ちに理解できる
310 :
300:2011/11/12(土) 11:30:54.14
>>309 ああ、そういうことか。
確かにそうだな。
で、何故HogeじゃなくHomuになってるか釈明を。
一連すべてちょっと何を言っているかわからない
ではお引き取りを
>>313 中学英語をやり直せば理解は深まると思います
やり直せるとは限らん
やり直すためには既に一度はやっている必要がある
それは大変失礼なことを言いました
今後慎みます
>>309 一瞬なるほど、と思ったがちょっと違う気もするね。
確かにtrueにyes、falseにnoが対応していると考えるとそういう論理が成り立つけど、
trueにright、falseにwrongが対応していると考えると話は変わってくる。
英語圏だとnoがnot、yesはnot以外、以上の意味はないだろ・・
He is not a dirty old man, is he ?
You are wrong.
Yes, he is ( a dirty old man).
if文は普通にブール代数で考えるけど.
そんな文学的な解釈をしているやつがいるのか.
>>309 センスないやつがよくこういう余計な事考えるんだな
>>321 既存の知識だけで納得しようとして陥る罠だな
まあこのへんは英語できない子が足切りされるポイントだからわからない人がいても不思議ではないよ
まさか!?って思うけど本気でわからない子いるからね
ネイティブがどう感じるかまでは、なかなか分からんよなあ…
いや、言語仕様的にブール代数なわけだから
NOT(obj.isValid())
ってだけだろ
プログラミングを知らない英語圏の人ならどう読むか分からないが
知らない時点でどうせ読めないのでどうでもいいだろ
アホカ
結論
命名は適当でよい
ドキュメントを読まないバカはいないし
ドキュメントを読めば名前などオマケにすぎないからである
名前に悩んで生産性減らすバカは死ね
悩むことがなく適当(適切という意味で)な命名ができるようになれれば、それがベスト
開発してる時は、自分(チーム)の中だけで最も分かりやすい名前を付けとけば良い
開発が終わったら「すぐに」、後の人間や英語圏の人間にも分かるように、
メンテナンス担当の人間が全ての名前を適切に置換しておく
ついでに、変更しまくった仕様もちゃんとドキュメントにまとめておく
コードの錬金術師は日常会話に擬態した暗号でコードを書くのでまるで自然言語の文書を読んでいるように感じる
>>331 そこまでのコードはまだ見たことがないなぁ
例えばどんなの?
日本語プログラミング言語「なでしこ」のことだろ
>>333 それは違うだろ
「コードの錬金術師」や「日常会話に擬態した暗号」との絡みが全くない
一般的に錬金術師は金でないものを金にする人のことなんだから、
もともと自然言語の文書とはほど遠い文法やキーワードを持つ言語を使って、
自然言語の文書であるかのようなコードを書く人を「コードの錬金術師」と喩えているのだろう
それがどの言語のどのコードのことか、誰のことを言っているのか全く分からん
>コードの錬金術師
>一般的に錬金術師は金でないものを金にする人のことなんだから、
>331の造語か、英語の和訳なのかで全く意味が変わってくるなw
単にコードの可読性は書き手によって大きく違うという、当たり前の事実を
言ってるだけだと思うよw
ノストラダムスの解読じゃあるまいし、錬金術師という言葉の本来の意味なんか
ほじくり返しても意味ないでしょw
彦麻呂のフレーズみたいなもんで、そこまでの含意なんかないと思うよ。
単にその能力の非凡さ(可読的なコードを書ける人は意外と少ない)を表現してるだけでしょ。
しかし、「まるで自然言語の文書を読んでいるように」というのは、
いくら何でも言い過ぎではないか?
もしそんなコードが書けるのなら、
そのテクニックや考え方などを是非教えてほしい
外人的な過剰な表現だろ
340 :
デフォルトの名無しさん:2011/11/13(日) 14:31:05.48
C#で、全面的にStrategy・Flyweightパターンなロジックで組んでいるのですが、
「俺はもう何もしない。もし俺が取り憑いていたら再利用poolに放りこんでくれ」クラスと
「俺はもう何もしない……が、まだ占有しているので再利用しないでくれ」クラスを
明確に分けたいのですが、なんか気の利いた名前が出てきませんし、
どうしても名称が長くなってしまいます。
適度に短く、ある程度のプログラマなら名前で
意図を理解できるようなクラス名を教えてください。
>>339 >>332,334,337 は私なんだけど、なんで勝手にそう決めつけるの
>>335 じゃあ「コードの錬金術師」という表現は無かったことにするにしても、
「日常会話に擬態した暗号」というコードは私は見たことがないのですが貴方はありますか?
擬態と言うからには、そのコードの本来の意味が一般には分からないことを意味する
本来の意味が容易に分かってしまっては擬態ではない
ここでいう本来の意味というのは、そのコードが実現する処理、つまり意味論
擬態によって一般人が目にするのは
>>331 によれば自然言語の文書
そして、その自然言語の文書から本来のコードの意味論は容易には悟られないし、
全く意味の違う自然言語の文書としては普通に読める
そのようなコードを一体誰が何の目的で書くのでしょうか
そのようなコードはメンテナンスするには全く役に立たない
また、C#やJavaなどのコードの暗号化としてもオーバースペックだし、
そういう暗号化は普通は人間ではなくコンピュータが行う
というようなとっても不思議なコードなのだが、
>>331 にはぜひ例文を見せてほい
>>340 reusable、および nonreusable はどうでしょう
>>340 それって利用者側にpoolに返すかどうかを処理させるの?
名前を考える前に設計を見なおさないとだめなパターンだな
>>344 全国や世界中(こちらは少ないですが)にいますよ
大人になってからは増える一方で減らしたことも無いですし
どこまで突っ込んで説明を求めるか、議論するかは、
時と場合と相手によってちゃんと変えてます
ここのような落ち着いて、文章で書かれた相手の言い分をじっくりと読んで、
それについて深く議論できる場では、それ相応に深く突っ込みます
当然、私の言い分にも深く突っ込んでほしいです
迷惑でしたでしょうか
>>345 はい迷惑です
あなたのお友達もそう思っているでしょう
347 :
デフォルトの名無しさん:2011/11/13(日) 14:54:57.75
本人が潜伏して火消しですか?w
349 :
デフォルトの名無しさん:2011/11/13(日) 15:12:01.62
>>331 とっても不思議なコードの例文をぜひ見せてほしい
350 :
335:2011/11/13(日) 15:26:54.61
知らんがなw
俺が述べたのは、「錬金術師」という表現の妙についてだけだぜ?
暇人ばっかりやなここ
日常会話に擬態した、自然言語の文書を読んでいるように感じる暗号に【興味があります。】
「まるで自然言語の文書を読んでいるように感じるほどの日常会話に擬態した暗号で書かれたコード」マダー?
マジキチっぽいなこいつ
>>354 日本国内のテレビ・マスコミのプロパガンダによってあなたの脳味噌は既にマインド・ブラストされているようななのでちゃんと指摘して差し上げますが、
そのような長文を投稿する瞬間、日本の旧儒教的価値観ともいえる「助けてあげる」という考え自体がもう既に「あなたの傲慢の具現化である」と思いませんでしたか?
>>358 私自身も表現的にどうかと思ったのですが、
「助けてあげる」というのは言葉のあやでした、ごめんなさい
また旧儒教的価値観というのは全く知りませんでした、調べてみます
言い直します
>>340 の質問に対して、何か案を提示しようという考えは無いのでしょうか
>>331 と私の
>>332 のやりとりに内容的に何ら関わらず、
かといって
>>340 の質問にも何ら案を提示しないここ一連のレスというのは、
ほとんど意味が無いものだと思うのですが
どうせネタをやるのならせめて面白い奴を頼む。
っていうか、そもそも面白くもないネタって語義矛盾
ゴガギーン
ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!出てこい
>>331 「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
>>362 こういう幼稚臭いマンガ脳が一番最悪。
本当、こういう奴って13歳で精神年齢の成長止まってるんじゃないのか
364 :
331:2011/11/13(日) 16:20:47.33
お前らのアホさ加減には恐れ入る
レスを読み返したらやり取りが小学生そのものだったぞ
>>360 電力業界の隠蔽沙汰やオリンパスの隠蔽不祥事による会社所有者への背徳のように、経営者や日本公務員は自分の私腹を肥やすばかりで、
またオキュパイ・ヲールストリート・ムーブメントに象徴されるアメリカの(報道されず)数値上隠蔽された貧困現象と同じように日本の貧富各差は広がる一方で、
日本の貧困階層に目をむければ2011年現在ではなんと日本人の80%は年収300万円以下です。
そんな日本世紀末の世であるにも係わらず、あなたの道徳とあなた以外の人がもつ道徳が同じだといえる根拠はどこにあるんですか?
>>365 道徳を持ち出すような大それた事ではなくて、
単純に
>>359 などのレスをするくらいなら、
>>340 に何か案を出した方が建設的じゃないかと思ったのですが、
>>359 のようなレスをする事の方がこのスレには良いという考えも、
もちろんあるのでしょう
そんなものは無いという根拠は持ち合わせていません
また、私の道徳と私以外の人が持つ道徳が同じだと言える根拠も無いです
根底に似たような所が少なからずあるのではと期待してるだけです
そのような投稿をする瞬間、「助けてあげられる」という期待自体が既に「あなたの傲慢の具現化である」と思いませんでしたか?
いいから失せろゴミ
自分は14歳でとまってる。
>>370 ですけど、すいません、
「助けてあげられる」という文を読み違えてレスしてしまいました
改めてレスします
>>367 私は「助けてあげられる」というほどの気はないです
助けにならないかも知れないし、助けになる自身は残念ながらあまり無いです
助けになれば、議論の役に立てば幸いと思います
貴方はどうでしょうか
思いません
はい、さようなら
ID表示が待たれるな
それは困る。
せっかく自演でストレス発散できる板なのに。
10進数⇔64進数の簡単なプログラム書いてるのだけど、64進数って英語で何ていうの?
radix 64
base 64
>>378 Base64やRadix-64ではなくて、
単に10進数と64進数を相互変換するだけの簡単なクラスです。
すみません。
質問の仕方が悪かった。
10進数と64進数を相互変換するだけの簡単なクラスを作ったのだけど、
Base64だとMIMEのBase64と混同してしまうので、何か適当な名前をお願いします!
基数変換(Radix Conversion)
からRadixConverterでいいんじゃないの?
RadixConverter
383 :
380:2011/11/15(火) 17:05:32.05
>>381 >>382 ありがとう。
BaseConverterやRadixConverterだと、汎用性のある基数変換みたいな名前だけど、
作ったのは10進⇔64進という決め打ちで汎用性の無いものだったので、もっとズバッとした名前がいいかなぁと思って。
でも64っていう数字を入れると、Base64やRadix64になって、MIMEのそれと混同してしまうかなと。
Radix64Converterでいいかな。
コード書いてる時間より名前考えてる時間の方が長い。。。
グダグダとスマン。
そんな心配は名前に盛り込まないで
コメントに一言入れておけばいい
「はみ出し」って英語でなんて言えばいいですか?(名詞で)
枠の中に書いた文字が枠からはみ出ているとか、そういう状態を指す言葉。
辞書を引くとprotrusionという単語が見つかったけど、「はみ出てる」と
言うより「飛び出てる」「ポコッと突き出てる」という感じがしてしまう
のでもっと適切な単語があれば教えてください。
1行目無視して、2行目の状況を表す単語ということでよければoverflow
どうもありがとうございます。
説明がうまくなくてすみません。
「字数が多すぎて記入欄から何文字かはみ出した」という場合には
確かにoverflow がぴったりですね。
>>385で考えていたのは、郵便番号のような1文字1マスの領域が
ある上に書いた文字が枠よりでかかったりズレてたりして、
上下左右にてんでにはみ出している(最悪、枠から完全に外れてる)
という状況なのでoverflowだと違うかなと。
overflowをヒントに考えて、spillにしました。
整数のアプリケーション定義のエラーコードを(動的ライブラリを使って)文字列に変換するクラス(関数オブジェクトクラス)にふさわしい名前はなに?
ErrorDescriber
>>389 エラーコードからエラーメッセージに変換するクラス?
class IProcessor {
virtual void Process(Value);
};
class Xxx {
void Process(KeyValuePair element) {
processors.Find(element.Key).Process(element.Value);
}
List<IProcessor> processors;
}
こんな感じのクラス(Xxx)を命名してくれ
俺的には ProcessorSummary なんてどうかと思うんだが
>>392 コマンドパターンみたいなものだからCommander?
しかし、余計なお世話とは思うけど、KeyValuePairの存在理由が謎。
わざわざ使いにくくしてるだけのような....
>>392 コマンドパターンみたいなものだからCommander?
しかし、余計なお世話とは思うけど、KeyValuePairの存在理由が謎。
わざわざ使いにくくしてるだけのような....
>>392 コマンドパターンみたいなものだからCommander?
しかし、余計なお世話とは思うけど、KeyValuePairの存在理由が謎。
わざわざ使いにくくしてるだけのような....
>>392 コマンドパターンみたいなものだからCommander?
しかし、余計なお世話とは思うけど、KeyValuePairの存在理由が謎。
わざわざ使いにくくしてるだけのような....
Map<ErrorCode, Inspector> map;
map.get(err).inspect(err);
400 :
デフォルトの名無しさん:2011/11/19(土) 22:13:41.32
…
401 :
392:2011/11/20(日) 02:16:54.12
>>393-398 ん?もしかしてC#関連のクラスと勘違いしていないか?
例として出している名前、型名は構造を想像してもらうためのダミーだぞ
>>399 確かに、processors を List 型と書き示したのがまずかったな。型は Map と記した方が正しい
class Xxx {
void Process(Element data) {
processors.Find(data.Type).Process(data);
}
bool AddProcessor(IProcessor newProcessor) {
return processors.Insert(
newProcessor.TargetDataType, newProcessor);
}
Map<DataType, IProcessor> processors;
}
ん?別にC#じゃなくてもいいけど
C#で想像しちゃまずいのか?
C#にあるのと別の働きをするもの?
403 :
392:2011/11/20(日) 10:16:20.97
>>402 同じ
基になるコレクションは連想配列(Dictionary)でなくてもいいけど
>>401 お前さ、人に もの聞くのに上から目線か。オナニーでもしてろ
どっちにしろ、無理にElementなんて型を導入するのが意味不明に思えるな。
わざわざ使いづらくしてるだけじゃん。
Element.TypeでMapからIProcessorを引っ張ってくる意味も分からない。
それなら最初からElemetにTypeではなくIProcessorを持たせれば済む。
何がしたいんだろう。
407 :
392:2011/11/21(月) 04:12:25.43
>>405 もう少し具体的に書いてみたが、どうだろうか
class Xxx {
ContactCache DetectContacts(Body bodyA, Body bodyB) {
ShapeTypePair stp(bodyA.ShapeType, bodyB.ShapeType)
return narrowPhases.Find(stp).DetectContacts(bodyA, bodyB);
}
bool TryAddNarrowPhase(ShapeTypePair stp, NarrowPhase newNarrowPhase) {
return narrowPhases.TryAdd(stp, newNarrowPhase);
}
Map<ShapeTypePair, NarrowPhase> narrowPhases;
}
a.bとかの . てなんて呼べばいいだろう?
separatorとかdelimiterだとaとbが全く別のデータみたいな言い方だし、なんかないかな?
そもそも a.b ってナニ
プロパティへのアクセスとか。setting.name
ドット演算子
メンバアクセス演算子
まあ、なんとかoperatorだろうな。
dot operator
member access operator
言語の本に載ってるでしょ
〜も含めてってなんて言えばいい?search(word, なんとかBody)みたいな感じで、通常は
タイトルを検索するんだけど、search(word, true) の場合は本文も検索対象に含めるみたいな。
関数名なのか変数名なのか、マクロ名なのか列挙型の名前なのか・・・
さっぱりだから、including とか with とかで良いだろとしか言いようが無い
417 :
デフォルトの名無しさん:2011/11/30(水) 09:30:43.88
数字を吐き出す時に前回出力から大きく外れない乱数を吐き出す関数があるんだ。
システム的なものもあって、
出力を安定させる乱数
みたいな名前を付けたいんだが、
ちょっと中ニ病ちっくでかっこいい関数名付けてくれないか
先物だからデリバティブだな
randomでおk
クライアントコードは分布なんて意識したくない
>>417 attractorField(); //特に意味はない
>>417 GetFluctuatingValue (揺らいでる値を取得)
世界の終わりにキミが届けるランダム値をおれはそっと抱きしめる()
/** 極限原点 */
int ParticleConvergence();
黄昏を乱す小さきモノ();
中二病でいいならMyRandom
GetNearChaos_DeadEnd() なんてどうだ?
thenEnemyDie();
//相手は死ぬ
ゲームでメッセージとかアイテムリストとか表示したりメニュー開いたり閉じたりとかスコア表示したりするクラスってなんていうの?
ユーザーインターフェースとかかな?
うん
431 :
デフォルトの名無しさん:2011/12/01(木) 17:19:52.73
除外する ID を指定するパラメータ ignoreId があるんですが、
“ignoreId で除外したIDが持つ子も除外“するパラメータ名でいいのないでしょうか?
paramname = true で子も除外、false で指定 ID のみ除外、みたいな感じです。
よろしくお願いします。
ignoreChild
ignoresDescendants
列挙型にして SpecifiedOnly、WithChildren じゃダメ?
436 :
432:2011/12/01(木) 19:25:00.99
レス遅くなってすみません。
>>434 getList にしてますが getTree でもいいかなと思ってます。
437 :
431:2011/12/01(木) 19:25:34.29
438 :
431:2011/12/01(木) 19:41:46.11
>>432,433,435
検討してみて ignoresDescendants 頂くことにしました。
レス下さった皆さん、ありがとうございました。
Lightness(輝度)が基準値を超えているときは、暗くする、
基準値以下なら、明るくする関数の名前をお願いします。
function xxx() {
return (lightness > 0.5) ? darken() : lighten();
}
輝度はLuminanceだよ
モニタの輝度調整とかならBrightnessが一般的
441 :
439:2011/12/02(金) 05:02:45.88
アラヤダ。そんな事情があるともしらず、申し訳ないです。
で、本題のほうなんだけど、安易にadjustとか使いたくなるんだけど、そういうわけにもいかないのかなぁ。
AdjustLightness(threshold) とかで伝わりそうといえば伝わりそうなんだけど
443 :
439:2011/12/02(金) 05:44:14.48
>>442 adjustだと、増減値を自分で指定するという感じがしますね。
AdjustLightness(amount)のように・・・
444 :
デフォルトの名無しさん:2011/12/02(金) 08:22:49.72
例によって clamp かなぁ、と思ったけど、指定範囲に収めるのとは
ちょっと違いますかねぇ。
Approachは?
converge
明/暗順応(light/dark adaptation)の関係だな
applyLightnessAdaptation
>>439 動詞じゃないのを許せるならLightStatとか。
余計なお世話だけど、そういう単純な制御だと、ネガティブフィードバックになってたら
条件が揃えば発振するよねそれw
データベーステーブル名を複数形にするという規約があるもとで、
分類テーブルと、分類付テーブルの名前をどうしたらいいですか?
categoriesとcategorizationsとなってますが、おかしいですか?
分類はclassじゃね?
classesとclassifications・・・なの?
451 :
449:2011/12/03(土) 00:56:14.70
>>450 classでもよさそうですね。
ing+sとかで動詞の複数形?にするのはおかしいですかね?
一応名詞を選んでいます。
英語難しいです・・・
categoriesは他のテーブルと関連付けるための情報をもつテーブルで、
categorizationsで、実際にcategoriesと他のテーブルを関連付けしている感じになります。
categories
reations
categoriesと、関連付けられる他のテーブルが例えばitemsだったりしたら、item_categoriesとか。
複数形関連で便乗質問させてください。
「student」に対する「students」など、
単体クラスを複数管理するクラスをよく作っていたのですが、
「series」って、複数形も「series」で、
「series群」というクラスをどういう名前にすればよいのか困っています。
他の命名規則と合わせて「serieses」という造語を使っておくべきでしょうか?
(「"serieses"」でググるとそれなりには引っかかるのですが)
文脈でわかるからただの複数形(この例ならseries)でいいよ
利用側からは管理クラスしか見えないなら、単体クラスの方をリネームするのはどうだろうか。
Entityとか適当なサフィックス付けて。
複数形に擦るだけではどんな集合なのかが見えない
その集合の性質をよく表したクラス名にするのが正解
458 :
454:2011/12/04(日) 11:56:00.39
>>455-457 seriesというクラスが存在して、それを複数管理するクラスなんです。
そして、この「複数のseries」を、関数内で使ったり、
他のクラスがメンバとして持つ、という構造です。
内部では普通の配列や連想配列で管理してますが、使う側には見えない部分で、
arrayやmapという単語をクラス名には付けたくないので、複数形を使っています。
なんか英語としては「series's」が正解なようなのですが、
これをクラス名にしようとするとどうなるのでしょうかね…。
だからそれは何のために複数管理するのか
その目的がはっきりしていれば自ずと適切な名前も決まるでしょ
そして何の目的もなくただ集約してるだけならデータ構造の名前つけるぐらいしかないだろう
コレクションクラスの名前を要素の型の複数形にするってあまりやらないような...
変数の名前なら複数形でいい場合が多いと思うけど。
それが外からリストに見えるのなら〜List、連想配列に見えるなら〜Map、
単なる集合以外の意味を持たないなら〜Collection、みたいに機械的に命名すればいいだけでは?
命名規則がなんかジャバっぽいよね
CLASS object;
object.Do();
これっておかしくないか
objectは三人称単数なんだから
object.Does();
にするべきでは
>>462 メソッドは叙述ではなく命令ですよ基本。
dog.Run()は「ワンコが走ってる」じゃなく、「ワンコ、走れ」。
なるほど
ではobject.isValidやobject.GetValueはどう解釈すれば
object、正常であれという命令?
これでは正常化するメソッドに見えてしまいますよ
|冫、)ジー
>>465 >>464 は、メソッドは叙述ではなく命令ですよ「基本」と言ってる
基本じゃない場合もあるんだよ
(たいていの場合は命令で解釈できるから、基本と言っているんだと思う)
>>465 の場合は、一般的には「object は正しい」という述語として
解釈されてきた歴史がある(だから戻り値もたいていは論理値)
一律に「全て命令だ」という訳ではないんだよ
そうやって解釈されてきた歴史的な経緯は知らんが
基本はちゃんと押さえながら、かつ柔軟に解釈していこうよ
耳学問なんだよね所詮は
>>467 ちなみに、命令じゃなくて普通の動詞として解釈する人もいて、
こちらも別に間違いじゃない
window.createChild (・・・)
window が ・・・という属性の子ウィンドウを作る
命令と解釈するのは、たぶんオブジェクト指向以前の名(伝統)だろうね
>>469 訂正
> たぶんオブジェクト指向以前の名(伝統)だろうね
たぶんオブジェクト指向以前の名残(伝統)だろうね
>>462 お前は英語分かっていないな。三人称単数現在ってのは
ちゃんとニュアンス持ってるんだよ。
命令形の場合とは違う
>>465 命令形は Be - だよ。
ちなみに get〜 だけはお前の言うとおり
おかしい。これはネイティブも(おかしいと)分かって
るけど、get にしてると思う。
>>469 2番目の意味では、
window.createsChildになる
なんか変な流れになってるけど....
object.IsValidも、例えば、"tell whether the object is valid or not"
のような感じの省略表現だと考えることが出来る。
やはり基本は命令表現でしょう。
object.GetValueみたいな形はアクセスメソッド以外では今時あまり使わないと思うけど。
ツマラン
デタラメとか雑音まいてる馬鹿は英語できないんだろうな。
こういう馬鹿を説得する義理もないけど、だったら仮にメソッド名に日本語を
使うとしたらどうなるか考えてみろと。
IsValidは「正当か」、CreateChildは「子オブジェクトを作れ」
普通はこういう風になる。
#define オブジェクト object
#define は .
#define の .
#define 、 .
#define 正常である isValid
#define 名前を取得する getName
#define 生成せよ create
オブジェクト は 正常である()
オブジェクト の 名前を取得する()
オブジェクト 、 生成せよ()
日本語は形式が柔軟だから便利だね
それは、C言語限定?
Java や C、C# なんかで a.b と書くときがあるけど、
a や b の名前を使って「全体として」英語の文として読もうとか、
あるいは「全体として」英語の文になるように a や b の名前を決めようとか、
そんな馬鹿なことに注力して名前を決めるものじゃない
何らかの工夫をしなければ、対象となるオブジェクトの識別子より
関数を表す識別が必ず左側に来る言語だって普通にある
名前は特定言語の文法にできるだけ依存しないように、
その名前を参照する側から見た役割や機能、意味などを元に決めるべき
全体として英文のように読める(解釈できる)かどうかは些末な問題だ
>>480 と言ってはみても、それを理解できる猛者はこのスレにはいないだろうね
ObjectIsValid(Type object);
GetValueFromObject(Type object);
DoSomethingWithObject(Type object);
関数名だけで英文が完成するようにする
引数名は関数名である英文に現れる単語を示すように名付ける
これがもっとも読みやすい命名法
英文として読めるどころかバシバシ省略形で書いていいんだけどね
どうせドキュメント読まないなんてことはあり得ないんだから長い名前書くだけ無駄
衝突さえ回避できればC標準のような適当さで十二分なんだよ
お前ら揚げ足が取りたいだけじゃないか。
なぜなら俺のレスには、レスしてないし。きれいに避けて通ってるw
ちなみにどこまでも英文に近くしたいのなら、
SmalltalkかObjective C でも使っとけって話だ
お前のレスってどれだよ
489 :
デフォルトの名無しさん:2011/12/04(日) 23:20:27.31
>>487 どこまでも英文に近くしたいならCOBOLじゃね?
>>489 適当に「COBOL サンプル」などでググると分かるけど、
COBOL って思ったほど英文っぽくないんだわ
COBOLは確かにひとつひとつの文の書式は英文臭いけど
抽象化し辛いせいで、結局はその辺の言語以上に英文から離れてくのよねw
ホントに英文っぽくしようとすると命令ごと大量に作らないといけなくて
可能な限りでそうしようとした結果が膨大な単語が並んだ予約語表
しかもそうまでしてもやっぱり英文には程遠いという…
>>477 ×CreateChildは「子オブジェクトを作れ」
○CreateChildは「子オブジェクトを作る」
493 :
デフォルトの名無しさん:2011/12/05(月) 01:02:38.30
要するに何とでも都合が良いように解釈できる&してきたわけだよ
よし関数型言語での命名法でも考えようぜ
read() -> doSomething() -> write() の順に実行される
テンプレートパターンのJavaクラスを名前を考えてください。
IOエラーなど生じやすい危険からBridgeScope, CriticalSection
みたいのがいいかなと思うのですがどうでしょう?
abstract class ??? {
onRead(){}
onReadError(){}
onSomething(){}
onWrite(){}
onWriteError(){}
}
Converter
498 :
496:2011/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);
__}
}
499 :
496:2011/12/07(水) 12:43:08.73
onSomething()もしくはonError()で
Webページのforwardを行わせるので
Resolverにしてみようと思います。
C++のソートなどに使う比較関数なんだけど
bool compare(X a, X b)
{
a.hoge > b.hoge;
}
これの名前はどうする
hoge_of_a_is_greater_than_hoge_of_bってすると長くて間抜けな気がするし変数名が入ってヤナ感じ
Xのインスタンスメソッドとして実装すれば何も考えなくても....
っていうか、例えば
bool GT(X a, X b)
ってシグネチャの関数があったときに、これを(b > a)を返す関数だと解釈する人はまずいないと思うけど....
とくに説明がなければ、常識的に言って(a > b)が返ってくるんだろうなと解釈するでしょ。
bool PriceGreaterThan(X a, X b)
{
return a.price > b.price;
}
bool HogeGreaterThan(X a, X b)
{
a.hoge > b.hoge;
}
503 :
デフォルトの名無しさん:2011/12/13(火) 16:59:55.66
有効/無効を一言で表すとなんでしょう?
今 enable メソッドと disable メソッドがあるんですが、
処理がほぼ共通のため、
function enable() { hoge(true); }
function disable() { hoge(false); }
hoge (enable) {
if (enable) ...
}
みたいな感じでやってます。
みなさんなら hoge のメソッド名は何にしますか?
SetEnabled
例えば特定の数値からファイル名を作る場合に〜Builderとかつけることがありますけど、
作ったファイル名から元の数値まで戻す処理を持たせた場合は何がいいんでしょう?
converter?
parse
parser
Converter <--> Inverter はどうよ
ねーよ
>>505 特定の数値からファイル名を作る?
意味が分からん
あと〜Builderだと、GoFのBuilderパターンと混同するから良くないかと
encoder <--> decoder
それもねーな
説明的な文章が満足に書けない奴はプログラマに本質的に向いてない。
これ俺の持論。
まさにParserじゃん
ファイル名に限定したいならFileNameParserにでもすればいい
>>513 そういう奴はリアルだと「ゆとり(笑)」だったりするから相手にしてもたかが知れてる
string MakeFileName(int n);
int GetNumber(string fileName);
こういう使い捨ての小さい処理の名前で悩む奴はアホ
Parserは構文解析器だがファイル名を構文とみなすのは無理がある
それに○○erはクラスに付ける名前だ
>>516 だな
俺はGetの代わりにextractを考えたけど他はほぼ同じだ
ExstractNumberじゃないことを願うだけだ
使い捨ての小さい処理である根拠が無い
(自分あるいは自分の周りでそういう処理は使い捨ての小さい処理でしかない
というのでは根拠に乏しい)
根拠が無いのにアホと結論づけるのは論理的じゃない
>>516 数ヶ月後にコードを読むときには、それが「使い捨ての小さな処理」なんてことは
すっかり忘却の彼方になってる自分を想像できない奴はもっとアホだと思う。
ところでこのスレって何のスレだっけ?
釣られるなよ雑魚どもw
馬鹿しか居ないのかねぇ
数ヶ月もあいだあいてりゃ最低でもコメント見るだろwww
おまえらコメント見ないの?そんなんでよくPGやってられるな
つーか根拠に乏しいってこんな具体性高い処理ライブラリ化する奴なんて居ねーよwwwwww
どう見てもそのアプリ限定の使い捨てだろうが
まだ正しくはないね
531 :
518:2011/12/14(水) 21:39:38.84
ExtractNumberってみると、Numberから何かをExtractすんのかなと思うけど、みんなはそうでもないのだろうか
>>525 すまん、スペルミスは俺だ。
>>517 はじめからクラスにつける名前を聞いてるんだろ
>>531 お前はこのスレに今後一切書き込みをするな
辞書も引けない奴がなんで518のように書けるのか理解できないわ
このスレの奴らが居るチームって開発遅そうwww
>>534 スレみてりゃわかるが、書き込めないやつだらけになっちゃうよ
俺以外書き込まなくていいよ
出てるまともな答えはほとんど俺のだし
>>523 お前はいつでもどこでも爆発してるよなw
まあ馬鹿なお前らは延々と糞長い名前でも考えてろよ
俺はラムダ使うから。じゃーな
↑気になって戻って来るに10億ジンバブエドル
>>537 お前以外書き込めないのなら、お前が質問してお前が答えるのか
お前程度のレベルでその質問に答えられるのか?
ああそうしてくれ
>>537 そういうレスをするときは、自分のレスがどれであるかを書くべきだ
Hoge型のオブジェクトを登録、削除、条件指定して選択できるクラスを作ったんだけどなんて名前がいい?
今はHogeDataBaseにしてるんだけど中でSQL使うわけでもないから紛らわしいかなと思って
SQLだけがデータベースではないのでいいんじゃね
HogeSet みたいな名前使ってる
オブジェクトの生存期間を管理するだけの目的ならHogeHolder
Hogeと同じインタフェースをもたせて一挙に処理したいときはHogeGroup implements Hoge
それ以外は既存のコレクションクラスで十分だと思ってる
HogeManagerにしとけばええねん
HogeTracker
550 :
デフォルトの名無しさん:2011/12/15(木) 21:14:55.29
Hogeクラスのクラスメソッドにしてしまえ。(それなんてActiveRec
なんでDAOやRepositoryという言葉が出てこないかな…
なんでだと思う?
だお^^
Containerでいいんでないの。
DataSetでもいいけど。
556 :
デフォルトの名無しさん:2011/12/18(日) 00:07:05.92
ある範囲内で作業して、その範囲が終わったら、変更していた内容を元に戻すような関数を考えていますが、どのような名前にしようか迷ってます。
イメージ的にはDBのトランザクションとロールバックが近いので、
transaction do
...なんかする
end # なんかしたのを戻す
としようかと思ったのですが、
・DBライブラリで使っている名前とかぶる
・名前が長い(タイプ量が多い)
という問題があります。
ほかの候補としては、
・sandbox
・block
・scope
を考えてますが、いまいちいい名前ではないように感じています。
なにかお勧めの名前があれば教えて下さい。
>>556 何が聞きたいのかよく理解できないんだけども....
>変更していた内容を元に戻すような関数を考えていますが、
という割には、
・sandbox
・block
・scope
どれもそういう名前に思えないんだけど。
っていうか、transactionで長いっていつの時代の人よw
save
なんかする
restore
BeginXXX
EndXXX
reset
revert
restore
rollback
変更してた内容を適用するんじゃなくて、あくまで元に戻すってことは、
例にもあるような、sandbox的な使い方ってことなのかな。
でもsandboxだと、あくまで一時的な作業データそのものを示すような気はするね。
locally do ... done
doAtomically
setUp
tearDown
変数じゃないけどスクリプトでマウスとキーボードを動かせるマクロソフトを作ろうと思うんだけど
名前何にしようかな
おいたしちゃうぞ(テヘッ).vbs
痛い名前にすると普及すかも
ねぇ見てて.vbs
検索系の関数の名前ってどうしたらいいですか
searchXXXXとかだと長くなってしまう・・・
container.select(pred, buffer);
findXXXX にすれば2文字短くなる
これで長いとかセンス無さすぎ
センスは「有る無し」じゃないんだよ
自分のセンスと「合う合わない」なんだよ
それはそうかもしれん
識別子の頭に数字が使えたらと思うことがたまにある
3DObject とか、128bitKey とか
なんでできない言語が多いんだろ
構文解析上なにか難しい事があるとは特に思えないけど
ThreeDObject
ЗDObject
_3DObj
明らかなネタにもしっかりと突っ込んでいかないとな!
プライベートメンバ名の先頭にアンダースコアをつける文化圏かと
>>564 問題は何もない
ただ「識別子の頭に数字をつけるため」にアンダースコアを使うという発想が
一般的じゃないという意味でヘンというだけ
かといってネタとも思えない
本当に普段からそういう目的でプログラム書いてそうだと思った
>>585 なら前例を多く見てきたから分かるけど、
数字をつけるためってのはちょっとね、初めてだったよ
_1とか普通に使いまくりだろ
>>586 プライベートメンバの先頭にアンダースコアをつけない人にとってはなんら問題ないと思えることは予想できる。
ただ、プライベート(略)つける人が見たときに文句を言われることは必至だけどね。
2dObjectってかけたほうがインターフェースシンプルになるよね
590 :
デフォルトの名無しさん:2011/12/20(火) 00:42:21.51
RPGの賽振り処理書いてるときに先頭を数字にしたくなったっけ。
3d6とか。
rand3d6でいいじゃん
592 :
デフォルトの名無しさん:2011/12/20(火) 00:50:22.82
どう回避すればいいか尋ねたわけじゃないんだが。
個人的にはなるべくなら_でプリフィクスの識別子は使いたくないね。
メンバ変数も含めて。
enumのメンバー名なんかで、どうしても数値そのものをメンバ名にする必用が
あったりする場面以外では極力避けたい。
やっぱり視覚的に見づらいんだよな。
3dと書いたら普通はdouble型の数値リテラルなのに
3d6と書いたら識別子なんて紛らわしくてたまらん
>>590 ダイス数や面数そのものが変数名になることって無くないか?
自分もサイコロ処理は書いたことがあるが、
int nDice = 3;
int nFaces = 6;
int result = RollDice( nDice, nFaces );
…みたいな感じになったぞ。
パラメータをenumにする場合とかじゃないかな
enum DICE={3d6,…};
描画関係のメソッドを集めたスタティックなクラスの名前おねがいしゃす
Graphicsとかだと既存とかぶるし
GraphicUtil?
おすすめはしないがヘルパー関数を集めたクラスは、
たとえばMathHelperなどがある。
バランスシートを表すものを作ってますが、資産か負債かを表すenumの名前は何がいいでしょうか。
資産はAsset、負債はLiabilityですが、これを示すタイプの名前です。
どうも英語にはそういう概念がないのでは、という気配を感じていますが。
順序的な意味で前、後ろって英語でなんていうの?
{a, b, c, d, e, f}
ってシーケンスがあって日本語では
aはeの前にある
dはcの後ろにある
と書くところを英語だとどうなる?
front/back、prev/nextはなんかニュアンス違う気がする
precede, precedent ⇔ follow
かな
後者にはsucceedもあるけど、ぱっと見で間違えそう
英語でも数列の話では、before, afterなんかを使うけど。
>>597 既存とかぶってもいいように名前空間が。これもまたおすすめはしないけれど。
隣接してるかどうか関係なく、そのように言うのかな
調べたらbefore/behindだってさ
606 :
デフォルトの名無しさん:2011/12/20(火) 22:36:32.06
behind の対義語は ahead だと思ってたぞ…。
before/after
ahead/behind
lead/follow
MATLABで一時的な数値の記憶など汎用的に使用する変数としてvar1, var2,...という変数名を使っています
しかし、数字を書き忘れると分散を求めるvar()と認識される可能性があります
なにか他に良い変数名はないでしょうか
困ったらhogeだろう
temp
サブシステム間の複雑に込み入ったN対Nの相互参照関係を解消するために
サブシステムを子要素、すべてのサブシステムを集約したクラスを親要素としてN個の1対1の相互参照にさせて
親に問い合わせると問い合わせを適切なサブシステムにディスパッチしてくれる
という構造でプログラムを作ったんだけどこの親と子の関係ってどんな名前がいいですかね?
relationship
>>610 あんま想像できなかったけど、
相互作用を記述するにはGoFのMediatorパターンが知られている。
一個のMediatorに対し複数のColleagueがあるような形。
>>610 親の名前と子の名前と関係の暫定名は何?
DDDにおけるAntiCorruptionLayerを思い出すなぁ。
親子という表現がよく分からんけど、Facadeパターンのように思える。
Facadeは無いわ
>>575 例えばC言語で 3L とか 0xf なんて識別子使われたら困る
数値リテラルとして有効な書法だからね
んで例外作るくらいなら頭に数字は全部禁止!としたほうが
プログラマからしても楽だと思う
>>608,609
回答どもです
hogeは実際に使ってるソースを見たことがないのでいまいち感覚が掴めない
tempは何度か他の変数に使ったことがあるし・・・う〜んどうしよう
レス参考にして考えてみようと思いますありでした
618 :
片山博文MZ ◆0lBZNi.Q7evd :2011/12/22(木) 12:34:11.54
タブ型で文書を制御するフレームウィンドウのクラスはどんな名前がいい?
CTabDIFrameWndか?
DIって何
wikiを見て分かりました。CTDIFrameWndで決定します。
クラッシュトゥデスクトップインナーフレームの杖!
CWandOfCrashToDesktopInnerFrame
コマンドとクエリーって何が違うの?
コマンドは、指令。クエリは、問い合わせ。
なりほど
コマンドが非コンスト操作で、クエリーがコンスト操作みたいな感じですね
insert涙目
コンスト操作ってなに?
破壊的かどうかって事じゃね?
const
1. minSize
2. currentSize
3. maxSize
上記3つのメンバ変数を持つ Widget(仮) クラスがあり、
currentSize は minSize 以上、maxSize 以下の大きさである
引数として与えられた newSize を
「minSize 以上 かつ maxSize 以下」
にクランプして、それを currentSize に代入する、Widgetクラスのメンバ関数の名前はどうしたらいいですか?
setSizeでいいじゃん
普通にsetCurrentSizeでいいのでは.....
クランプしないでエラーを返すメソッドと、
クランプして設定するメソッドがあって、
クランプする事を強調したいのなら
setClampedSize とか
そうなるとminSizeとmaxSizeの名前が気持ち悪い。
レスありがとう
>>631-632 Set〜だと直前に設定したはずの値をGet〜で取得できず、アクセッサの対として扱えないのが気になります
>>633 クランプが必要になるのであれば設定せずfalseを返す、というメソッドであれば bool trySet(Current)Size(newSize) でいいかなと思っています
メソッドの内容を見ずに、クランプして代入(設定)する/していることが分かる名前があればベストです
>>634 minSize/maxSizeの名前がおかしいのでしょうか?
代わりとなる名前を教えていただけると助かります
>>635 ゲッターがないのが非対称に感じるというのならゲッターをつければいいのでは?
まさか裸の変数を晒すつもり?
っていうか、話を聞いてると結局何がしたいのか質問者もよく分かってないのかな。
だからWidgetなんていう投げやりなクラス名なのか。
>>636 >ゲッターがないのが非対称に感じるというのならゲッターをつければいいのでは?
Size newSize(100, 200);
widget.setSize(newSize);
Size gotSize = widget.GetSize();
この地点で newSize == gotSize であるとは限らず、ゲッタ(getSize)とセッタ(setSize)が対にならない
なので、それが気になると書きました
Widgetという名前については、実際に使用しているGUI部品のベースクラスの名前とほぼ同一のものですが、
これについてもオススメがありましたらご教示ください
>>637 値の範囲を制限するためのクラス(なんでしょ?)に範囲外の値をセットした時に
値が範囲内の適切な値に制限されても誰も変だとは思わないと思うけど。
だってそれがそのクラスの存在意義じゃないの?
>>637 >この地点で newSize == gotSize であるとは限らず、
これはゲッタとセッタが対で有る事とは無関係
>>638 >値の範囲を制限するためのクラス(なんでしょ?)
>>637 >Widgetという名前については、実際に使用しているGUI部品のベースクラスの名前…
>値が範囲内の適切な値に制限されても誰も変だとは思わないと思うけど。
>>635 メソッドの内容を見ずに、クランプして代入(設定)する/していることが分かる名前があればベストです
>>639 論点はそこではありません。
>>635 >メソッドの内容を見ずに、クランプして代入(設定)する/していることが分かる名前があればベストです
この条件に当てはまる名前を探しています。
>>640 値の範囲が規制される機能を表すのは、別にメソッド名じゃなくクラス名でも良いでしょ?
というより、値が規制されることを強制したいのならその方がむしろ自然。
逆に、仮に規制なしでも値を設定できるのであれば、今度は設定可能な値の範囲を
表すメンバー(mimSize, maxSize)をクラスが持っていることが不自然。
>>642 クラス名でも構いませんが、メソッド名を求めているクラスは
1. 他のウィジェット(GUI部品)のインターフェイスまたは基本クラスであり、
2. サイズの設定/取得以外を行う以外のメンバ関数が存在します
また、例としてWidgetというクラスにminSize/maxSizeを持たせましたが、
実際にそれらのメンバ変数を持つのはWidgetクラスの派生クラス、例としてLabelクラスです
派生クラスでは SetClampedSize仮() メンバ関数を実装しますが、本当にクランプを行うかどうかは実装によります
やはりsetClampedSizeでいいな
setSizeWithClamp
>>643 やっぱりminSize/maxSizeを持たせるのなら、メソッド名は単純にsetSizeとかsetCurrentSizeとすべき。
メソッド名に値が規制されることを盛り込むセンスはちょっと変な気がする。
繰り返しになるけど。
>>630 案は俺 setClampedSize を提案したが、よく考えてみれば、
「設定した値がクランプされて格納される」ことをメソッド名で示すのは難しいな
setClampedSize じゃ、クランプ済みのサイズを設定しろ、と言っているように見える
俺も
>>647 に同意見だ
メソッドを使うプログラマに「して欲しいこと」はメソッド名に織り込めるが、
メソッドを呼び出した結果「内部状態がどう変化するか」は
メソッド名に入れるべきじゃないような気がする
その代わりに、「どのような意味・役割を持つのか」をクラス名に折り込み、
Widget クラスからは分離させた方が良いのではないか?
具体的には、ClampedSize などの名前のクラスを作り、
設定した値がクランプされて保たれる役割をこのクラスに担わせ、
Widget クラスはこの ClampedSize クラスのインスタンスを保持する
範囲外の値がセットされた場合どうなるかは
普通コメントやドキュメントに書かれるね
>>647-649 参考になった。setSize か setCurrentSize にしてみるよ
ありがとうございました
もとの方針にどうしても従うなら
setSize(calcClampedSize(300));
とかになんのかな
クラスって3段階のポインタ参照になるから遅いんだよね
class XXX {
public:
explicit XXX(Container<Hoge> & c) : c(c) { }
void Add(Hoge const & hoge) {
c.push(hoge);
}
private:
Container<Hoge> & c;
};
Container<Hoge> c;
void Func(XXX xxx) {
while(isNotEnd) {
xxx.Add(hoge(...));
}
}
コンテナのインターフェースを制限してpushだけ(あるいはほかの必要なメンバだけ)にしたクラスがあるんだけどなにかいい名前はないかな?
用途はこのFuncを始めとして一部の関数でコンテナに対して間違った操作をコンパイル時チェックできるようにしたいというだけです
ContainerAdapterとかだとちょっと不明瞭な気がするけどあまり気にしないでいいのかな
>>651 元の方針では
void Widget::ClampSize(Size input, Size output)
Widget の最小/最大サイズにクランプした input を output に出力する
void Widget::SetSize(Size value)
Widget のサイズを設定する。最小未満または最大値より大きい値を指定されたのであればアサーション(または例外)
bool Widget::TrySetSize(Size value)
Widget のサイズを設定する。設定に成功したのであれば true を返す
の3つの関数があって、それらを呼び出していたという経歴があるのだよ
>>654 Size Widget::ClampSize(Size input);
戻り値はクランプされた値
ってやりたいけど、それはそれとしておいて、
TrySetSizeがあるのなら、SetSizeSafeでもよかったのかもね。
とはいっても、わざわざメソッドおこさなくても
>>651でいいんじゃないのとおもってる。
Size Widget::ClampSize(Size value) にかえるかどうかは適宜。
〜するひと(あるいは物)って言うと〜er
だけど〜される人ってなんていうの?
攻撃者→attacker
被攻撃者→?
使う場面にもよるような気がするけど。
ともかく対比として使うことのみが目的なら、-eeで済ますことが多い。今回ならattackee
debugger と debuggee って、よく説明に出てくるね。
employer と employee とか
reviewer と reviewee とかもよく見るね
アンダーフローについてググると決まって浮動小数点数についてという説明が出てきます
整数の場合に最小値から更に減算した場合などはアンダーフローとは呼ばないのでしょうか?
また呼ばないとしたら最小値からの減算をなんと名付けるべきでしょうか?
整数でも呼び方は同じ
アンダーフロー、オーバーフロー
呼ぶよ
演算自体は全く同じだから区別しないんじゃないの
人間の頭の中にある計算の意味次第だから
>>661 ググった感じだと使わないと思うんだけど...
個人的にもそういう用法は聞いた(読んだ)ことないから違和感感じる。
情弱君の出る幕はありません
998+1 :デフォルトの名無しさん [↓] :2011/12/04(日) 20:21:14.18
>>919,979,981,987,997
英語188/200点ってことは、2、3個ミスったんですよね?
どういう箇所を間違えたんですか?
999 :デフォルトの名無しさん [↓] :2011/12/04(日) 20:28:27.13
>>998 俺は919じゃねーから知らね。センターは175だったし
ただ小卒レベルで偉そうにしてる老害が目障りだっただけ
1000 :デフォルトの名無しさん [↓] :2011/12/04(日) 20:34:56.90
ゆとり(笑)
[integer underflow]とかググるとそれなりに色々とヒットする。
>>666-667 少なくとも符号付整数については、オーバーフローとは演算結果が正しくないことを言う。
プラス/マイナスどちらの方向に「オーバーフロー」したかは問わない場合が多い。
どっちが情報弱者だよ。
英単語能力を鍛える練習はいつから始めたらいいですか?
アンダーフロー
浮動小数点数同士の計算の結果が、表現できる最小の絶対値以下になること
整数同士の演算結果が-128未満だの-65536未満だのになることはアンダーフローとは言わないが、
このことを「整数のアンダーフロー」と言われてみれば確かに伝わる、空耳アワーの時間がやってまいりました
>>671 よくわからんけど漢字能力を鍛え始める時期を考えれば結構早期なんじゃない?
>>670 初めから多寡の問題じゃないんだよ情弱君
C/C++を前提として、構造体で定数を用意しようと思います。
型の定義の部分を、宣言の部分にまとめてしまっても問題はないのですが、
あえて定義を独立させるとき、型名と定数名は、どのような命名規則になるでしょうか。
なお、現在考えている候補は以下のとおりです。
他に良い規則があればお願いします。
struct Hoge HOGE; //同じ名前で定数を大文字に、型をキャメルに
struct tagHoge HOGE; //適当なプリフィクス/サフィックスをつける(システムハンガリアン)
struct Hoge h; //むしろ型名がメイン
struct Fuga HOGE; //全く別の名前を付ける
好きなようにすればいいんじゃないですか?
なにも規則はありませんよ
struct hoge_t hoge;
>>675 独立した型名を使うことを考えてないなら struct Hoge Hoge; で隠しちゃえば、
別の名前考える手間も省けていいんじゃない?
typedef 〜 THoge;
class CHoge;
struct SHoge;
class IHoge { virtual 〜 } ;
template <class THoge> 〜
日本語で書いてgoogle翻訳に聞いたのをそのまま使う
コメントで元の日本語も添える
最近はめんどくさくなってきて全部コレでいい気がしてきた
え?
>>675 他の用途もある構造体なんだろうか。
定数用途専用なら無名でいいんじゃないかな。
struct { 〜〜 } hoge
申請書クラスを作りたいときクラス名は何にすりゃいい?
>>684 そのまま英訳すると Application だからどうしようか悩んでるの?
Formだから悩んでるのかもしれない
申請書クラスってよく見かけるけど、別に用紙とかの情報持つわけじゃないから申請情報クラスとかでいいのかも
card
ApplicationForm
皆さんありがとうございます。Formで行ってみようかと思います。
ExcelのApplicationオブジェクトと紛らわしいので。
あと用紙も4枚綴りでカードってイメージじゃないので。
カルテは何枚あっても違和感ないのかな、と混乱の種を。
カルテはchartだったすまんこ
気にするなちんこ
四角形の大きさを表現するクラスRectangleがあって、
外側の大きいRectangleと内側の小さいRectangleとの差(上、下、右、左の厚み)を表現するサイズを作りたいんだけど、名前をどうしようか迷う
WPFだとThickness型のMarginプロパティとかだったな
理想的な回答だな
697 :
565:2011/12/29(木) 16:32:24.06
お、ねぇ見てて.vbs 完成したのか
複数プロセスの起動を抑止するクラスを作りたいんだけど何がいいだろうか
SingleProcessはなんか違うよなあ
int main(void) {
GateKeeper gateKeeper;
};
ProcessMutexer
SingletonEnforcer
SingleInstanceForcer
こんなとこ?
diproccesssuppressor
ProcessManager
SingleLauncher
普通に英語でAlternateCheckerとかではダメなんですか?
それのどこが普通だよw
>>695 亀レスだがサンクス
そんなクラスが存在していたとは知らなんだ
いまさら名前決めとかアホか
そういうのは解読に使うもんだ
〇〇を持ってる××とかに機械的に付けれる命名法則ってある
class Object { } ;
class ObjectWhichHasPosition : public Object {
math::vector position;
};
class ObjectWhichHasChildren {
std::vector<Object *> children;
};
なんかダサい
ObjectWithPositionとか
MSのCOMインターフェイスでIObjectWithSiteなどというのもあるし
>>711 余計なお世話かも知れないが、メンバ変数の存在を強く意識したクラスなんて差し替えしにくいし、
ましてや名前にまでそれをつけようってのはとても恐ろしいことだ。
まあ、普通はそういうのは名前で表示するものではないし、したところで意味がないよね。
どうして素直にインターフェイスではだめなんだろう。
空間に登録されたバウンディングボックスとハンドルのペアを集約したクラスがあります
このクラスはバウンディングボックスとハンドルのベクタを与えると、
引数のバウンディングボックスに衝突するバウンディングボックスとペアになっているハンドルを引数のベクタに挿入します
クラス名、メソッド名は何がいいでしょうか。実装は隠蔽されているので実装を反映させた名前は避けたいです
シンプルにGetHits
717 :
デフォルトの名無しさん:2012/01/03(火) 01:53:43.35
数値的に解析するってなんて言えばいい?parseAsNumberだと不自然だよね。。
numericalAnalysis
analyzeNumerically
numerical_insight
数値的に解析って何?
>>721 対象となるものの数値的に現れる性質を調べたり、
あるいは(主に数学的な)問題を数値的に解くことを言っているのだと思うが
(それ以外の解釈を俺は思いつかん)
逆に数値的じゃない解析というのは、
対象となるものの構造的な性質を調べたり、
(主に数学的な)問題を解析的に解くこと、が例として挙げられるな
>>717 むしろそれでもいいかと。
でも今時はto + 変換後の型名が一般的では?
toInt
toDouble
HogeToInt
HogeToDouble
例えばこんな感じ。
「解析」という言葉に普通込めるニュアンスと、
「parse」という言葉に普通込めるニュアンスは、
明らかに違うと思うんだが・・・
「数値として解釈」と言いたかったんだろうな。
>>724-725 くだらない議論。
というか、解釈と解析なら、むしろ解析の方が妥当。
解釈というと逐語訳ではない(意訳的な)変換をニュアンス的に含むからね。
はぁ?
文字列を数値などに変換する→ParseHoge, Hoge.Parse
※基本的に重い処理
あるものの表現方法を変換する→ToHoge, PiyoToHoge
※基本的に軽い処理
いわゆる数値解析とはまったく関係ありませんでした、と。
関係あるわけないだろ。
そもそも「数値解析」なんていうアバウトなメソッドがある訳がない。
訳のわからんこと言ってる連中はこんなもの想像してたのか。
頭おかしいなw
ほぉ?
むぅ
らっぱ
検索処理で上位のグループだけ返す(数を指定せずプログラムが自動的に判断して返す)オプションの名前
I'm feeling lucky
……は冗談として、SQLだとLIMIT句を使って取得数を変えたりするから、
それに倣って limits(NumOf)Records とか?
↓しんのしこうていAA
GetHots
GetHotRatings
FindTopRecords
GetTopRecords
class Node { // ツリー構造のノード
private:
List<Node> children;
List<Hoge> hoges;
};
@ 自身のhogesに登録されているHogeの数を取得するメソッド
A 自身のhogesに登録されているHogeの数 + 自身を祖先として持つ全ての子ノードに登録されているHogeの数を取得するメソッド
を命名していただきたい
GetHogesCount(bool isRecursive)
>>739 なるほど、その手があったか!
とは思うものの、やはり@とAの2つに分けて定義したい
なんで?
CountHoges
CountHogesRecursively
GetCount
GetRecursionCount
CountDescendantHoges
レスサンクス
@ GetHogeCount
A GetHogeCountRecursively にしてみようかと
RecursionCountの方がいいと思うよ。
英語わかんなくてもググってヒット数比べりゃわかると思うけど。
748 :
デフォルトの名無しさん:2012/01/05(木) 21:24:56.39
RecursionCount だと再帰の回数。
RecursiveCount じゃまいか?
ネトウヨ王に、俺はなる!まで読んだ。
>>747 Countの前に付けるならRecursiveかな
>>745のDescendant(子孫)を使った関数名も良さそうだけど、Hogeの数は全ての子孫のhogeの数 + 自分のhogeの数だから、少し説明が足りない
いっそのことGetTotalHogeCountにでもしようかな
韓国人歌手が東京で従軍慰安婦のポスター1500枚を掲示=韓国
韓国人歌手の金長勲(キム・ジャンフン)と韓国広報専門家の叙敬徳(ソ・ギョントク)城信女子大客員教
授が、3日から4日の2日間、東京内の流動人口が最も多い新宿、渋谷、原宿などで、従軍慰安婦問題に関
連するポスターを掲示したことが明らかとなった。韓国の複数のメディアが報じた。
■「従軍慰安婦」に関する他の記事 - サーチナ・ハイライト
韓国メディアは、キム・ジャンフンとソ教授が日本に在住する韓国人留学生たちの助けを借りて、東京の
街のあちこちに1500枚の従軍慰安婦に関連するポスターを掲示したと伝えた。
「DO YOU HEAR?(聞こえるか?)」というタイトルの今回のポスターは、12月29日付けのウォールス
トリートジャーナル・アジア版に掲載した全面広告のデザインと同じ内容。
ポスターを企画したソ教授は、「世界的な有力紙の広告を通じて、国際社会で問題化し、世界の世論を喚
起させる。日本国内のポスターは、日本軍慰安婦の存在すら知らない若者にアピールするために作成した
」とコメントしたという。
ポスターの制作費を後援したキム・ジャンフンは、「水曜デモが1000回を超えたが、日本政府は、慰安
婦問題をいつも回避している。慰安婦問題は、日韓の歴史認識の次元を超え、女性の人権回復の重要な
問題であることを日本政府は知っているはずである」と説明した。
また、ソ教授は「独島や慰安婦関連の広告を掲載するたびに、日本の右翼団体の脅迫をいつも受ける
が、これに屈することなく、より正々堂々と日本政府の誤りを指摘し、世界の世論を引き出そうしようと努力
する予定である」と語っている。
キム・ジャンフンとソ教授は、来週には大阪と京都を中心とした関西地方でも、ポスター1500枚を掲示する予定だという。
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0105&f=national_0105_077.shtml
>>751 それはどっちでも恐らく同じ。
ただRecursionCountの方がヒット数が多い。(分かち書きしても同じ)
recursion countだと再帰の回数って感じ
>>757 再帰の回数って何よ?
いや、概念としては分かりもするが、recursionCountって変数を見て、
ああ再帰の回数なのね、と思う奴がいる?
いるじゃないか。
いる
というかお前以外そう言ってる
ヒット数が多い≠正しい訳
じゃないからw
762 :
761:2012/01/06(金) 13:33:45.25
間違えた
ヒット数が多いことが正しい訳であるというわけじゃないと言いたかった
検索ヒットしたページの中で「再帰の回数」以外の意味で recursion count と呼んでる例を
探してみるといいよ。
分かった馬鹿と議論しても無駄だよな。
じゃあ例えば英辞書で"recursion"を引くと用例のトップに"recursion algorithm"
とあるが、これは「再帰のアルゴリズム」、つまり再帰に関するアルゴリズムって意味なのかw
検索ヒットしたページの中で「再帰の回数」以外の意味で recursion count と呼んでる例を
提示してみるといいよ。
>>762 そんなこと言ってないけどね。
どっちも正しい、と言ってるはずだけど
再帰の回数って言ったら、どんくらい深く再帰呼び出しされてるかっていう回数。
それは深さ
recursion algorithm でググると recursive algorithm しかでてこねー。
もちろん "recursion algorithm" でググれば出てくるのは知ってる。
よほどマイナーな例を根拠にしてるんだろうか?
>>746 recursion algorithm ならそうなんじゃね?
再帰的なアルゴリズムなら、recursive algorithm だもんね。
>>757 再帰の回数といっているものが俺に正しく伝わっているなら、それはdepthの方がよくないかな
どっちが良いかじゃなくて、どう解釈されるかっていう話だろ。
GetHogeCountRecursively
じゃね? というよりまず、命名以前にクソ使いにくいAPIだと思うが。
ここでそんなことを言ってはならぬ。心の中に留めておくのじゃ。
このスレの質問の9割はそうなんじゃからな。
〜
「再帰の回数」以外の意味で recursion count と呼んでる例とやらはまだか?
衝突判定に必要な要素をもたせたベースクラスなんだけどCollisionableって言う?
ググったけど3000件ぐらいしか出てこなくて不安になった
collidableじゃね
3000件もヒットしてるなら十分だと思うが
その名前を見た者はちゃんと理解できるだろうし
普通に(I)HitTestableでは?
検索ヒット数は無茶苦茶低いけどw
CollisionAwareとか
俺はその衝突判定に必要な要素をもたせたベースクラスのインスタンスが、
どのような仕事をするのか(すべきなのか)が気になるな(スレチだから訊かないけど)
単純に「当たり領域」を表すリージョンか矩形を返すインターフェイスなんじゃないの?
普通に考えて
>>787 それだけなら、もし Collisionable や Collidable という名前だと、
名前が体以上を表している、あるいはややズレているように感じなくもない
むしろ検索ヒット数が少ないという HitTestable の方が合ってそうだ
まぁ
>>783 でもちょっと言ったが、クラスの利用者(プログラマ)が
名前から仕事を正しく連想できれば何でも良いと思うから、些細なことだけど
じゃあヒットテストと衝突イベントハンドリングなら?
それなら Collisionable や Collidable に相応しく感じる
逆に HitTestable は合わない
791 :
781:2012/01/07(土) 13:47:22.09
ありざっした
collidableで行きます
792 :
デフォルトの名無しさん:2012/01/07(土) 14:16:01.75
colidableはともかく、名詞にableって付くんだっけ?
>>792 variableとかまさにその例でしょ
英語的にはよくある
付くこともあるよ
>>792は、ableがつく名詞ってあるんだっけ?
じゃなく、名詞+ableという単語があるんだっけ?って意味か
>>798 補足
名詞 + able の場合は「〜可能」という意味はないから、
Collisionable はおかしいが
+able後が名詞でなくていいって話なら、じゃあchangeableとか
インターフェース名に付けるableって可能の意味に限定されてるのか?
>>802 そんな規則はない
ただ、
>>781 からは「〜に適する」や「〜を好む」のニュアンスは読み取れない
「〜可能」という意味で使用(誤用)した感じを私は受ける
collisionableという単語はありませんので使用した場合は
頭が悪いと思われますので要注意です
他に意味あるの?
>>803 どの辞書を見たのかは知らんが
「〜の性質をもった」は載ってなかった?
>>804 頭が悪いと思われる事なんてどうでも良い
プログラムソースから意図が分かれば十分
日本人にしかわからなかったりして。。
>>807 先ほどは
>>798 のリンク先を参考にした
貴方に指摘されて試しに ODE も見てみたが、
「〜の性質をもった」と解釈できそうな意味は見当たらなかったな
-able
<suffix> forming adjectives meaning
1. able to be
2. due to be
3. subject to
4. relevant to or in accordance with
5. having the quality to
どうだろう、あるかな
(私も相手が上手く汲み取ってくれるから正直言って適当な英語しかできんが)
>5. having the quality to
だよ
三冠陥落で目が覚めた!? フジテレビがついに韓流から決別か
※イメージ画像:『嫌「韓」第二幕! 作られた韓流ブーム 』/宝島社
http://www.menscyzo.com/images/hanryu0106.jpg 「出てけ! 日本が嫌だったら出てけ!」
今月17日に放送を予定している『なかよしテレビ』(フジテレビ系)の番組宣伝VTR中で、マツコ・デラックスが叫んでいる言葉である。
このマツコの言葉に、多くのネットユーザーが素早く反応、多くのスレッドが立ち「よく言った」「韓国ざまぁ」「本放送が楽しみだ」などとマツコを賞賛するコメントが寄せられている。
昨年の10月から放送をスタートしている『なかよしテレビ』。番組のコンセプトは、「日本を含むアジアを中心とした3カ国の出演陣が、さまざまなテーマについてお国自慢をする」というもの。
主に日中韓による討論形式のバラエティなのだが、その内容はバラエティの域を超えて、
各国の人々の本音が垣間見えるものとなっている。
似たような番組として同時期に始まった『世界のみんなに聞いてみた』(TBS系)があるが、3カ国に特化した同番組の構成は、より激しい討論を展開させている。
そんな番組に初出演を果たすマツコは、「K-POPに物申す」というテーマで論を展開している模様。
「日本の芸能界は草野球。韓国の芸能界はプロ野球」と主張する韓国人出演者に対し、「K-POPとか見ているとアメリカのパクリにしか見えない」と言い放ち、
「あんたたちの音楽も受け入れてやってる」「これだけ懐の深い国がどこにあるんだよ!」と主張する。
もちろん、これらの発言は先日から同局で流されている番宣VTRを見たものであり、それ以上でもそれ以下でもない。どういった経緯で、そういった話になったのか、またその後どんな結論になるのかというオチについては、本放送を見るまではわからない。
だが、冒頭に記した「日本が嫌だったら出てけ!」というマツコの言葉は、紛れもなく本人の口から出ている言葉であり、多くのネットユーザーがこの言葉に共感しているのは間違いない。
そしてまた、この番組を放送するのがフジテレビというのも彼らの興味を引く要因になっている。
http://www.youtube.com/watch?v=Q_5Mc532Vts http://www.youtube.com/watch?v=dSGHNKy5IbM
>>811 いや、そうなんだが
>>806 って Collisionable はおかしいという意見を受け手の反論だよね
collision + -able を having the quality to の意味で捉えるということは、
「衝突」という性質を表しているということだよね
quality の「性質」というのは、本質的に備わっている性質だと思うんだ
そう考えると「衝突」という性質ってなんだろ
「衝突する」性質というのも何か違和感あるし
いや、そういう用法も英語圏ではあるというのなら別に良いんだ
私が違和感を感じるというだけだから
collisionableという単語がないという事実が、そういう用法が
ないことを示している
自然言語にはそういう語を作って用いる機会がなかったから辞書に載ってないんだろうね
ただ造語のルールとしてはあるし
プログラミングにおいてはそういう語を用いる機会が有ったのは確か
>>814 ある用法や単語が「ない」ことをどうやって確認する?
ちなみに、collidable の方も辞書にはないと思うぞ
一方俺はベースクラス名にModelまたはCollisionModelを採用した
フィジカルオブジェクト的な名前でいいよ
(・・・フィジカルオブジェクト?)
(峰藤子的なオブジェクトだよな)
2Dの画像をドット単位で計算で作り出すことは、どんな英単語になるのでしょうか?
3Dだったらレンダリングって言いますが…
2Dでもレンダリングって言う
2Dもレンダリングでいいだろ
3D処理後の最後に2D化する処理とか、
フォントを描く処理とかはラスタライズと言うが
ポリゴンをラスタライズしてレンダリングしちゃう!
全部ドローでいいんじゃね
828 :
デフォルトの名無しさん:2012/01/13(金) 11:13:18.92
右上とか左下って意味の定数名を考えてるんだが、
意味が通じて、短い名前ってないかな?
rt
lb
古代のソースだと地図の方角に対応付けてるのも多かったな。
NEとかSWとか。
地図かー
それはちょっと納得だけど、付けたら付けたで不自然だってつっこまれそうw
仕方なくtrightくらいで作っておこうかな。
rtだと右上って分かるけど、trightだとなんだか分からなくなりそうな俺が居るw
上下と左右なら、感覚的に上下を始めに持ってきたい。
二文字にしたら元が分からなくなりそうだしと思ったんだけど、
これも分かりにくいか。
左上┌┐右上
左下└┘右下
>>833 L-Rと聞いて左右のことだと認識する人と、T-Bと聞いて上下だと認識する人、
日本人なら前者のほうが多いんじゃないかと思う。
この仮定が正しいとすれば、tRightよりもrTopの方が右上だと認識しやすいのではないだろうか。
分かりました。
頭にlrのパターンでやることにします。
解決して何よりだが、そもそも
右上とか左下って意味の定数名を短縮する必然性があるのか疑問
>>831 地図のような命名は今でも一般的な慣習だよ
略したがりは病気みたいなもの。
俺の経験上、説得は無理w
この手の人って学習能力がないのか、何度それで失敗しても懲りない。
学習能力がないというより、失敗の原因を分析把握する能力がないのかもしれんが
人それぞれだから説得する気は全くないよ
略記で失敗する、しないは状況によるし
LeftTop や RightBotttom なんかを略す「意図・狙い」を
単純に訊いてみたかっただけだ
>>831 そっちが不自然。
略しないで使うか一般的な表現を使え。
843 :
841:2012/01/13(金) 20:39:25.45
自分で LeftTop や RightBotttom と言っておいて何だが、
今ふと思って英辞郎で左上、右下を見てみたら、
upper left、lower right と出た
調べてみると、top は何か範囲のあるものの上限・上端の「位置」を表す感じだ
ウィンドウ(という範囲のある枠)の上端とか
upper は上の「方向(物理・論理問わず)」を表す感じっぽい
bottom と lower も然り
>>828 がどちらを意図しているかは知らんが
>>843 略さないからBotttomってなるんだよ、というのはさておき、
DIR_UP | DIR_LEFT
とかじゃだめなん
DIR_UP | DIR_DOWNなんてのを避けたいんでしょうな。
そもそもビットワイズのフラグにするような性格のものとも思えんけど
知らないだけだったりして
LeftTop? TopLeftじゃないのか?
化学式記号と和名の対応に同様だな
>>847 LeftTop はダメで TopLeft が良いという根拠は何?
日本語では、ふつうは上右といわずに右上というのと同じようなもんだろ。
Google.com in English でググってヒット数を調べたら
LeftTop : TopLeft = 1 : 3
1:3 程度の差ならどちらでも良いと思うぞ
どちらを使っても、まともな精神の持ち主なら誰が見ても正しく解釈してくれる
たとえ LeftTop を使ってても、プロジェクト内のソースコードの
全ての LeftTop を TopLeft に置換しなきゃならんほどでもない
こんな些細な違いよりも、略記する方がよほど解釈に影響を与えると思うが
と思ったが、ググった結果を改めて見てみると、
"Left Top" の結果は "left, top" でヒットしてるのが多いな
まぁ、拘るほどでもない些細な違いだとは思うが
MSの命名に従うのが最善
せめてGoogleCodeSearchにしろよと。
意外に英語ネイティブの人のはひっかからんが。
きもちのわるい笑いは、自分の心の中に閉じ込めておいてください
ひひひ
づづづw
簡易情報だけをもつオブジェクトに対してインスタンスメソッドを呼び出すことで
詳細情報をデータベースから読み込み、オブジェクトの詳細情報が取得/変更できる状態にしたいと思っています。
そのメソッド名は何がいいですか?
>>863 GetDetailとかではまずい理由があるなら先に言った方がいいと思う
865 :
863:2012/01/15(日) 13:51:53.88
Get〜だと返り値で情報が返ってきそうに見えると思います。
そうではなく、あくまで内部で情報を取得して
オブジェクトの外からその結果を取得できる状態にするメソッドなので。
それと情報を取得するタイミングを意識したいので、Get〜の初回呼び出しで勝手に読み込む
ような形にはしたくありません。
なるほど。
FetchDetail
LoadDetail
RetrieveDetail
PrepareDetail
こんなとこ?
updateDetailedInformation
setDetailedInformationAvailable
loadDatabase
setEditable
enableDetail
detailを名詞的に使うならdetailsがいいと思うけど
詳細情報の取得/変更ができる状態にする
詳細情報の変更ができるようにする
詳細情報の変更の準備をする
PrepareChangeDetails
PrepareModifyDetails
ん?できるようにするメソッドがあれば、逆のメソッドも必要だよな?
BeginChangeDetails
EndChangeDetails
普通はいらないでしょw
人間も一緒だけど、最初にサマリーだけ読みたいのは、全情報を読むのには時間がかかるから。
一旦全情報を読んでからそれを忘れることにしても、ちょっとメモリーの節約になる以外に
メリットがあると思えないが
ExpireDetails
>>874 いらないものを時々捨ててくれるようになってないおかげで長時間使うとひどい目にあうアプリがたくさん。
OSが本気で捨てないからという理由がある場合もあるけどね
loadDetails
unloadDetails
リソースを確保して用済みになったら解放する
当たり前の事
それはDisposeパターンでしょ。
>>893が言うような内容とは全然違う。
違わない
ところでDisposeパターンって何?
loadDatabase
いらんとおもうけど
unloadDatabase
でFA
886 :
デフォルトの名無しさん:2012/01/15(日) 15:44:39.81
それだとデータベース自体を使用可能にするように受け取れる。
>>885 データベース以外から読むように変えたらメソッド名も変えないといけないのかぁ。
>>871 えー そんなこと言うんなら enableTheDetail だろ
それよか enableDetail(ry って思っとけばいい
対象がデータアクセスできる状態にすることを指すカッコイイ英語の呼び方がありそうな気がするんだが出てこないので悶々としているw
setPermission
それかもしかして unlock ?
・・・そのメソッドが呼ばれたのであれば、データベースからそのインスタンスにデータが読み込まれるんだよな?
そこに視点を置けば
LoadDetails
LoadDetailsFromDatabase
LoadDetailsFromDB
かな
かな
メソッド名は慣例上、小文字から始めたい
class Base {
virtual ~Base(void) {}
virtual char const * GetName() const = 0;
};
class Hoge : public Base {
public:
static char const * GetName_() { return "Hoge"; }
char const * GetName() const { return GetName_(); }
};
名前かぶっちゃったんだけどどうしよう
両方共publicにしたいからアンダースコアとかで誤魔化したくない
EnsureDetails
>>894 その情報だけでは、スレの趣旨に反するが、設計が悪いとしか言えない
そもそもクラスメソッドの GetName_ とインスタンスメソッドの GetName は、
それぞれどういう役目なの?
GetStaticName
GetDynamicName
しぃしゃぁぷは、メソッド名の最初大文字なのか。。。。。。。。。。
>>894 既に突っ込まれてるとおり質問が無茶振り過ぎ
>>898 最近はCでもキャメルが多いでしょ。
Win32なんて昔からそうだけど。
ヤクザさんは胃の中の蛙だなw
>>901 おまえ.isBaka() == TRUE
>>902 言われた本人が無視してるんだからスルーしようよ。
頼むよ...
>>906 あなたって凄いのね!!!!!!!!!!!!!!!!!
>>894 俺はそういうばあいはHoge.GetName()とHoge::GetStaticName()にする
_あんだーばー
~にょろ
|たてぼう
.てん
,こんま
_ アンダースコア
~ チルダ
| セパレート
. ドット
, カンマ
_ アンダースコア
~ チルダ
| オア
. ドット
, てん
_ アンダーヘア
~ チンコ
| もっとチンコ
. 玉
, 毛玉
>>912 息子が帰宅後、自分の部屋に直行
こんなレスを書いていたとは・・・
チンコだけに
決学彩雲国差異
ディレクトリを一段だけ探すのを find()、
再帰的に辿って探すのを find_recursively() という名前にしています。
しかしよく使うのは find_recursively() のほうで、find()のほうはほとんど使いません。
そのため、よくつかう方のfind_recursively()をもっと短い名前にしたいと思います。
どんな名前がいいでしょうか。
find_recursively()をfind()にして、find()をもっと別の名前にするのが吉?
917 :
デフォルトの名無しさん:2012/01/16(月) 21:34:38.14
現状を変えないのが吉
>>916 指定するディレクトリ内に指定する名前が存在するかどうかを検査する方をexistsにするとか。
そもそも「一段だけ探す」って日本語は変だ。
「あるかないか調べる」でしょ。だからexists。
find <--> findRec
find <--> findR
findAt <--> find
921 :
デフォルトの名無しさん:2012/01/17(火) 21:10:01.90
>>916 find_recursivelyをfindにして、findをfind_no_recursively。
個人的にはfind(bool recursive)。
ついでに質問。
countとspanという名前のプロパティを持つクラスで、引数xを取るメソッドが繰り返し呼び出される。
メソッドは x と count + span を比較し、x の方が大きければ count へ x を代入し、trueを返す。
そうでなければfalseを返す。
という振る舞いをするクラスなんだが、なんて名前にしたものかと。
>>921 だから質問が無茶振りだって....
っていうか、それって(x - count)の絶対値とspanを比較しなくて大丈夫なの?
電子回路のシュミットトリガー的というか、大昔のTVゲームのグラディウスのオプション的な
挙動が目的だと想像するんだけど。
なんで挙動で命名しようとするのか
用途で命名するべきでは
Add(x)でいいんだよ
細かい内容は隠蔽されてるから良いんじゃねーか
しきい値超えた時だけたされようがたされまいがぜんぜん違う値がたされようが
そんなことはクラス利用者にとってはどうでもいいんだよ
>>921 それのメソッドはクラス内だけの計算の為に使われる非公開メソッドではなく、
そのクラスを利用する側に対して公開するものなのだろう
であれば、メソッド名はそのクラス自身が持つ役割と無関係ではあり得ない
そのクラスの役割は何だろう?
それともう一つ
そのメソッドはクラスが持つ状態を変化させるものでろあう
そして、引数によって無条件に変化させるのではなく、
count + span と比較することによってある種の制約を課している
つまり状態変化とその制約
この事もメソッドの命名に影響を与える
メソッドを利用するプログラマには、メソッド名から
状態が変化する事を読み取ってほしいのか、
制約がある事を読み取ってほしいのか、両方なのか
状態変化の内容も読み取れるようにしたいのか
どのような制約があるのかも取れるようにしたいのか
などなど
どのような情報をメソッド名から読み取ってほしいのだろう?
全ての情報をメソッド名に盛り込むと返って分かりにくくなるから、
もっとも重要な情報を簡潔にしてメソッド名に、
あとの情報はコメントやドキュメントに回す必要がある
>>925 乱暴すぎ
そんなことがクラス利用者にとってどうでもいいかどうかは、場合による
今はどのような「場合」なのかを質問者が明確に説明していないのが問題
じゃあTryAdd(x)でいいだろ
利用者はxを足すことを考えてるがその結果がどうなるかはクラスによる
「しきい値以上なら足す」なんて馬鹿正直にめんどくさいメソッド付けちまったら変更に弱すぎる
しきい値以上でなかったら半分足す仕様に変えたいなーって上司がぼやいたら関数名と利用者すべて書き換えるつもりか?
処理の詳細を匂わせるメソッド名じゃカプセル化の意味が無いんだよ
むしろ何やるのか想像も付かないようなカッコいい名前つければいんじゃね?
eternalShiningGaraxianAdd()
それのどの辺りがカッコいいのか、ちょっと自慢気に解説してくれないか
なにびびってAddとかつけてんの
車田正美が見開きページで必殺技を叫んでいる体で
まあ、そもそも質問者のレスを読むと、聞きたいのはクラス名のように読めるんだけどさ。
もっともあの文章が質問者の意図を正確に表現したものかどうか怪しいけどw
どのスレでもそうだけど、質問者は書き込みボタンを早漏気味にクリックする前に
よくてめえの文章を推敲して欲しいもんだよね。
935 :
921:2012/01/17(火) 22:41:50.76
あー、もっと具体的に書くべきだったか。
具体的に書くと、16ミリ秒単位で回ってるスレッド内でキー入力をチェックしてる
んだが、不用意にキー入力判定が連続入力されないようにしたい、と。
一度キー入力を受け付けたら100ミリ秒(前回の例でのspan)経つまでは
入力を拒否(falseを返す)、それ以上経っていたら入力を許容(trueを返す)。
countは入力を受け付けた時間を記録しているだけで、countもspanも
別に名前にこだわりはない。固定してるように読めるね。すまん。
で、当初はKeyCheckerって名前にしようと思っていたんだが、他に16ミリ秒毎に
実施する必要がない処理がいくつかあるので、汎用的に
「前回受け付けてから一定期間が経過しているかどうか」を表すクラスにして
あっちこっちで使い回そう、と思ったわけですわ。
で、そのクラス名をなんにしたもんか、と。中途半端に処理内容を書く
んじゃなくてどういう目的のクラスなのかを書くべきだったね。すまん。
というわけで、内部的に値を足し込むことが目的じゃないのでAdd(x)やTryAdd(x)は
ちょっとアレな感じ。すまんねわざわざ書いてもらったのに。
それだったらInputでもなんでもわかりやすい名前にしたほうがいい
入力クラスを利用する側からすれば入力クラスが実際には内部的に少し待ってるなんてことを意識したくないはずだ
TimeoutCheckerとかかなあ。
でも、これって普通はクラスにするまでもないような気もするけどねえ....
938 :
デフォルトの名無しさん:2012/01/17(火) 23:04:15.83
CheckElapsedTime()
939 :
921:2012/01/17(火) 23:19:26.83
TimeoutCheckerか!なるほどそれでいきます。
なんとなく目覚まし時計的なイメージでAlarmにしてたんだけど
警報的な意味合いが感じられてイマイチだよなぁ、と思ってて。
他の人もどうもありがとう。助かりました。
何にでも名前をつけたい病
>>939 自分で提案しといてあれだけど、この名前にはちょっと疑問がないわけでもないんだよね。
というのは、使い方としてはたぶん、
void start(int countDown)
みたいなメソッドを呼んでカウントダウンを開始することになると思うんだが、
(1) このメソッドを呼ぶ前
(2) このメソッドを読んでから指定時間経過後
たぶん欲しいのは、この二つのどちらかの場合trueを返すメソッドな訳だよね?
仮にこれをクラス名に引きずられてIsTimoutとかしちゃうと、上の(1)の場合にも
trueを返すのが不自然に感じられるような気がしないでもない。
まあ気にしなきゃ済む問題かもしれんが。
>>1 命名規則についてはどこで議論しろというんだ
944 :
921:2012/01/18(水) 00:36:46.11
>>941 isTimeoutが最初に呼ばれる時は初期値0と比較して、カウントダウンではなく
カウントアップで経過確認してるのでまぁいいかなと。
疑似コード的に書くと以下のような感じ。
void main() {
TimeoutChecker keyChecker(100), fpsChecker(1000), ...;
while (true) {
time = timeGetTime();
...;
if (keyChecker.isTimeout(time)) ...;
if (fpsChecker.isTimeout(time)) ...;
...;
}
}
とまぁ、FPSみたいにせいぜい1秒単位で処理すればいいものや、
パフォーマンスが悪いときに動的に一部の処理の実行頻度を落としたり、
ということをやろうとするとクラス化してまとめておいた方が
管理しやすいよね、というだけの話です。
>>928 なんでAddAdd言ってるのかわからないんだけど、
メソッドの処理としては、countにxを代入するかしないか、だよな。
>>935 6フレに1回しか入力できないとかシンクロ連射涙目じゃん
設計が間違ってると名前付も上手くいかないことが多い
いい名前が思い浮かばなかったらまずはコードを見直すことから始めよう
今回のケースはまさにそれです
理念としては同意するんだがな。
>>947 しみじみ同意。
俺もその境地にたどり着いた。
そりゃ単に機械的に書き下せない未知のコードパターンに嵌まり込んで
抜け出せず思考停止状態に成ってるだけだわ
言語が何かしらんけど
FPS fps;
FrameCount frameCountForKeyInput;
String getKeyStateInsensitive()
{
if (frameCountForKeyInput.getSecond(fps) > 0.1) {
frameCountForKeyInput.reset();
return getKeyState();
}
return "";
}
でいいんじゃない
個人的にタイムアウトチェッカーとかカタカナ英語過ぎて許せないな
糞すぎ
953 :
デフォルトの名無しさん:2012/01/18(水) 16:14:44.08
TimeoutCheckerがカタカナ英語でない事くらいちょっとググればわかるだろうに
>>951 100ms経たないとキーステートを取得できない関数をほしがってる人がどこに
>>954 すぐ気づいたけど直すの簡単だし変数名のスレだからまあいいかとそのまま投稿w
>>944 > FPSみたいにせいぜい1秒単位で処理すればいいもの
何このクソゲー
FPSを「一秒毎にフレーム更新するもの」って考えてるんじゃね。
> パフォーマンスが悪いときに動的に一部の処理の実行頻度を落としたり
これを実現するためのコードが無駄に重いっていう本末転倒
こんなもの全然重くねーよ
ど素人が
重いかどうかを勝手に決められても困る
アプリ上の一つの機能を実現する複数のオブジェクト群がある
オブジェクト群を生成し適切に参照関係を結びそれぞれを適切な管理クラスに登録して
初めてユーザーがその機能を扱える状態になる
この「オブジェクト群を生成し適切に参照関係を結びそれぞれを適切な管理クラスに登録する」までを隠蔽して一つの命令にしたんだが何かいい名前はないだろうか
CreateXXXだと単一オブジェクトの生成のみのイメージがあるのでちょっと気に入らない
readyとか
deployとかcomposeとか
>>961 Abstract Factoryパターン的な発想?
だとしたら、メソッド名よりもそのオブジェクト郡の生成と関連付けを行う
クラスのクラス名に凝った方が良いのでは?
メソッド名は普通にgetXXXXで良いように思うけど。
>>961 オブジェクト群の生成や管理を隠しておいて十分なら、
クラスの中にぶち込んで、そいつをユーザに使わせたら?
シンプルなインタフェースだけ公開して。
隠し切れずに部分的に外に出てたり、外の物を積極的に使ったりする場合は、
GoF的にはFacadeパターンってのがある。
initialize
setup
prepare
967 :
デフォルトの名無しさん:2012/01/18(水) 23:29:57.40
DirectShowでFilter群を扱うみたいな話か
BuildXXX
968 :
デフォルトの名無しさん:2012/01/18(水) 23:33:50.83
>>967 追記
BuidXXXと書いたけど
XXXはオブジェクト群の意味するものの名前
DirectShowで言えばBuildFilterじゃなくてBuildGraphという感じ
constructXXX
970 :
961:2012/01/19(木) 00:22:35.33
どうもです
辞書で日本語訳を見たところdeployが感覚的に一番近い感じでした
システムに要素を配置する的なニュアンスで
それでいいなら初めからそうしろよ。
class アプリ上での機能の名前 {
オブジェクト群;
public:
コンストラクタ(登録するべき管理クラス群) {/*生成リンク登録*/}
} ;
寿命管理用のホルダー.insert(new アプリ上での機能の名前(管理クラス群)) ;
?
命名に悩んでいると言うより、困っている事。
コードを延々と書き進めていたら、変数命名の要素でchrとcharが
入り乱れているのに気が付いた。 chrcodeとかchardataとかchrlistとか。
どちらも伝統ある省略法だけど、使い分ける事は可能かな?
それとも、単純に短い方が正義?
伝統といっても一部だけで広くからは批判されてる部類のもの
略しないのがトレンド
976 :
974:2012/01/21(土) 23:00:39.15
そうなんだ、最近は省略しないんだ。
CharacterCode、CharacterData、CharacterList・・・長過ぎませんか?(^^;
まあいいや、試しに実際にコードを置き換えてみます。
早い回答有難う御座います。
糞長い変数名は命名者のオナニー
親切のつもりだろうが現実的には可読性を著しく低下させる
変数名は省略しコメントにロングネームを添えよ
変数名で直感的に理解できるのならコメントの必要はないし、
コメントが必要な変数名はソースの可読性を低下させる
コメントは「処理や計算」を目で追う場合のサポートとして付けるべき
サポートが必要な変数名はクソ
価値観の異なる人が多くいる環境は省略しないな
大量の省略表記規約がある環境はストレスマッハ
だが、あらゆる省略表記が混在する地獄よりはまし
変数が適切な空間にあれば変数名は短くシンプルに済むはずなんだ
980 :
デフォルトの名無しさん:2012/01/21(土) 23:44:02.95
職場の人間をフルネームで呼んだりしないのと同じ
識別子を適切に設定してさえいれば短いほうが円滑に物事が回る
いちいち長い名前を付けなければ混乱するという状況に落った場合
それは名前付以け前のどこかに問題があるはずだ
名前空間の使い方を間違えてるとか、スコープが不適切な変数とかね
974みたいに略し方がばらばらだと混乱が起きるだけ
>>980 また病気が始まったな。
職場の人間はよく知っているし、そもそも人の名前は機能や意味を表すためのものではないから
ここでの類推としてはまったく不適切。
名前空間まで含めた完全修飾名を普通は使わないたとえとしてなら適切。
>>976 名前に求められることは、そこから変数や関数の意味や機能を読み取れることだから、
その意味では個人的はcharなら許容範囲だとは思う。
>>974 chrとかcharとかcharacterって一体何の情報何だろう
もしかして型名?
>>983 「参照先のビット列を文字コードとして解釈することが求められている」
と読み取れる
スコープ広いのはそれなりに長めの名前にする。
スコープ狭いのはぶっちゃけ1文字とかでもいい。
省略表記の規約って何が有る?
・母音を抜く
・文字数で切る
・語素の境界で切る
・複合語の頭文字を並べる
追加して
・音節の境界で切る
・英語の一般的な省略を使う
db, id, ok くらいはまあいいとして、グローバルスコープでxferとか付けちゃうのは微妙
○ number → num
× count → cnt
>>984 だったらutf8だとかeucだとか文字エンコードも併記すべきな気がするぞ…