クラス名・変数名に迷ったら書き込むスレ。Part16
5 :
デフォルトの名無しさん :2009/11/21(土) 18:59:51
age
ゲーム用語の名称ってすごい悩むんだがどうしたもんか Fireball()とかゲームで使う名前をそのまま使うのか MagicXXXみたいにコード番号を使ったほうがいいのか プロの人はどんな感じでやってるんですかね? プロジェクトによって違うだろうけどこういうのが多いとかわかりやすいとか
>>6 おまえは var000 なんて変数名が良いかもしれない、とか迷うのか?
うーんでも hokutohyakuretukenn nanntosuityoukennougi obutuhasyoudokudaaaaa とか uuurrryyy yamabukiironohamonsissou zetsubooooodaneeeeeee とかと比べるとちょっと悩みませんかね?
>>8 だから、なんで?
そういう名前の何が問題なの?何が気に入らないの?
そういうのはハードコーディングしないで、 データとして外部に出したいところではある。
そういう技固有の変数って、どうせごくごく狭い空間でしか出てこないと思うから、 別にIDでも固有名でもいいじゃんって思ってしまう。 自分だったらば、データを書き換えたときにコードを変更しなくてもいいように カテゴリ+インデックスの略称をつけるな。
まぁそういう場合はvar000みたいにIDにすべき uuurrryyyでやってて後でwrrrrryyyyyに変えなくちゃならない事に気付くとかアホらしい リソース一つ一つに固有変数割り当てる時点でアホらしいけどね
魔法とかはゲームにもよるだろうけど外出し派だなぁ。 マリオみたいに特殊技能が少なくてそれぞれの効果の差が大きいのだったら ハードコーディングするし、Fireballみたいな名前付けるけど。 ぶっちゃけ変な名前付けてもIDE使ってるなら性能のいいリファクタリング機能が付いてるだろし 後から変更なんてぜんぜんありっしょ。 複数人で開発してるなら辞書のメンテナにそこらへんまかせるしかないけど。
ていうか処理を外に出すってどうやってるの?
もちろん スクリプトで
もちろん当方女子高生です
int joshikousei=17;
Dim joshikousei As integer = 17
IDは個々の、Tagはグループの識別番号でおk?
多分みんなそんな認識だと思う
IDは「それ」を直接表すもの Tagは「それ」の属性を表すもの
そんな明確な区別なんてないでしょ。 どっちも似たような用途で使われる言葉だと思う。 強いて言えば、IDは語義上重複は許されないが、Tagの場合は必ずしもそうではないぐらい。
IDは別物 IDだけは属性じゃない それ以外のあらゆる要素はIDの持つ属性と言える IDにTagをつけたり、TagがIDを持ってたり、TagにTagをつける事は出来るが、IDにIDをつける事だけは出来ない だから同列に語って「ちょっとした差」などと考えるのだけは間違い 実際人とコミュニケーションとる目的で使う場合はちょっとした差扱いで良いけどな
いや、出来ないなんてことは無いでしょ。 そのアプリケーション内での定義の問題だよそんなん。
「ログインにはUser IDを使用します。」 はい、わかりました。 「ログインにはUser Tagを使用します。」 ちょっと何言ってんのかわかんないっすね。
そりゃUserIDって単語の方が「一般的」ってだけの話じゃないかしらん 例え話として不適当じゃね?
tagって札だろ??? そもそもIDと別レイヤの単語だと思うんだがどうか 認識票のことID-Tagって言うよな
>>26 xboxはログインにGamer Tagを使うな
あるリソースの生成・管理をするクラス。 createでリソースを操作するI/Fを返します。 破棄は、releaseか、I/F自身でdelete thisのどちらか(未定) 言語はC++。 候補 ResourceManager -> リソースの何を管理するのか意味が伝わりにくい ResourceCreator -> releaseを持つようになった場合、仕事がcreateのみでは無くなるので、微妙 何かいい名前ありませんでしょうか。
>>25 だからさ、IDは言い換えればメモリの「物理アドレス」なのよ
IDにIDを付けられるって、そりゃポインタと勘違いしてるんじゃね
物理アドレス==ポインタって言ってる奴が居たらフルボッコでしょ
会話上は混同され易いし、文脈で分かるから問題無いことが多いけど、別物だと言う理解は必要
なんか痛いのがいるな
>>30 ResourceManagerでいいんじゃないの?
>>29 ありゃGamer TagじゃなくてGamertagだけどな
どっちでも一緒ですがな。 UserIDとUser IDとuseridが別物かよ?
>>34 最初カタカナで書こうと思ったけど26に合わせてあの形にしてみた
意味が変わってしまったのなら申し訳ない
Logoffが気にならない日本人的には全く同じだけど 少なくともネイティブ的にはLog offだし。 こういう話題に参加したいならもう少しネイティブがどう考えてるか勉強しような。
つまりGamertagはSign Inだから26に絡めるのは不適切ってことですか
>>35 一般的な文章上でUserIDなんぞ書かん
絶対User ID
固有名詞的なニュアンスを含めたい時だけスペース省いてUseridとか書く Useridはありえんけど
なんか質問者の意図と全然関係無いところで頑張ってないかい
>>33 いいような気もするんですが、
hogeManager -> hogeの何を管理してるの?
とソースを見直す事があるので、
仕事を連想できそうな、いいクラス名がないかなと思いまして……
なんで態々ゲーマータグって名前なのか調べたら、やっぱ自由に変更できるんじゃねえか。 可変だからGamer Idって名前にしなかったんだろうよ。何となくなんかでtagって単語使い分けてねぇ。
User IDが変更可能なシステムも普通にあるんですが。
User IDとかGamertagとか本質的じゃない例えなんかだすからイミフになるんだよ Usernameでログインするやつとかどーすんだよ
>>30 破棄は普通に delete でいけるようにしとけ。
日本語で「管理する」としか説明できないんなら ResouceManager でいいよ。
〜Manager が嫌だってんなら、まずは日本語で役割や必要性をはっきり説明
できるようになってから名前を考えてあげればいい。
>>45 とりあえず、Managerでいって、
いいのが浮かんだら名前をつけてあげようと思います。
なんか、Managerのままになりそうですけど……
単純にFactoryってのもありかな。
33,45さんありがとう。
個数不明のデータをコレクションにいれるときに、 一旦リストに入れてから配列にする場合のリストの名称って何が適当でしょうか?
ArrayList
ごめんなさい、作業を行うときの変数名でお願いします。
buffer という語が入るような気がする。
tmpList
>>50 確かにbufferがしっくりきますね。なんで出てこなかったんだろう・・・
>>50-51 ありがとうです。
listでいいじゃん?
ためこんでおいてあとでなんかするという意味が入る分 バッファのほうが比較的よさそう。
バッファって言葉もかなり本来の意味と違う用法がされてる言葉だな考えてみると…
普通に考えれば、
>>47 のようなものはListか、さもなければ
HogeBuilderってとこじゃないのかな。
builderか、おまえなかなかやるな
作業領域として使うリスト構造、なのかな。 tmp listとかwork listとか
listにツッコんでからvecなりarrayに突っ込むだけだから
いやいや んなもんlでいいよ 考えるだけ時間の無駄
だよな。 多分ローカル変数みたいなもんだろし。
標準ライブラリに含まれるクラスや関数と名前が被る場合って どうしてます? 1. 無理矢理もしくはプリフィックス、サフィックス付けて違う名前をあてる 2. 名前空間がわけられてるなら良しとして同じ名前を付ける 例えば、2chのスレッドをクラス化した場合にThreadって名前を付けると 標準で含まれてるのと被る言語って多いですよね。
>>61 名前空間分けろ。
っていうか、標準で名前空間分かれてない言語って何だ?
標準はstd::hoge_hogeだからmyns::HogeHogeとかにしとけばまずかぶらないと思うんだが・・・ どうしても命名規則を変えられない事情があるんならそのための名前空間だから名前空間を使う
違う名前を付けるだけのこと
>>61 名前空間がわけられているなら〜、から推測してC++?
なら、2。
Cでない限り、1にする利点は無いと思うけど……
何か利点あるの?
とりあえず標準とかぶらない命名規則でやって 現状でどうしようもなかったら名前空間だな
.NETのルールでは「一緒に使うなら名前空間が別でも同じ名前は付けるな」ということになってる
>>67 へぇ〜。
なんか変な感じ。名前空間の意味無いような……
多分、深い理由あるんでしょうねきっと。
2chの例でいくとThreadはいくら名前空間分けられててもあんまりだと思う。
ローカル変数どころか2,3行しか使わんでしょ 言ってる事を見る限り それにHogeBuilderと命名とかパネェw
>>68 名前空間を救済処置として考えると
人間の誤読を避けるために可能なら別の名前使えってのは別に問題ないような。
なんでもかんでも完全修飾で記述するっていうなら別に良いんだろうけど。
>>68 C#やVBはusingを多用しても全く問題のない設計になってるからな
それは別にしても紛らわしいのは間違いないからそりゃガイドラインとしては避けさせるようにするだろう
人によって大分差があるなぁ。 俺も標準で用意されてるのと衝突する場合は別名付ける派だな。紛らわしい。
>>71 >>72 情報ありがとう。勉強になりました。
たしかに、名前空間 + 違う命名の方がスマートなような気がしてきた。
>>68 いや、単純に同じ名前にすると大抵の人にとって不便だからだよ
完全装飾マニアなら名前空間フル活用で同名にしておk
using使えばすっきり1ライナーで書ける様な事も、完全装飾にして2行に渡るような記述は俺はしたくないな
そもそも 2ch のスレを Thread って命名しないわな。ちょっとわかり辛い。 自分なら ArticleThread とか BBSThread とかそんなのにする。
>>75 なるへそ。
>using使えば〜
私は、using使わず、明示的に分かるように、2行で書くタイプ。
この考え方の違いか(笑)
usingするとトラブルが多発するC++の事情がおかしいだけ
完全修飾は自分の会社名とか書かなきゃいけなくなるからあんまりやりたくないなぁ in Java、C#
>>76 どう見てもその場で考えた一例なんだからそう言う方向で突っ込んでも意味なくね
なんか即興で考えたであろう例に噛み付きたがる馬鹿の子がいるな
どう考えても無意味に噛み付きたがる馬鹿の子は
>>80-81 の方に見えるけどな。
>>76 の突っ込みは別に適切にしか思えない。
同じ穴のなんとか
うんうん、指摘されて悔しかったんだね
さて次の方どうぞ
C++ でboolのメンバ変数を設定・参照したいんだけど 1) void SetEnable(bool value); bool GetEnable(); 2) void SetEnable(bool value); bool IsEnabled(); 3) void Enable(); void Disable(); bool IsEnabled(); 4) bool Enable(); void Enable(bool value); それぞれの長所と短所を教えて。一番長所が多いやつにするから。
じゃあ長所だけ聞けよ。。。
いちおうデメリットも聞いておかないと。
ゲーム用GUIコントロールの状態を表す定数なんだけど、 変数名は STAT_NULL // コントロールがまだ存在しない STAT_READY // 生成されてはいるが有効にはなってない(いつでも有効にできる状態) STAT_OPENING // 有効化中(=出現アニメ中) STAT_AVAILABLE // 出現した(=出現アニメ完了してコントロールが利用可能な状態になっている) STAT_CLOSING // 消えるアニメ中 STAT_CLOSED //消えた(いつ削除してもよい状態) で通じるかな?
>>86 2)、4)はあり得ないでしょ。
2)
普通「Set〜ときたらGet〜も有るだろう」と読む人に想像させるだろうからその期待を裏切るのはよろしくない。
4)
同じ関数名の引数違いで設定/取得の役割が変わるとバグが見つけづらくなる。
単発で
xxx.Enable();
とかされたとき、有効にしたいのか値を取得しようとして戻り値を受け損ねたのかわからん。
1)、3)は好みの問題になるかもしれないけど、個人的には1)はダサい印象がある。
xxx.SetEnable( false );
ってなんか微妙にひっかかりを感じるし。
後、そのクラスの概要と何が有効無効にされるのかがわからんと何とも。
極端な話、enable/disableじゃない方が良い場合もあるのではないかと。
(permit/forbidとか対になる単語は多いだろうし)
えっ?
C++のiteratorにitをよく使ってるんだけど、短いスコープに二つイテレータが出てきたらどうしよう it jt ktとかさすがにありえないよね・・・
it2
it ite iter itera
イテレーターなんだから難しく考えずi,j,k,l・・・でいいと思うが
iの由来はindexだからイテレーターとは違う 嘘由来に騙されて紛らわしい事せんでくれ
it2派だな。 jt, ktもi, j, kの流れからするとおもしろいけど 一瞬考えちゃうからなぁ。
>>94 私は、ite派。
処理内容で、
iIte -> input iterator
oIte -> output iterator
とか。
うまく名前がつけられない場合は、
ite1, ite2。
iterかitrだな ただ、itrは自分でもどうかと最近思うようになってきた
itってのは、代名詞のitとiteratorを掛けてるのかな。 perlの$_的な意味で。
Vector<int> xxxx; Vector<int> yyyy; に対して、プログラム全体はラクダ記法だったにも関わらず xxxx_itr, yyyy_itr ってつけてる
関数内の処理の一部であるXXXを行うか行わないかを決める、bool型の引数の名前をお願いします。
XXXp
C++で2つの同名の関数が別々のネームスペースにある時、 その関数をネームスペース指定なしで呼び出そうとすると、エラーに「曖昧」と出ますよね。 この意味での「曖昧」って英語にすると何になるんでしょうか? 辞書で「曖昧」「曖昧な」を検索するとたくさん出てきてしまいます。
(argumentのaを頭につける) AXXX aXXX a_XXX
>>108 predicate: (真偽を返す)述語
lisp流
A: food-p? 飯食う?
B: nil うんにゃ
>>109 コンパイラとかのツールを英語環境で動かせばわかるが、 ambiguous
>>110 省略しすぎて分かりにくい気がします。
bool型らしく、行う/行わないを表している事が分かる名前はないでしょうか?
>>111 述語っていう感じじゃないです。
void func(bool XXX){
/* 省略 */
if (XXX) { /* XXXな処理 */ }
/* 省略 */
}
>>115 prepareが行う処理と仮定。
void func(bool doPrepare)
{
if (doPrepare) {
prepare();
}
}
かなぁ。
でも、何とかして、引数のフラグを追い出すようにするかも。
void funcWithPrepare(); -> prepareするやつ。
void func(); -> しないやつ。
>>116 動詞から始まっていると関数名っぽくてbool型としてはどうかなと思いましたが、気にするほどでもないですかね?
別の関数にする方法は
>>115 の例の/* 省略 */の部分をfuncImplみたいな関数にしないと保守できないのが面倒くさいと思いました。
でも、こっちの方が正当なやり方なんですかね。
>>115 そんなものXXXによって変わるだろ。
たとえば XXX が画面更新ならば、void func(bool refreshScreen) でも十分だろうし、
XXXがバックアップ処理なら void func(bool backupRequired)とか。
>>118 XXXは処理なので、関数名のように動詞から始まる名前のつもりで書きました。
つまりvoid func(bool refreshScreen) もvoid func(bool backupRequired)もvoid func(bool XXX)と考えています。
行う/行わないを表すboolだから名前に何かを付け加えるっていう感じではないというのが結論ですかね。
bool refresh bool backup 両方分かるし、何もつけんで動詞だけ書きゃ良い
だね。 動詞でいいし、もしくは XXXXFlag とでもするとか。
>>120 動詞のままだと、if の中がブサイクになる。
if (refresh) とか if (backup) とか、わけわからん。
if (refreshFlag) なら、ちょっとマシ。
if (refreshFlag == true) なら読みやすいけど、trueとの比較はできればやりたくない。
引数が形容詞か分詞ならばif文で使うときに自然な感じに使えるんだけど。
isRefreshじゃだめなのか? メソッドとごっちゃになるむきもあるが。
関数ポインタとか悩む void (*active_update)(void); active_updater = update_opening_scene; (*active_update)(); どうもしっくりこない動詞にするのか名詞にするのか
rが抜けてるからとか
>>125 別にそのままでも悪くは無いと思う。
変数でもポインタだからって特に名前変えたりしないし。
>>106 has+名詞とかどうだろう。
hasRefreshmentとか、hasBackupとか
一様乱数を取得する関数なんだけど generate_uniform_random_number まではちょっと長いけどまあいいとして [a, b]と[a, b)などの境界をうまく表した名前はないだろうか
関数の名前じゃなくて引数にする
Camel
rand_int(A) -- [0, A) rand_int(A, B) -- [A, B] rand_float() -- [0, 1] だけ用意して後は利用者に任せる
特に説明が無ければ全部半開区間が普通だと思ってたけどそうでもない?
int rand(int min, int max, Interval interval){...} enum Interval { Closed,//[a,b] Open,//(a,b) ClosedOpen,//[a,b) OpenClosed,//(a,b] }
func(int lower, int upper, const char *interval); func(A, B, "[]"); // [A,B] func(A, B, "[)"); // [A, B) func(A, B, "(]"); // (A, B] func(A, B, "()"); // (A, B) func(A, B, ""); // assertion error !
Hoge( OnBound(0) , OnBound(1) ); // [0,1] Hoge( NotOnBound(0) , NotOnBound(1) ); // (0,1) なんか長いし
func( char begin, int a, int b, char end); func( '[', 0, 1, ']') // [0, 1] func( '(', 0, 1, ']') // (0, 1] func( '[', 0, 1, ')') // [0, 1) func( '(', 0, 1, ')') // (0, 1) もしくは func( char begin, int n, char end); func( '[', 1, ']') // [0, 1] func( '[', 1, ']') + 3 // [0+3, 1+3]
char は使いたくないな、なんとなく。 でも enum とかだと OPEN だの CLOSE になるから冗長になるんだよなぁ。
IIR: inclusive-inclusive range IER: inclusive-exclusive range
Inclusive upper bound Exclusive upper bound
142 :
デフォルトの名無しさん :2009/11/29(日) 03:23:37
3つの整数を引数として持ち、 それぞれ開始点 foo、終了点 bar、最大増減幅 baz とします。 fooの値から、baz分だけbarに近付けた値を返す、 という関数の名前、および仮引数の名前をお願いします。 例えばbarが100、bazが10だったとして、 90≦foo≦110 なら100を、foo<90なら foo+bazの値を、110<fooならfoo-bazの値を返します。
step
GetNext(start, end, step)
関数名は両方から値が近づいていくようなニュアンスの方がいいかなぁ。 step も start が end に近い場合はそのまんま増減するわけじゃないんだよな。 ゲームの追尾弾のフレーム毎の移動ルーチンかな?
100ってなんだ?
advance(start, target, max_step)
>>142 要するにGUIの吸着動作みたいなことがしたいんだろうか。
int AttractToGrid(int position, int gridInterval, int radius){...}
とか
あーでも
>>142 をよく読むと吸着動作ともちょっと違うな・・・
ひょっとして
>>142 は座標の増減と、吸着による座標の補正を
無理に一つにしようとしてるんじゃないのか。
だとしたら、単に吸着動作による座標の補正だけの関数をまず考えるべきだと思うが。
あんまり汎用的な処理じゃなさそうだし、何に使うかって観点から名前付けた方が よさそうな予感
>>142 approach(begin, end, speed)
propose(begin, end, speed)
153 :
142 :2009/11/29(日) 17:32:00
ありがとうございます。
関数名はAttractかApproachにしようと思います。引数はbegin,target,stepあたりで。
>>145 確かに、ゲームではよく使いそうな処理ですね。
>>148-149 GUIに例えるなら、ゆっくり動いて吸着する……という感じでしょうか。
そのままではどんな距離でも反応しちゃうので、あらかじめ最も近いグリッドを求める必要があるでしょうが。
増減と吸着をまとめたいというのは正しいですが、
複雑な計算式で数値を求めるわけでもなく、if〜else if〜elseだけで終わる処理なんですよね。
>>150 終了点を0にすると、結構使う場面はありそうです。絶対値に対してデクリメントするような感じで。
まあ、そのまま書いても数行ですけれど。
>>152 実に良いセンス
そうでもない
同じような物を示す変数で、単位だけが違うような場合ってどうしてる? 変数の型も同じとして。 minHoge secHoge msecHogeとか?
>>155 同類のバージョン違いのような物?は末尾を変えてる。
xxxYyyMin
xxxYyySec
xxxYyyMsec
>>155 だとアプリケーションハンガリアンってやつだな。
>>155 二重管理を避けるのはプログラミングでも仕事でも基本中の基本だよ。
二重管理とは別だと思うんだが・・・
>>159 そう?よく考えてみた方がいいと思うよ。
161 :
155 :2009/11/30(月) 20:42:40
>156 なるほど、後ろもアリか。 >157 アプリケーションハンガリアンって悪者扱いされてない方のハンガリアンだっけ。 >158-160 単位変換のコストが重い場合、もしくは同列に扱われるけど別の値の場合っていうパターンも。
>>161 「同列に扱われるけど別の値」は何が言いたいのかよく理解できないけど、
(別の値なら名前を統一する必要ないのでは?)確かに変換コストが高い場合は
キャッシュしとく必要がある場合もあるね。
>アプリケーションハンガリアンって悪者扱いされてない方のハンガリアンだっけ。
そうは思わない。例のシステムハンガリアンよりはマシ、ってだけ。
アセンブラならともかく、まともな言語ならそういうのは構造体なりクラスなりで
表現すべきだと思う。
>>161 一々型作ってられない時にアプリケーションハンガリアンが出てくると思うんだけどねえ。
別にプリフィックスじゃなくても下みたいなことやってるでしょ?
// 以下は同一スコープ
int onwerAge, userAge;
int updateInterval;
そりゃなんでもかんでも型作った方がコンパイラチェック入るからいいだろうけど
普通はそこまでしないよね。
アプリケーションハンガリアンって別にそんな特別なことじゃないよな。 みんな無意識にやってると思う。
やらないってw いや俺は組み込みアセンブラもやってるから、そっちでは仕方なくその種の プリフィクスだのタグだのくっつける命名をするけど。
へ? 一々何するにもパブリックフィールド一つだけのクラス書いたり typedefしたりしちゃってるわけ? ・・・それはそれは失礼しました アプリケーションハンガリアンが何なのかわかってない人って結構多いのかねぇ・・・
Joelさんのとこに書いてあるアレでしょ? やらないよあんなこと。 というか、型を定義することを過剰に重荷に感じるメンタルの方を疑問に思った方がいいと思う。 それはただの習い性というか、思い込みでしょ。
いやいやいや
>>163 みたいな例でも
class Age とか class Interval 作るの??
int とかどこで使うんだいったい
>>163 はごく普通の明示的な命名であって、ハンガリアンなんてラベリングされるような
代物じゃないような気がするんだけど、俺の目が節穴なのかな。
なんかもうどうでもいいよ君ら。 ハンガリアン嫌いな人はハンガリアンじゃないっていってりゃいいし 好きな人はハンガリアンだっていってりゃいいし
いやそういう感情論じゃなくてねえ。
>>163 みたいのがハンガリアンなら、今時の世の中のコードの命名の大半は
ハンガリアンってことになっちまうよ。
そんなのありかよw
それが恐ろしいことに
int owner, user, update;
なんて命名するようなのがまだ現存してるんだよな・・・
省くなら型作れ、型作るの嫌なら論理的に区別付く名前付けろボケ新人
あとハンガリアンかどうかなんて関係なくね?
>
>>163 みたいのがハンガリアンなら、今時の世の中のコードの命名の大半は
>ハンガリアンってことになっちまうよ。
だと何かまずいのか?
いやまずくないんだけど、普通はそれをハンガリアンとは言わんでしょ。
>>155 class hoge{
puclic:
int msec;
int sec;
int min;
};
178 :
155 :2009/12/01(火) 03:17:04
>177 えっ? 違うの?
関数() { struct hoge { int msec; int sec; } hoge_; } ローカルクラスにして使うとか? うん、それはないね
いやだからなんで一つの変数にまとめるのよ・・・ そういう質問じゃないよ
int _msec; int sec()const throw() { return _msec / 1000; } しょ?
そもそも実態が一つなのかどうかすら怪しいからなあ >もしくは同列に扱われるけど別の値の場合っていうパターンも。 これがよくわからんし
priceInDollar = rate(JPY, USD) * priceInYen みたいな感じの?
reserveのできるListクラス あらかじめListNodeをオブジェクトプールで生成しておき、Listに対し要素が追加されたときはオブジェクトプールからListNodeを借りる。 いい名前が思いつかない。
C++のvectorみたいな実装かな PreallocatedList とかかねぇ・・・ いいの思い付かないなあ
>>182 >もしくは同列に扱われるけど別の値の場合っていうパターンも。
これは単に、別の値ってことでしょ。
元の質問を見ると、実体が1つの場合、そうでない場合の両方を想定してるように読める。
同列って言うのは、たぶん単位は違うけど次元が同じってことかと。
東京から大阪までの距離を保持する変数(km)と、目から鼻先までの距離の示す変数(cm)みたいな。
PreparedList PooledList
Cacheは違うだろ
識別子の一文字目に数値を許してない処理系で 2ch みたいな数字が最初にくる固有名詞を変数化するときってどうしてます?
reservableList storageList
storageListって・・・Listがそもそもstorageやんけ
1-> l 2-> z 3-> E 4-> A 5-> s 6-> q 7-> T 8-> g 9-> q
>>190 語順を工夫して無理やり2語目以降に持ってくのが基本だと思う。
またはone, two, three, .....とちゃんとスペルアウトしちゃうか。
アンダースコアで始まる名前が禁止じゃないルールならその手もあるのかも知れないけど、
見難いから個人的には嫌い。
bbs2ch
Hoge www2ch; Hoge web2ch; Hoge _2ch; Hoge nichan; Hoge obj2ch;
Map<string, Hoge> var; var["2ch"] = 入れたいもの
NiChan はありかなーって気もするな。 BBS2ch とか Web2ch あたりが妥当な気がするけど。
例示された物に限定される答えを出してる奴は馬鹿なの?
iHoge iiHoe iiiHoge ivHoge vHoge
>>199 ・何らかの単語を先頭に付けて誤魔化す
・数字部分を英字に置き換える
の2パターンに分類されると思うが?
IICh を見て 2ch と判断できるエスパーはあんまりいなそうだ
siteInfo_2ch
205 :
デフォルトの名無しさん :2009/12/03(木) 00:20:09
割り込み禁止区間をコード中で簡潔に表現したいのですが、 何か適当な言葉はありませんか? 割り込み禁止と、禁止解除をそれぞれマクロ名に使います。 { handle h = int_disable(); 〜 // 割り込み禁止中 int_enable(h); } このようなコードを XXXX_begin 〜 YYYY_end のようにしたい
mutex critical section
>>205 本当にそれやる必要ある?
別に変に別名つけたり抽象化しようとしたりする必要ないんじゃない?
そのままで十分分かりやすいし、別の表現で言い換えたからって
より分かりやすくなるとも思えないけど・・・
INT_OBSTRUCT_BEGIN INT_OBSTRUCT_END
uninterruptible_begin uninterruptible_end
#define CS_BEGIN() EnterCriticalSection(&g_cs) #define CS_END() LeaveCriticalSection(&g_cs)
タイルベースのゲームでマップデータを格納する配列Map[rows][cols]が今あるんだけど データ構造としてのmap(c++のstd::map)とかぶるのでほかの呼び方にしたい どんなのがいいかな?
自分でマップデータって言ってるんだからmapDataでいいのでは? さもなくばlandMap, tileMap, tiles, tileMatrixとか
>>211 board
field
game_map
マップの1タイルを Cell とか Tile って名前にして MapCells とか MapTiles みたいな名前にしたなぁ。
grid
センスねえの
採用されなかったからって僻むなよ
俺は提案してないけどね
あるのかよw
単位ベクトルを求める関数と、法線ベクトルを求める関数がどちらも normal ぽいんですが、 明確に区別できるように、どうにかなりませんか?
>>222 引数が違うから自ずと区別できそうだけど。
[オブジェクト指向版]
void Vector3d::normalize();
Vector3d Surface::get_normal(const Point3d& at);
[対象を引数で与える場合]
void normalize_vector(struct vector3d* v);
struct vector3d get_normal_vector(const struct surface* s, const struct point3d* p);
Vector GetNormalizedVector(Vector *a); // Aの単位ベクトルを返す Vector GetNormalVector(Vector *a, Vectir *b); // A,Bで構成された平面に対する法線ベクトルを返す
そっち方面の文化知らないんで言い掛かりになるかもしれんけど、 Normalizeって要するに正規化するってことであって必ずしも単位ベクトルにするとは 限らないんじゃないのかね。 長さ100に揃えるのだって正規化だよね。 はっきりunitとかunityって言葉を使った方がいいんじゃないか。 というわけで、 GetUnitVector OOPなら Vector.NormalizeToUnity() Vector.ToUnity()
単位ベクトルは普通にUnitVectorで翻訳はあってるみたいだね 数学的に単位ベクトルを求めることをNormalizeするっていうのかな?
知らないなら黙ってればいいのに
知らないなら調べてから出直せばいいのに
知らないから黙ってるのに
あるオブジェクトを一定時間後に自動削除するためのカウントダウンタイマー変数なんだけど m_KillTimer って名前つけてるんだ。 でもなんかこれだと「タイマーを無効化する」メソッドみたいな名前だ。 どうすればいいかな
m_autoDeletionTimer
>>230 別にそのままでもいいじゃん。
メンバ変数を表すプリフィクスがついてるものをメソッドだと思う奴ないないよ。
どうしても明示的にするなら
mKillerTimer, mTimerToKill, mKillingTimer, mDisposingTimer
とか
っていうか、どうせそんなオブジェクト他にタイマ持ってないんだろうから
単にmTimerでもいいんじゃないの。
クラス名さえ十分適切ならそれでわかるし。
TimerToKill 派だなあ KillerTimer とかも物騒でいいな
>>230 文面を見る限りでは、そのオブジェクトには生存可能な期間(Time To Live)があって、
TTLが0になったらオブジェクトが死ぬイメージに見えたよ。
ってことで、m_ObjectTTL を提案してみる。
m_deleteTimer
TTLは知ってる人だとどんぴしゃだね。 でもどっちかっていうと削除されるべきオブジェクトの方に持たせたいところではある。
質問者が欲しいのは、そのTTL値をデクリメントするタイミングを生成する オブジェクトの名前だと思うから、ちょっと違う気がする。 ちなみにTTLってネットワーク以外でも一般的に使うんだろうか。 普通TTLって聞いたら(今時あまり使われないとはいえ)半導体の方を想像しそう
life-timer
timedReaper これじゃ分からんな。
240 :
デフォルトの名無しさん :2009/12/11(金) 01:25:17
変数名とかじゃないんですが、 時刻の表示で、(プログラム起動から)何日目が経過、 ってどう出力したらいいでしょうか? (経過した日) HH:MM:SS という感じで簡潔に出力したいのですが。
「自動的にオブジェクトを追加するかどうか」を指定するbool変数なんですが bool m_AddObjectAutomatically bool m_AddObjectAutomaticallyFlag bool m_AllowAddObjectAutomatically bool m_AcceptAddObjectAutomatically bool m_AddObjctAutomaticallyEnabled bool m_CanAddObjectAutomatically それともboolにしないで enum OBJADD {OA_MANUAL, OA_AUTO} m_ObjectAddition とかのほうがいいですかね?
unsigned m_flags; F_AUTODEL = 0x1
automatic addition objects を省略して bool auto_add_objects_;
すっげヘタな命名ですね
命名してから言え
他は略してるのにobjectsだけ略されてないのがすげー気になる。
bool a_a_o_;
バイナリエディタで最強なのはooo
add append って使い分けてる?
addは足したら一体になる(数学的な)感じがするのに対し、 appendはappendix(巻末の付録)みたいに、足したときの一体感が弱い
>>252 むしろ意味が全然かぶってないと思う。
その二つの選択で迷うことはありえない気がする。
通常はaddで、appendは・・・忘れた。pushとかpush_backもあるしなぁ。
そうそうそういった以外のファイル関係はappend使ったかも
>>253 付け足す?
Delphiだとリストへの追加は Add で、メニュー項目の追加も AddItem だったりする Pythonだとリストへの追加は append だよね C++STLだと push_back だし、 Cだと文字列の追加(というより連結か?)はconcatだ。 どれも命名したのはネイティブスピーカーだと思うんだけど、結構バラバラだよね。
そうそう、joinなんてのもあるな
add 加算,加える追加する. append 付け足す《末尾に付加する》 extend 延長する, 延ばす. concatenate 鎖状につなぐ; 《文字列を》 連結する. join 接合する,結合する 接続する
Eiffelの本でEnterってのもあったな
>>258 join - 参加する
集合に順序関係があればappend
コピペ君って幼稚だな、まで読んだ。
コピペ君って幼稚だな、まで読んだ。
コピペ君って幼稚だな、まで読んだ。
コピペ君って幼稚だな、まで読んだ。
まで読んだ。
んだ。
まで読んだ。
ごめん、読んでない。
まで読んだ。まで読んだ。
マウスカーソルをしばらく動かさないでいると、一定時間経過後にカーソルが消える。 マウスカーソルを動かすと、すぐにカーソルが復活する っていう機能をパックしたクラスなんですけど、 どういう名前つけたらよいか困ってます。お知恵を拝借したいです。 CAutomaticCursorSwicher とか?
CursorEffect <--(継承)-- DisplayTimeout
>>275 CursorEffect is a DisplayTimeout ???
その継承はなんかおかしいだろ。
矢印の向きは汎化の方向。UML的に考えて……って、おかしかったかな。 「継承」って書くべきではなかったかもしんない。
DisplayTimeout is a CursorEffectでもおかしい件。
>>274 AutoVanishingCursor
>>274 MouseCursorHider
AutoCursorOffManager
>>280 AutoCursorOffManagerっていいな
眠いカーソルか。
>>274 の求めているのは「マウスポインタ」じゃなくて「マウスポインタをどうにかする何者か」
の名前だから、〜Cursorはちょっと変。
それじゃまるでトースターのことを「〜パン」って呼ぶのと一緒だ。
コピペ君って馬鹿だな、まで読んだ。
CursorVisibilitySwitcher
カメレオンカーソル
カメレオンの方向で考えてたら、ええのあったよ DimmerCursor とか StealthCursor
ついでに GhostCursor
CursorBlinker
だから「パン焼き機」を「〜パン」って表現するのはどんな言語感覚してんだと
>>295 ToNですか?
アレンジは好きにすればいいじゃない
間違ったがまぁ(・ε・)キニシナイ!!
いいかげん日本語識別子使えよ老人 漢字最強だからまじで
実際日本語識別子はサクサクコーディングすすむからいいわな。 リファクタリング前提で設計からコードに落しこむときだけ日本語ってのも結構わるくないよ。
じゃあ試しに
>>274 のお題に適用してみたらどう?
俺は「鼠指示子消去者」とか「マウスポインタを自動で隠す奴」みたいな調子の
クラス名でコーディングしたいとは思わんけど。
タイピング両も増えるし。
コンピュータ周りの命名は英語で、 業務に関連したややこしい専門用語は日本語でやればいいんじゃねーの
応用の効かんやっちゃなw
業務関係はローマ字混在でいいでしょ HinName(品名)とか TokCode(得意先コード)とか
HinName はないわー・・・ Hinmei でいいだろ 最近のユニコード使用可の処理系なら「品名」ってやっちゃった方が絶対良い。
HinNameとかはF社とN社なんかの一流企業でよく見るなw
>>304 それってもう実践してる?あるいは実践してるところよく見たりする?
実態はどうなってんるだろうか。
多分一流企業に分類されるであろうI社は チーム辞書にHinName(品名)とSpecialHinmei(特殊品名)みたいな登録してたから ・企業が一流でも仕事が一流とは限らないことを知った ・辞書さえメンテされてりゃネーミングって結構どうでもいいことを知った
>>306 俺のところは前に提案してみたら死ぬ程揉めたから実践できていない。
生理的に無理!って人が多い印象。
実用性に関してはどうなんだろね?実践してる人いたら教えてほしい。
>>305 ShitenCode(支店コード),ShitenName(支店名)とかもあった気がする
頭日本語、後英語で統一してるとかなんとか
実際英語で書くと長くなるからなぁ
一流なりの計らいでしょ
下請け程英語にこだわる気がするw あと研究分野(結果を出せない人程ね)
そうね。 HinName?ダセーProductNameだろJKみたいな非本質的なつっこみする低レベルな人っているね。
a,b,cとか適当なのじゃなければインテリセンスがきけばなんでもいいよ
命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。
コピペ君っていうより、繰言君だな。 ボケ老人や知的障害者と同じ脳の障害があるんだと思う真面目な話。
>>312 ダサいとかそういう問題じゃないと思うけどねw
312みたいな人が多いから世に糞コードが多いんだと思うけど、
こういう人はコードを書く時のことしか考えてない。
そういうのが普通はダメだとされているのは、別にダサいとかいった中二病的な理由じゃなくて
単に意味を読み取りにくいからだよ。
ただでさえ他人(過去の自分を含む)の書いたコードなんて文字通り"code"だったりするのに、
その上そんな"code"の謎解きの複雑性を増やすようなルールは勘弁して欲しいわ。
っていっても通じないから少し捕捉。 HinNameみたいな名前がもし分かりやすいと思ってるのなら、 それはそのコードを書いている時点ではある特殊な前提(『hinって言ったら「品」のことだろJK』) が頭に入っているからに過ぎないんだ、ってのを自覚して欲しいね。 逆に言えば、そんな特殊な前提が頭に入ってない他人(数日後の自分を含む)には 『hinって何だよ?』としか思えないってこと。
ぶっちゃけわかりにくいのはコメントに書くからローマ字か英語かで困るなんてことはない
というか普通は用語辞典を作ると思うんだけど。 HinNameだろうがProductCodeだろうが辞典がメンテされてりゃどっちでもいい。 一番始末悪いのは勝手に「HinName?ダセー(ry」をすることだと思う。
>>320 なんでそんな回りくどい努力をするぐらいなら、
最初から十分に明示的な名前を付けたほうが合理的だ、って結論にならないの?
こういう人がいると用語辞書と称したバインダーが(以下略
>>321 各所で各人が勝手に合理的な名前を決めたらどうなるか考えてみようね。
一人でシコシコ作ってるならともかく。
合理的の定義が皆一律一緒だなんて思うなよ。
もういいから。 最初に辞書作るときに、考えが足りなかったということでいいでしょう。
>>321 普通は業務知識部分の辞書は作ると思うんだけど最近はそうでもないの?
なんか論点ずれたところで戦ってね?
一番大事なのは
>>274 に早く答えてください。お願いします。
流れを戻すが CursorCloaker
>>326 いいけどなんか妙に文学的だなw
それなら普通にhideでいいじゃんって思う
「一定時間でポインタ消える」ってのはわりと良くある機能だし、 海外で実装された例を引っ張ってくればよくね? ・・・って思ったんだけど何でググったらいいのかわからんね。
検索ワードが思いつかんw
唯一覚えてる、X Window System に付いてたカーソル自動消去プログラムの unclutter のソース見てみたけど main 関数にベタ書きされてて何の参考にもならんかった。
実装する環境によるけど「Cursor」より「Pointer」の方が良いかもね。
>>329 検索ワードは普通に"hide mouse cursor(pointer)"
でいいと思うんだけど、コード検索してもクラス名はないな。
まあ昔風の人なら「こんなのクラスにすることもない」って程度の機能だから無理もないかも。
一定時間後に消えるのはカーソル自体の機能じゃん 機能だけを分離するとか典型的なアンチパターンじゃないか
オブジェクト指向とは限らないんじゃね?
って思ったけど
>>274 はクラスって言ってるな。
>>333 プログラマとは思えない発想。
それはただのユーザー目線の物の見方だ。
君の考え方を敷衍すると、マウスポインタの通常の機能(表示、HWをポーリングして移動や
クリックへの応答)も
>>274 のクラスに入ってないとおかしいんじゃないの?
っていうか、ユーザー目線だってちょっと頭が回るユーザーなら、
マウスポインタの自動消去を制御してるのがマウスポインタ自身だ、なんていう発想は
しないと思う。
>>335 オブジェクト指向の勉強したほうがいいよ。
お前がな
どう見てもお前がだよ
いやいやここは俺が
どうぞどうぞ
なら、例えば「メモ帳」みたいな簡単なエディタを作ることを考えた場合、 「UI( = メモ帳)自体の機能」に見える(いや俺には見えんけど)機能は みんな「メモ帳」クラスのメソッドとして実装するんだね。 例えばundoとか。例えば検索(&ハイライト表示)機能とか。 ありえんわそんな設計w まあ、こういう人がVBとかC#とかやるとformにコードベタ書きするんだなときっと。
TTL(Time To Live)にあやかって TimeToDisplayとか。
>>335 えーと、その古い考えからの脱却がクラスでありオブジェクト指向なんですが
化石乙
>>341 やっぱToNじゃねぇかwwwwwwww
>>341 頑張って勉強しなおした方がいいよ、マジで。
>>343 言って分かるとも思えんが、OOPについて「現実世界のモノをクラスにする」とかいった
怪しい説明をしてる類の本を読んで分かった気になってるだけだと思うよ君は。
>>346 マジ化石乙
今時そんな解釈してる奴いねーから
まあとにかく、異議があるのならまず
>>335 に反論してよ。
カーソル自身の本質的な機能を何も持たず、ただカーソルを制御するだけのものを
「カーソルだ」って認識するの?
じゃあフライパンを振ってる料理人は「××フライパン」ってことになるのかなw
>>346 相変わらず居もしない馬鹿キャラを妄想して、その馬鹿キャラを一人で馬鹿にして悦に入る作業に余念が無いっすね
人形遊びはそろそろ卒業したらどうっすか?
40超えてんだし、いい加減にしましょう
>>348 宗教だった頃のオブジェクト志向しか知らないんですね・・・
何やら仮想敵相手に頑張ってる初心者がいるようだな。
>>350 まあ俺が「馬鹿キャラ」を妄想しているかどうかはともかく、
>>333 の言ってることはかなり愚かだ。
嘘だと思うのなら2chの外の世界で、君がまともと思う人に確認してみてくれよ。
TONさんあいかわらずブッチギリ馬鹿やなぁ
>>354 2chの内外で何か違いがあるのか?
単純にお前さんの周りにはお前さんと同レベルの勘違い野郎しか居ないってだけの話だろ
所詮類友
相容れない
で?Extensionで納得できたの?
本当馬鹿が多いな今に始まったことじゃないけど。 じゃあ例えばOSの「スクリーンセーバーの機能」はスクリーンセーバーなのかよってw そんなわけがないだろw ただスクリーンセーバーという、OSとは独立したプログラムの起動を制御してるだけ。 なんかまるでCRTを指して「パソコン」っていう幼児や老人みたいな発想。 アリストテレスは「知恵とは区別することだ」といったそうだが、そういう意味で こういう区別する能力が欠如してるのは頭が悪いってことなんだろうな。
>>359 いやだから
何時の時代の誰と戦ってるの?君は。
おもしろい
いじめよくない
もういいじゃない・・・ オブジェクト指向なんてわかっててもわかってなくても つかえればそれでいいんだよ
さらにダメ押し。
ちょと前のオーディオはタイマーと部分だけが独立してるのが普通だった。
タイマーは、セットされた時間が着たらチューナーと録音機の電源を入れる。
では、このタイマーのことを「録音機」と呼ぶのが正しいんだろうか?
タイマーはタイマーであって、録音機とは違うんじゃないの?
だとしたら、
>>274 の言ってるクラスは、ちょうどこのタイマーのような
機能を担当するものなんだが、これについてどう思うよ。
何にたいするダメ押しなんだ? 自爆?
あんまり苛めてやるなよ
うお、俺が飯食ってる間にすごいことになってるw
なんかいろいろ面倒だし、とりあえず存在の主張だけしておくか
>>367 結構回答は有っただろう
>命名規則や設計の善し悪しについて議論するのは基本的に禁止。
お前ら
>>1 ぐらいちゃんと読め。
頭悪いとか言えた立場じゃねーだろボケナス共が。
オブジェクト指向の本て悪書が多いからこんなことになるんだな
結局どのレスが正しいこと言ってるの? 初心者にも分かるように説明して
誰もわかってないんじゃないの?
俺はわかってるけど説明は上手いやつに任せる
いいか オブジェクトっていうのはあることに関係する、情報と処理をまとめたものだ その「あること」がカーソル全体を現すなら、クラス名はCursorだろうし カーソルの表示非表示をつかさどる機能を表すなら、CursorHiderとかなんだろう あること、をどこまでにするのかは設計者が決めること
皆結構間違ってる。 ここを参考にしないほうがいいよ。 自己レスで正しいっていってるのばっかでワロタwww
このポストは誤り。
設計について語りたい方はスレ違いですのでマ板などに行ってみてはいかがでしょうか。
>>335 が噛みついたせいでスレがおかしくなっちまったよ
あーあ
画像を動的に読み込んでリサイズするクラス作ってるんだが、 待機中or読込中or読込完了orリサイズ中or完了orエラーを表すenumの名前に困ってる LoadStateだとリサイズが含まれない感じがするし、なんとかならないだろうか? あとenumの名前がどうしても〜Stateになってしまうのを何とかする案をくれると嬉しい
>>387 単機能の(他に機能を持たない)シンプルなクラスに聞こえるから、
単純に「クラス名 + State」でよいのでは?
クラス名: BitmapResizer
ステート値名: BitmapResizerState
privateな値なら単にstateでもいいと思う。
enum値の名前かと思ったけど、 enum型の名前の方ですか?
construction_state_t でいいじょん
型:ProcessState 値:Ready/Loading/Loaded/Resizing/Done/Error
393 :
387 :2009/12/21(月) 01:35:21
みんなありがとう 型名に悩んでた 〜Stateでもいいのかな、そんな気もしてきました 値名のほうはリサイズ中をSCALINGにしてたんだけどRESIZINGのほうがいいかな・・・
scaleだと比率指定で縦横比維持 resizeだと縦横フリーダム のような個人的語感。
前方一致と大文字小文字の区別なしに対応した制限の緩い文字列の検索になんて名前をつけたらいいですか? 例えば"abc"で検索した場合、"abc"だけでなく"abc..."や"ABC..."も一致とみなします。
looseSearch fuzzySearch
lenientMatch
400 :
399 :2009/12/26(土) 13:03:00
あーboostのistarts_withは返り値がboolなんですね。 indexを返す関数なのですが、indexを返す事を明示するにはどう名前をつけたらいいでしょうか?
そんな暗号みたいな名前で納得するのなら、 こんなスレで聞くまでもなく最初からテキトーに命名すりゃいいのに。
検索や比較でiのあるなし両方ある場合のiは、ignore caseという意味。
istarts_with xxx ifind_first xxx って並べると暗号には見えないんじゃない?
最近の補完前提の言語だと 〜CaseInsensitive とか 〜IgnoreCase とか 略さないで付けるのが主流だな。
>>403 わろうたw だが、短いやつのパターンも覚えておくと
どうしても長くなる時に役に立つ
つまりあれっしょ、 strstr()とか、strcspn()とかわけわからんのもあるから、 それに近いってイメージなんでしょw
>>407 一般的じゃない特殊ルールを知ってないと意味が読み取れないのは文字通り暗号と一緒なわけで、
まあライブラリとかなら場合によっては必要悪として認めてもいいのかも知れないけど、
普通の人が書く非汎用的コードでそれは好ましくないと思う。
>>408 必ずしも名前で解決する必要ないのでは?
パフォーマンス上の要請がないのなら引数の列挙値か何かでオプション指定した方が
分かりやすいし。
そんな話はどうでもいい
何を言っても無駄でしょ 暗号みたいな名前 って思っちゃうくらいだし
そうはいっても strcspn とかは正直暗号の部類だと思う。
>>411 暗号的な名前を覚える価値があるほど多くの人にとって汎用的な関数とも思えんけど。
もちろん(俺は正直「馬鹿じゃないのお前」と思うけれども)暗号みたいで何が悪いって
言われりゃそれまでだが、だったらこんなスレで質問することないじゃん。(
>>403 )
命名にこだわるとしたら何のため?
それはコードを読む自分や他人にとっての可読性を確保するためだよね。
可読性なんてどうでもいい、暗号でいいじゃん、っていうならそれでいいけど
ならなんでこんなスレにいるのって話。
いい名前はテンションが上がるからです。 こまけーことはいいんだよ
このスレってこまけーことに拘るためのスレだと思ってたんだけどな。
>>417 boost で使われてるから非暗号的ってのはどうかと思うけどなぁ。
ignore case な検索は汎用的だろってのは同意だけど。
まあ言語によって文化はいろいろちゃうだろしね。
C++ で car cdr とか使われても暗号としか思えんだろうし。
単純な検索ならcontain("ABC")だけど ignore caseになるとignoreCaseSearch("ABC")がしっくりくる気がする
containsだろ
contains だと boolean 返すってイメージがあるなぁ。
indexOf じゃね?
int indexOf(bool ignoreCase, (ry これ以外ありえなくね?
メモリプールから 取得する→? 開放する→Release Createだとなんか変だよね? 毎回作ってる訳じゃないし
Allocate
allocateだよなあ。 実装がメモリプールであることを隠すなら createとかnewでもいいと思うけど。
ペアになる語彙って、ある程度おさえておくと命名が楽になるよねー。
>>424 それ保守の面で悪くない?
新たな検索方法が必要になる度にindexOfの仕様が変わっちゃうよ。
>>424 呼び出し元が indexOf(false, ...) になるんだぜ。意味が分からん。
オーバーロードでも作っとけばいいんじゃないの? だから結局どの言語かによるってことだと思うんだが。
ならenumでも使ってろ 俺はenum渡すが、質問者にとっては不要だろ
indexOf(boolean IgnoreCase, ...) じゃなく enum MatchCase { CaseSensitive, CaseInsensitive }; indexOf(string pattern, optional MatchCase matchCase = CaseSensitive, ...) だろな。
つーか、全ての検索を1つのindexOfに実装するのは多機能すぎて良くないと思う。
>>435 君さあ、例えば検索条件の違いごとにgoogleのURLが別々になってたとしたら、
それでもgoogle使いたいと思う?
>>435 のいわんとしてることは
20も30もフラグのくっついた indexOf はありえねーとかってことだと思うよ。
それに正規表現で検索するとかあいまい検索するとかまで盛り込むか?ってなると
結構分離する人の方がおおいんじゃないかなぁ?
そういう人のために神はオーバーロードをつかわした。 国際化の判断だの大文字小文字比較だのぐらいは一つの関数に含めてもいいんじゃないかなとは思う。
分割とか統合とか設計論じゃないの?
>>436 googleのように検索文字列で検索オプションを指定するのは、indexOfではやりたくないでしょ。
「デフォルトを用意すれば多機能でも良い」というのはプログラミングには当てはまらないよ。
つーか、プログラミングに関係ない例で反論するのはやめてくれ。
>>438 ignore caseとかオーバーロードできない(引数が違わない)のもあるよ。
>>439 >>410 以降の流れにレスしたのがいけなかったかも知れない。
>>437 indexOfに付ける事が考慮される20から30のフラグを是非挙げて見てくれ
そしてその20から30を関数として分離した場合の名前もよろしく
中学生かよ
条件が異なるだけの同じ処理にそれぞれ別の関数(オーバーロードも)を作成するのはやめて欲しい 文字列の一致条件だと一般的なところで、CS/CI、AS/AI、KS/KI、WS/WI があるけど、 Search_CS_AS_KS_WSみたいな関数を16個も作るとかありえん
普通オーバーロード作る時って
・引数少ないバージョン、
・よく変更されるオプションだけだしたバージョンが幾つか、
・フルセットのバージョン
みたいな感じでしょ?
>>445 みたいに全組合せ網羅なんて聞いたことないけど。
実装する方も大変だろw
内部処理が違ってそれぞれインライン展開させたいときはそうするかもしれない
Builderパターン使うかも
そろそろ設計の話はやめにしようぜ兄弟
>>425 new/delete
pop/push
get/return
予約語とかぶるのが多いかな……
いくらなんでもpop/pushは適当すぎる
get/returnてなんだよ releaseだろ
Objective-Cは alloc release
キャッチ&リリース!
ドリンク&リバース!
蒸着!
赤射!
焼結!
音楽再生で A 音楽ファイルの先頭部分 B 実際に再生が開始される部分(先頭の空白部分を除いた、実質的な音楽の先頭部分) C ループの開始位置 D ループの終端位置 E 再生の終了位置 F 音楽ファイルの末尾位置 の6箇所に適した命名って、なんだろう? 例えば60秒の音楽ファイルがあって、先頭の2秒と終端の5秒が無音部分だったとする。 10秒〜40秒の範囲を任意の回数だけループさせるとすると、 A 0秒 B 2秒 C 10秒 D 40秒 E 55秒 F 60秒 となるわけなんだけど。。。
461 :
460 :2009/12/29(火) 14:24:41
長くなって失礼。 A 命名なし(常にゼロだから) B SoundHead C LoopHead D LoopTail E SoundTail F SoundFileLength で通じるかな? Head-Tail よりも Begin-End か Start-End のほうがいい?
>>461 A PreGapTop
B PreGapEnd
C Loop.Top
D Loop.End
E PostGapTop
F PostGapEnd
Top,Begin,Startの反対語はすべてEndなのか
top ⇔ bottom begin ⇔ end start ⇔ limit というイメージ
start/stop
ループ使う場所でheadって使うとhaed部分って感じがする ヘッドを再生→ループスタートからエンドまでを何回か再生→フック(?)を再生
startはfinishでしょ
よく考えたら head<-->tail ではなくて head <--> foot か。 では tail の逆は?
自然言語の対語関係が、そんな人が人為的に設計したような 論理的な関係に必ずしもなってるわけがないでしょ。 あんまり意味のない議論だ。
>>468 ヘビとかだったらhead tailでいいんじゃね?
UNIX のコマンド的にも head/tail の方が馴染むし。
そろそろ誰か突っ込んでやれよ 頭部の方の意味じゃないって
head = front = car tail = rest = cdr foot = back
carとcdrは違うと思うぞ。
コイントスが "head or tail?" だからそれでいーんじゃねーの?
イテレーター実装したときcarとcdrはよく使う
lispの仲間達意外でcar/cdr使う奴は気違い
carとcdrは、先頭と末尾というより、先頭と残りだな。
しかし、また質問だけしてトンズラかよ 実にウンコな人間性だな
だったらtail=rest=cdrであってるじゃん
>>480 A B C D E F G
のとき
headはAで、tailはG
carはAで、cdrはB C D E F G
じゃねーの、という話。
何にしても car/cdr は Lisp 知らない人にはイミフな上に なまじっか知ってる人には誤解を与えかねないから不適当だと思う。 ・・・曲のお尻の部分の名前の話だよね?
もう質問者はお前らに愛想を尽かして帰ったよ。
tailは尻尾=頭以外ということだからtail=cdrでOK
>>484 >尻尾=頭以外
wwwwwww
bodyはどこいったんだよ
インターフェースから元のオブジェクトの参照を取得するインターフェースを 定義したいのですが、そのインターフェース名とメソッド名を組でお願いします。 インターフェースからオブジェクトへのキャストができない言語使ってるので・・
GetThisRef
GetImpl
ああ、すみませんインターフェース名とメソッド名を*組*でお願いします。
続き、メソッド名なら自分を
>>488 さんみたなGetImplementerとかGetSource(Original)Object
とか、いろいろ考えました。がそういう場合インターフェース名をどうしようかなとか。
? そのインターフェイスは何のためにあるの? それを名前にすればいいという話ではないの?
>>491 このインターフェースには元のオブジェクト参照を取得する上記のメソッドしか定義しません。
純粋に.NETでいったらICloneableのCloneメソッドとかそんな感じのインターフェースです。
ObjectProvider.GetInstance
みなさん色々ありがとうございます。ニュアンス的?には逆参照?かなと思ったので、 IDereferenceableのGetDereferencedObjectでいいかなと。 まぁ、とりあえず、これで 進めてみます。ありがとうございました。
>>491 じゃないけど、そんなインターフェイスの必要性がわかんないね。
元のオブジェクトって、どのインターフェイスに型付けされた変数に入っていようが、
入っているのは「元のオブジェクト」そのものでしょ?
>>495 >>486 です。
>入っているのは「元のオブジェクト」
そうです。で、あるインターフェースで定義されているメソッド以外のメソッドを
呼ぶ必要があったので、インターフェースからオブジェクトへのキャストが許されていない
言語を使っているので、元のオブジェクトへの戻す必要があったのです。もちろん、別のインターフェースを
定義してインターフェースから別のインターフェースへのキャストしてもいいのですが。
具体的にいうと あるメソッドの実装で、あるインターフェースIInterfaceAを受け取るのですが、その内部実装で、 void Method(IInterfaceA A) { // ここで、AのIInterfaceAを実装している元のオブジェクト // のIInterfaceAで定義されていない他のメソッドをいくつか呼びたい。 } IInterfaceAは外部に公開されるインターフェースです。先ほど書いたように他のメソッドを呼ぶ時に外部に 公開しないIInterfaceBを定義して、IInterfaceA->IInterfaceBへキャストしてもいいんですが。
設計見直せば? インターフェースの意味完全に見失ってるよねそれって
>>496-497 丁寧に解説ありがとう。
でも、俺も
>>498 と同意見。
なんか事情があるにせよ、メソッドが本当に必要としている型は引数とは別の型だ、
ってのはかなり間違ってると思う。
>>497 です。
実は俺もこんなことって普通なの?って思ったんですよ。
ですが、インターフェース設計してるのは俺じゃなくて、公的な規格でただそれを実装
してるだけなんです。で、その規格の有名なJavaの実装のソースを見たら
そうしてたんで、まねてるだけなんです。
>>497 です。
>>500 への補足です。もちろん公的な規格でインターフェースが定義されていても
実装を切り離せるのがインターフェースなのは知ってますが、その有名なJavaの実装の
ように元のオブジェクトへの参照へ変換するか、先ほど書いたように別の非公開のインターフェースを
定義してそれ経由で呼び出すがぐらいしか方法ないかなーと。
って、何の話だかわからないと思いますが。
後、もう1点だけ。先ほどの
>>497 のメソッド自体もその公的な規格のインタフェースのメソッド
の実装で、引数のIInterfaceAもその公的な規格のインターフェースの一つです。
ひょっとしてアダプタを作るメソッドをインターフェースに含めてるのかな? だとしたらMakeHogeAdapterかなぁ まあ真似する対象があるならそれのメソッド名見ればいいんじゃね
まぁ、実装の話はスレ違いなのは知ってますが。実際に実装してるおはW3Cで定義されている
XMLやHTMLをツリー構造で扱うDOM(Document Object Model)を実装してるのです。
ttp://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-core.html 参考にした実装はXercesというJavaの実装です。
そこでノードを表すINodeインターフェースが定義されているのですが、
例えば、そのメソッドの1つである子ノードを追加する
メソッドappendChild(INode newNode);
で、newNodeを子ノードとして追加するのですが、この実装で、
追加と同時にnewNodeの親ノードを変更してやる必要があるのですが、
INodeには親ノードを取得するメソッドはあるのですが、変更するメソッドはありません(つまり、外部的にはread-only)。
で、その親ノードを変更するために、引数として渡されるのはあくまでもINodeインターフェースなので、
元のオブジェクトに変更するか、別の非公開のインターフェースを用意するか方法ないかなーと。
Factoryメソッドなんかでたまにそういうのあったりするっていやあったりする気もするなぁ。 メソッドの中で is ??? でオブジェクト調べた上でのダウンキャストだから 問題ないっていや問題ないとは思ってたけど。
ノードの具体的な実体を生成する機能を親ノードと同じパッケージだけに持たせる
つもりなんだろうから(そうでないと
>>504 の話は破綻するよね)、それならノードを
インターフェイスにする意味は普通に考えれば何もないね。
むしろノードは普通にクラスで定義すれば、「親ノードを変更するメソッド」は
default(C#のinternalに相当するアクセサってこれでよかったっけ?)にすれば、
変な細工なんかしなくてもパッケージの外に対しては隠蔽できると思うんだけど。
ここは何スレ?
TONが無知を晒すスレです
チンパンジーのアイちゃんが(ry
字句解析を行っている最中の、 未だトークンに満たない文字列を納めた変数の名前を考えてます。 たとえば、文字列 "void main () {" をトークンに分けたいとします。 先頭の3文字目まで読み取って、変数Aに文字列 "voi" が入っているとします。 これはまだトークンとは見なせないので次の文字 'd' を読み取り、 変数Aは "void" となります。 まだ完全にトークンとは見なせないので次の文字 ' ' を読み取り、 その結果変数Aの "void" はトークンと認識され、これを元にトークンを作ります。 この変数Aに付ける名前です。 お願いします。
>>510 俺は tokenBuffer って名前にしてた。
>>511 あ、なるほど。
難しく考えすぎてました。
ありがとうございます、参考にさせてもらいます。
>>510 この辺りの形容詞(じゃないのもあるけど)でも付けてみるとか
pending
unsolved
unfinished
unsettled
unterminated
indeterminate
candidate
ローカル変数なら単にcandidaiteが良いかも
俺なら単に source で済ませちゃうな。 何か付け足すにしても sourceBuffer、sourceString ぐらいで。
スコープが狭ければbufで済ませるかもしれん。
sourceだと読み込み元の方にならね? 切り出し前の "void main(){" の方がsourceって感じがする。 tokenのsourceって考えると合ってる感じもするけど。
517 :
514 :2010/01/04(月) 21:47:23
>>516 確かにそーだね……んじゃ buffer にしよっと。
>>518 時々直訳したのを列挙するだけの人がわくのがこのスレ
いつも悩むの例外クラスの名前やそれにまつわるもの命名(エラーメッセージの定数とか)なんだけど。 みんなどうしてる?例外クラスの名前とかにやっぱNoとかNotとか付くように否定文的に名前付ける? まぁ、例えば、何でもいいけど、メソッドに無効な引数が渡された例外クラスの名前は EInvalidArgument?(肯定文的に) ENoValidArgument?(否定文的に) それか EArugmentCheckErrorとか? 言語によってもスタイルがある?だろうけど、今いちどうしていいかわからん。
.NETでは単にArgumentException 例外の時点で値が無効なのは明らかだから不要というスタンス
あくまで例として出したにしてもNoValidはさすがにねえよw .NETとかJavaなんかだと例外の命名ガイドラインあったと思ったけど 接尾辞ぐらいしか決まりなかった。
>>520 です。
>>例外の時点で値が無効なのは明らかだから不要というスタンス
なるほど、そう考えると何か見えてきました。
>>.NETとかJavaなんかだと例外の命名ガイドライン
一度見てみようと思います。
>>521 >例外の時点で値が無効なのは明らかだから不要というスタンス
それはない。
現にArgumentExceptionには複数の派生クラスがあるし、FormatExceptionなんてのもある。
「引数がオカシイ」にしてもどうオカシイかはいろいろありうるから当たり前。
ただ、誰が使うか分からないライブラリでも書いてるんじゃなきゃ、
わざわざ細かく分類した例外クラスが必要になることって実はあんまりない気もする。
「何が」だけでよくて「オカシイ」は不要ってことだろ InvalidFormatExceptionやArgumentCannotBeNullExceptionじゃないでしょ
FileNotFoundException はどうしましょ?
言ってみるなら FilePathException とかになるのか?
FileFoundExceptionだろ
>>526 え?何か問題でも?
Formatがオカシイ
Argumentがオカシイ
FileNotFoundがオカシイ
で
InvalidFormatがオカシイはオカシイ
まあInvalidOperationExceptionとかあるけどな OperationExceptionだと意味不明だからな
JavaScriptです。 与えられた文字列をJavaScriptで利用可能なCSSプロパティ名に 変更して返す関数。 例:background-color => backgroundColor いい案ありましたらよろしくお願いします。
単に連結時の語頭を大文字にする(camelCaseにする)機能なら camelize() でいいかもしれんが、これだとCSSプロパティとして 認識すること、たとえばプロパティ名として未定義のものなら エラーにするみたいなことは期待できない名前だな。 toCssPropertyName() などでどうか。
>>532 妥当性については検証しませんので toCssPropertyName を
利用したいと思います。
camelize は知らなかったです。参考になりました。
どうもありがとうございました。
534 :
533 :2010/01/09(土) 11:22:33
すみません。 手違いです。前者と後者は逆です;
cssname2jsname
536 :
533 :2010/01/09(土) 11:41:40
>>535 やはりJSで利用可能なプロパティ名に変更するという点を
明記した方がいいのかもしれませんね。
これから実装しながら検討していきたいと思います。
どうもお付き合い下さりありがとうございました。
CSVファイルを読み込み書き込み変更するクラスの名ですが class CSVだけでは言葉足らずな気がするし CSVReader〜〜としていくと冗長な感じですし 端的にあらわすいい名前ないでしょうか?
CSVFile CSVDocumentなどでよいのでは?
>CSVファイルを読み込み書き込み変更するクラス たぶんそういう考え方で作ると破綻するよ。 スレ違いだけどね
>>538 そのものずばりでいいかんじですね
>>539 込み入った話になるとスレチになってしまいますが
どういう風に不味いのか教えていただけないでしょうか
>>540 分かった風な事を書いてオナってるだけの人なんでスルーしてあげてください
propertize とか
たぶん機能詰め込みすぎじゃないかって指摘だと思うけどね CsvFile CsvDocumentのほうがしっくり来るのは俺だけ?
>>539 機能を集めてクラスを作るんじゃなくて、
物(というのは実はこれも語弊あるんだけど)に対してどんな操作が
あるかという向きで考えるほうがいいよってことだと思う。
>>540 なぜ不味いかって言われると返答が難しいけど、普通に
(1) データ(レコードの配列)を操作するクラス
(2) 文字列の配列をCSVファイルに書き込むクラス
(3) CSVファイルから文字列の配列を取り出すクラス
みたいに、データとその保存形式は分けて考えたほうが簡単でしょ。
まあ実際コード書いてみりゃ分かると思う。
返答に困ってる時点で何も考えずに吐いた放言だったと言う事が明らか 1時間かけて捻り出した返答も空気読めてない上投げっぱなしの酷い物だな
まあ実装の話はよそでやれってことで。
>>546 それはクラスがまた別なクラスを一時的に生成して、
目的の機能を実現するように作ればいいだけのことだろ
何が「だろ」か知らんけど、 「CSVファイル」を抽象化の対象とするようなコーディングは、 少なくともまともなプログラマならやらないと思う。 「CSVファイルを読み込み書き込み変更するクラス」 これはちょっとありえんよ普通は。 っていうか、このあいだのカーソルの件といい、「現実世界の物を・・・」式の 間違ったオブジェクト指向を身に着けちゃってる人って結構いるのかね。
……。
CSVFile(仮)の是非はともかくとして, CSVFileオブジェクトを二次元配列の代わりに持ちまわるような作りなのであれば間違いなく良くないな どこかでデータをフォーマットから分離するべき
またスレタイ読めないアホが頑張ってるな
いや、class CSVFile implements Matrix<String>してるのかも知れんぞ、、、
555 :
537 :2010/01/09(土) 21:33:20
いまいちどこをどうしたらいいのかわからないので初質スレに行ってきいて見ようと思います ありがとうございました
556 :
537 :2010/01/09(土) 21:51:27
あー・・・ ファイルを読み込んできてフォーマットにしたがってデータを切り分けするクラスと (このクラスを抽象化してフォーマットごとに対応できるようにする) 二次元配列を内部に持っていて、そこにデータをset/get等するデータテーブルのクラスと データテーブルの内容をフォーマットにしたがってファイルに書き出すクラス (ここも抽象化しておく) こういう風に切り分けた方がいいということでしょうか? これでなければ質問スレにいってきます スレ汚し失礼しました
データテーブルのクラスがあれば別にファイルフォーマットは抽象化する必要ないでしょ
ス レ タ イ 読 め
>>546 CSVを文字列の配列読み込みにしか使わないなんて
贅沢な使い方してるな
>>559 これを恐らくネタじゃなくマジで言ってるところが怖いところだw
しかし、馬鹿はいいけど馬鹿の自覚がないのは嫌だね
ス レ タ イ 読 め
>>556 いちゃもんつけてるのはこのスレの名物基地外だからスルーした方がいいよ
「今、他のデータフォーマットにも対応する必要があるかどうか」が全て
無いなら妄想基地外の戯言だから無視でおk
無駄な事考えて時間食っても給料下るだけ
そういう問題と違うんだけどねw まあ、こういうのは経験上、「馬鹿の壁」が存在するようだから 理解できない奴には本当に理解できないんだろう。
っていうか、そもそも「いちゃもんつけてる基地外」はお前さん自身だし 「スルーした方がいいよ」ってスルーしてないのも。 文字通りストーカーそのものだなw 馬鹿な癖に他人にいちゃもんをつけて、それを返り討ちにされると逆恨みして年単位で粘着する、と。 そのくせ本人にはまったく自覚がないのもストーカーと一緒。 気持ち悪過ぎる。
おっさんどもは引き際というものを知らないな
自分で設計スレでも立てりゃいいのに このスレに居座ってスレチを続けるTONさんに引き際とな
canReadThreadTitle
boolean型の変数の命名に関して質問させてください。 can + 動詞は、〜することが可能か否か、を表すとして、 has + 過去分子はどういう時に使うのでしょうか。
後ろが過去分詞の場合は、○○されたかどうか、ということ 名詞の場合は○○を持ってるかどうか、ということ
>>572 ○○されたかどうかは is + 過去分詞じゃないか?
has + 過去分詞はあんまり使わないと思うけど、 has received で受信したかどうか、とか?
これなら received でもいいような気がするけどね。
>>571 ええ、is + 名詞なら、〜か否か、ということなので解りやすいのですが。
>>572 ありがとうございます。疑問は晴れました。
このスレで以前、bool型の変数名で動詞から初めてもいいのかどうか、みたいな
議論がありましたが、私は動詞から始めたくないので、では何を頭に付けたらよいか
ということで悩んでます。
例えば、trueなら特定の処理を無視する、という変数があり、その名をignoreHogeとするとsetter/getterの命名に困ります。
setterがsetIgnoreHoge()だと何か変な気がしますし、getterがignoreHoge()だと"Hogeを無視する処理"みたいです。
あとhas○○という変数のsetterの命名法もわかりません。
>>573 確かに英語の文法からすると、〜される、はbe + 過去分詞ですね。
やはりhas + 過去分詞はよくわかりません。
"既に"〜された、みたいなニュアンスなんでしょうか。
>>574 setter/getterは半ばアプリケーションハンガリアンのつもりで使って、
少々おかしくなっても機械的にset〜, get〜にしてしまえば良いと思う。
canの代わりに〜ableも一つの手。ignorableHogeとか。
>>575 普通 has+過去分詞 なんて使わない気がする
>>576 やはりその方法が考えなくて済むのでいいのかもしれませんね。
なんか英語としての正しさを完全に保った命名なんてムリなのかもしれないと思えてきました。
名前をつけるんであって 作文してるわけじゃないんだから文法上の正しさを気にする必要はあんまない
have + 過去分詞は現在完了って中学校でならうだろ。 hasDone 実行ずみ(か?) hasDrawn 描画ずみ(か?) のように、何かを既に行ったかどうかを判定するときに使う。
なんでこんな口調で書くんだろうね
hasExpired なんてのは普通に使うしな。 でも isExpired も使ってるの普通に見るけど。 ぶっちゃけどっちでも良い気はするけど。通じるし。
>580のいうとおり、setするフラグが内部的処理によるものだったりするんだろう たとえばObserverの登録可能なクラスで、bool hasChanged()なんてのがあったり。 これは結構自然に思う
好みの問題と言えばそれまでだけど、
>>580 のような例ならhasじゃなくalreadyを使った方がいいと思うよ。
ドトネトだと(javaでも?)「三単元ルール」に引っかかるし(例. HasValue
のようなプロパティと紛らわしい)、alreadyの方がより明示的だから。
まあ最初に言ったように全否定はしないけど。
三単現が大三元みたいになってやがる......
……。
hasExpired の人は wasExpired と迷っちゃうの?
それはそもそも単に冗長。 expiredで十分。
>>588 boolean 使う時にはなんかプリフィクス付ける方が主流じゃない?
俺は何も考えず isExpired にしそうだなぁ。
>>588 notの場合は、そうしちゃいそうね:notExpired
isは取っ払えるものは取っ払っちゃうな
>>589 何も考えずに is 付けるやつがいて困る。
is + 動詞とか全然平気。ヤバイ。 if is item get とか、もう読みたくない。
is + 動詞はさすがの俺でもありえない
複数形の場合は、areHogesとかにするのでしょうか?
インスタンスメソッドだとありえないが、それ以外ではたまに見かけるな
複数形って何だよw 自分で言ってる意味わかって言ってるのかな
複数形ってことは・・・名詞が入る場合ってどんな場合だろ? 麻雀を例にでっちあげてみると //tile は牌クラスのインスタンス tile.isDragonTile() // 三元牌かどうか //hand は牌クラスのコレクション hand.areCharacterTiles() // 牌のコレクションが全て字牌かどうか みたいな感じか??無理矢理すぎてなんかぜんぜんピンとこねぇ。
> hand.areCharacterTiles 自分だったら、isAllCharTiles にするかな。
>>598 おれもやるとしたら
hand.isCharacterTileOnly()
にする。
おれなら、 hand.hasCharacterTilesOnly()
例えコレクションでもインスタンスは1つだから普通は複数形にならないな 有りうるとすれば、staticメソッドで複数のパラメータを主格としてとる場合くらいで
Assert.AreEqual(Object, Object) とか。
hogeの配列が必要なとき、 複数形にしてhogesにすることは、多々ある。 一瞬、見分けが付かない場合もあるかな?とは思うけど、 今のところそんな経験はない。 下手に別の単語を考えるよりは、分かりやすい&元の変数名も想像しやすいかなと思ってる。 自分は英語の語彙が少ないから大変だ。
>>603 うん。普通の配列とかの場合は複数形にする人多いとおもうよ?
ただboolean返すメソッドとかプロパティで複数形かつプリフィクスのbe動詞もareに変化させるのは
あんまないよなって話であって。
>603 equals(Object, Object)じゃダメですか
>>605 Assertの場合って普通のequalsより一歩踏みこんだ状態を強調しているような命名が多い気がするけどな。
変な日本語ですまんが。
MoveChara CharaMove キャラクターの移動はどっちがよいでしょうか?
>>607 どっちでもいいんじゃない?
オブジェクト指向だったら Character.move だけど
他の言語パラダイムなら自分で好きな方のルールを決めればいいと思う。
もちろん他の関数も同じルールで命名しないと気持ちわるいけど。
いや、俺はOOPじゃなくても、今時関数名は動詞が先頭(名詞句っぽくない名前) が基本だと思う。 少なくともCharaMoveは今時ありえんと思うわ。
一貫してりゃどっちでもいいよ
オセロ作ってて、オセロ板が持っているマス目、って扱いをしたいんだけど、 マス目ってGridでいいのか・・・? こう、マスの一個一個っていうのを指す場合、なんて名前にしたらいいだろう。 どうもしっくりこないんだ。
Cellとかは?
マス目は俺もCell使うなあ。
ボードゲーム関連の単語を挙げると 盤=board 升=square 駒=piece
駒は piece なのか。 どうもシミュレーションゲームの影響で Unit とか使っちゃうわ・・・
unitは予約語だろ 異論は認めない
unitが予約語な言語なんてあったのか 勉強不足だったぜ
俺も勉強不足だったぜ
Delphiか 言語によって異なるけど、一般的な単語が予約語だと困るよな、switchとかnewとか
>>611 盤=board
マス=square
石=disk
だよ
俺が以前作ろうとして挫折したボードゲームでは 盤=field マス=panel 駒=player って付けてたな。
駒なんてintで十分だろ そういう瑣末な事に拘る奴が完成せずに投げだしちゃうんだよな
おいおいintは変数名じゃなくて型だろ何言ってんだ・・・
string str みたいな感じか
間を取って CellInterior か SquareCell で
単純にcellでいいじゃん
……。
正解ですってよ奥さんww
632 :
デフォルトの名無しさん :2010/01/20(水) 06:08:40
x y dx dy この次の座標変数にはなんて名前つければいい?
いくらなんでも説明不足すぎ z dz と答えるぞ
634 :
632 :2010/01/20(水) 07:55:13
自己解決しました
635 :
632 :2010/01/20(水) 08:01:18
誰だよお前
オレだよ、オレオレ!
ddx か d2x だな。
俺も d2x かなぁ。加速度でもとるのかね?
加速度で、ax, ay とかどうだろう
(x1, y1) (x2, y2) (x3, y3)
641 :
632 :2010/01/20(水) 15:45:47
自己解決したってば
タクティクス系のゲームを作ってるんですが、コマの種類が持つパラメータとして そのコマが移動可能なセル、そのコマの攻撃が貫通できるセル、 そのコマが攻撃可能なコマ、そのコマが初期配置可能なセルの位置 を考えているのですが、何かいい名前はありませんか 現在はそれぞれ movable_cells, atackable_cells, atackable_tips, puttable_cells にしていますが、見た通りダサダサです
セルが主語や目的語(英語の)になるのはおかしい。 movableだとセル自体が移動することになる。 attackableは受身の意が含まれるけど、セル自体に攻撃することになる。 puttableは受身かどうかは分からんが、セル自体が配置するのもされるのも変。 あと、attackのスペルが違うし、tipに至ってはどこから来たのやら。
passable_cell, attack_passable_cell, character_in_fire_range, prepositable_cell preposible は preposition からの造語
> preposible は prepositable は
prepositionable
cells_in_move_range cells_in_attack_range units_in_attack_range cells_for_initial_formation 六角形なら cell の代わりに hex
無理しなくていいんだよ^^
649 :
642 :2010/01/25(月) 21:47:25
>>643 ありがとうございます
コマのことを暫定的にTipとしておりました
もうちょっと英語らしい発想ができるといいのですが、、、
>>644 ,
>>647 名詞+副詞句という発想はありませんでした
使わせていただきます
chipのつもりか
Javaで追加と編集のサービスに関するインターフェイス名はどのような名前がお勧めなのでしょうか?
EditingService
パソコンに保存されているエクセルとかのデータの「ファイル」と、 現実世界にある書類とかを保管するための物理的な「ファイル」を それぞれをパッと見で区別できるような アバンギャルドな名前ないでしょうか。
テキストバッファで aaa bbb ccc[EOF] aaa bbb ccc [EOF] を判別するisXXX()と どちらか一方に揃える関数名(例:normalizetext(bool matubi_no_karagyou_ari)) は何がいいですか。
>>653 とっさの反射で答えるなら、現実のファイルはFileBookなんかにするかなあ。
>>654 isEndWithLineFeedとか。そろえるのはEndWithLinefeedとかEnsureEndWithLineFeedとか。
>>653 データ: logical_data_binding
現実: solid_state_binding
>>654 判別: isTerminatedReturnCode
関数: normalize
考えてもらったのに否定するのも気がひけるけど、
>>655 エクセルのファイルのことをBookっていう事もあるので、
ちょっとまずいかも。
>>656 その変数名から「ファイル」を連想できないと思うw
>>654 そもそもそれ本当に必要な処理なん?
必要な場面が思い浮かばん....
っていうか、例えば改行コードだけが並んでる文字列が仮にあったとして、
それを前者の方に整形した場合はどういう結果になることを想定してるんだろう。
必要だから求めてるんだろ 一々ケチつけんな糞
そういう設定のあるエディタもあるよ。 最終行の改行コードを削除する、とか 最終行で改行してなかったら改行コード付与するとか。
そんなもんか。 そんじゃ EndsWithLineDelimiter TrimEndLineDelimiter # 改行コードはline delimiterかnew line codeでないとまずいんじゃないのか?
is_ends_with_eol() enable_ends_with_eol() disable_ends_with_eol()
見比べると
>>661 が不細工すぎる
単語を短く綺麗にまとめられない奴がキャメルケース使うと酷いな
名前付けは極端に長くならなければ、
実際の処理をなるべく正確に表現すべきだと思うんだけど。
>>661 のってそこまで不細工なもんなの?
あと、キャメルケースじゃなければ良いの?
不細工だよ
>>662 が良くて、
>>661 が悪いなんて英語ができないにもほどがある。
おれにとっては、最終行のnew lineはあって当然なので。
missingNewLineAtEnd
ensureLineAtEnd
> ensureLineAtEnd ensureNewLineAtEnd のまちがい。 addNewLineAtEndIfMissing もある。
まあ、選ぶのは質問者だから。候補が多い方がいいじゃないか。けんかすんなよ。
俺も改行コードはあってしかるべき派だなぁ。 Emacsだと require-final-newline ってので制御してた。
C でも C++ でも、空でないソースファイル(ヘッダファイル)は改行で終わらないと未定義動作。
最終行が終端されていないと問題のある系が多いからな RFC2223(RFCを書くためのRFC)だと全ての行はCRLF終端となっているし
でっていう
外人と作業するわけでもない人たちが、 わざわざ英語使ってて恥ずかしい(//) 日本人なら日本語で、ひらがな・カタカナ・漢字を用いて命名すべき。 母国語を使うと読みやすさが格段に違う。至極当然の話。
日本人なら縦書きでプログラミングするべきだよねー
名称をいちいち外国語に翻訳してるから、生産性激減。 isXXX() normalizetext(bool matubi_no_karagyou_ari) ファイルが改行のみの行で終わるかどうか() ファイルの終端を揃える(bool 改行コードのみで終わる) isTerminatedReturnCode normalize EndsWithLineDelimiter TrimEndLineDelimiter is_ends_with_eol() enable_ends_with_eol() disable_ends_with_eol() missingNewLineAtEnd ensureNewLineAtEnd ↑パッと見で、どこまで内容を理解出来るか。 日本人なら一目瞭然。
C#で日本語変数でも使ってればいいじゃない
ローマ字の日本語は英語より可読性悪いだろ
ローマ字じゃなくて普通にかな漢字使えよ
実際日本語使える開発環境で周りと合意が取れる場合は日本語変数名使ってるよ。 隠れた後ろ向きのオフショア対策でもある・・・
予約語も好きな文字に変換できたらいいよね。 #define もし if #define 繰り返し for
プログラム書いてるだけなのに英語的に間違ってるだの何だの言い出す馬鹿を撲滅するために日本語変数を導入すべき
馬鹿だな 日本語的に間違ってると言い出すだけ
墨すって筆で書け
>>685 日本語的に間違ってると言い出すあたりで自分が間違ってる事に気付くかも知れない
無理か、馬鹿だし
>>676 日本語の命名に関する是非は兎も角、意味が変わったらいかんと思うが。
その条件が真になるのは下のようなデータのときで
>>654 とは違ってる。
※見た目の改行は見易さのため
--
apricot\r\n
blueberry\r\n
cranberry\r\n
\r\n
--
>>654 にはどちらの場合をtrueとするかの定義はされてないんだが
妄想のたくましい人だな
>>689 が
>>688 宛であれば、条件の真偽の話し以前に
>>654 が判定したいものと
>>676 の条件があっていないことが問題なんだが
>>676 で判定できるのは
>>688 だが、
>>654 が判定したいのは下記
--
apricot\r\n
blueberry\r\n
cranberry
--
--
apricot\r\n
blueberry\r\n
cranberry\r\n
--
ファイルの終端が改行で終わるか() ファイルの終端を揃える(bool 改行で終わる)
bool....
日本語として間違ってるが始まっててワロタ
紛らわしいのはドキュメント書いたり用語集に入れたりするからどうでもいいよ。
ははは
コメントのために変換モード切り換えるのもめんどくさいのに日本語変数とか死ねるじゃん。
慣れれば別にどうということもない
そんな貴方にSKK SKKの変換システムはともかく辞書登録機能は他のIMEでも採用して欲しいぜ
データにレベルを設定して格納するコレクション型みたいなクラスのメソッド名で あるレベルのデータを全て破棄する(コレクションから取り除く)ようなものの名称お願いします。 とりあえず自分で考えたもの throwがいいかなと思うのですが、c/c++なので・・・ dumpは表示するとかの意味が強いかなと
素直にremoveLevelとかでいいじゃん わざわざ恰好付けて凝った名前付けても分かりづらいだけ
あとはpurgeとかね。
removeIf とか removeWhen とかみたいなので条件をコールバックとかで渡せるようにするのが 一般的な実装じゃない?
名前どうこう以前に、「データにレベルを設定して格納するコレクション」 って仕様が謎過ぎるw ただの連想配列と何が違うんだ
collection.remove(level);
RemoveSpecialLevel(404, list)
706 :
デフォルトの名無しさん :2010/02/05(金) 16:47:48
ThreadFunc FuncThread どっちがよさげ?
Thread な Func なら上、Func な Thread なら下。 もし、メインのスレッドとは別のスレッドで実行する関数、 あるいは別スレッドを起動させる関数に付ける名前のことなら、 そんな機能や役割が分かりにくい名前はそもそも付けないが。
普通はどうつけるの?
threadでやる作業を固めた関数ならそのやる作業そのものに 基づいて付ける。あるいはその後ろに worker とか付けたり。
workerは良く使うなぁ。 〜er みたいな名前付けることが多い気がする。
>>707 で答えた者だが、
>>709 とほぼ同意見。
私の場合はたいていは動詞で始まる名前に落ち着く。
たとえば別スレッドで特別な計算を行いたい場合は calc〜 にする。
描画したいなら draw〜。
個人的には 〜worker は不要だと思ってる。
ほとんどの関数が何らかの worker であるから。
また、 〜worker だと、その関数に指示を与えるもの
(今回の場合だと別スレッドを起動する関数、あるいはそれを呼ぶ関数)と
対になる関係を強いられるイメージがあるような気がして、なんかイヤ。
他の意味で使ってなければ、xxx_task もいいかもね。 何が何でもsuffixを付けろとは言わないけど。
do+動詞も
そのソースの中で一貫してて、かつ他の関数とある程度区別付くなら 読んでて意味を汲み取ってくれるとは思うよ。 その意味じゃThreadHogeでもHogeThreadでもたいして気にならないと思う。
>>714 それは大いに気にするべきだと思うが(ThreadHogeってどういう意味なんだwそんな命名ありえない)
そもそも論からいって、ワーカースレッドで実行される関数だからといって
特別な名前を与える必要性があるとは思えないな。
というか基本的に利用側の都合で命名しちゃいかんだろ スレッドプールやプロセスに変更になったら名前付け直すのか?
>>do+動詞 リアルにあるの?
テンプレートメソッドパターンで、実際に使うインターフェイスに なるメソッド名が「動詞」のときに、その「動詞」から呼ばれる、 サブクラスで実装する部分を「do動詞」にするのは見たことがある 気がする。
そもそも、do+動詞って強調構文じゃなかったっけ?
別に命名がおかしくてもいいんだよ。 後で整合性とれるようにリファクタリングすりゃいい。
動詞+名詞の関数/メソッド名で統一したら ExecHogeかRunHogeかCalcHogeばかりになって困ったことがある。
>>721 名前そのものだけのことなら、
(関係者が気にしなければ)それでもいいと思う。
ただ、名前を付けるという行為は、
その名前を付ける対象の本質をよく理解しているか、
という自己テストも兼ねている場合が多い。
ズレてるな。
そもそも
>>721 の「リファクタリング」とは名前をあるべき姿に修正することだろう。
名前なんかあとであるべき姿に修正すればいいんだ、っていうのを、
その「あるべき名前」を考えるスレで言うって頭おかしいとしか思えない
C++でプログラミングをする時に命名規則に困っているわけですが、 お前らはC++でプログラミングをする時の命名規則はどうしていますか?
俺はドトネト式
>>727 命名規則の何で困ってるんだ?
それぞれの命名規則の長所短所が分からないとか、具体的に質問してくれよ。
名前なんて適当でいいだろ 辞書作っておいて、文句いわれたらあとで置換すればいい
じゃあ連番で付けて台帳に載せよう。
>>731 マジ天才。
kadfajsldkfajsdfasとか
ehernqwekrkweみたいなユニークな文字列にするようにして
各自ソース取り込んだ後は好きな名前に置換、コミット時にもとに戻すとかやれば最強じゃね?
参照のみを複製→コピー 等価な別のオブジェクトを作って渡す→クローン おk?
>>733 スレ違い。誤爆?
参照とかいってるからドトネトかな。
コピーとクローンに明確な区別があるとは思えない。
そして、何をもってクローン(コピー)とするかはそのクラスの性質次第で
そんなものに一意な定義なんてあるわけない。
Shallow Copy Deep Copy で十分じゃない?
モジュール(DLL)ごとにユニークな識別番号が動的に振り分けられてるとして そのモジュールの識別番号を取得する関数名はなにがいいでしょうか?
GetModuleIDでいいじゃん。 UniqueIDは頭痛が痛いになるから避けた方がいい。
そうですねGetModuleIDにします どうもでした
GUID とか COM Component とか普通にあるけどね
識別子は一意とは限らないからな
>737 表現が冗長であることの例として、 日本語として誤りがある『頭痛が痛い』という言葉を上げるのは不適切。 また、暗に含まれるニュアンスを明言するような修飾をつけて、 冗長な表現とするのは、誤解を生まないようにするための良いアイデアといえる。 というわけで、GetUniqueID() は一つもおかしくない。
言われなきゃわからないなんてのは意味ないもんな。
>>736 getDLLID()
DLLの識別番号なんだからそこんとこ強調してみた。
CreateUniqueId とか GenerateUniqueId なら意味もあるだろうが、 すでにモジュールにつけられているIDを取得するのにUniqueかどうかなんて意味がない。 どんなIDかではなく、何のIDかがわかるようにするとよい。 GetModuleIdで必要十分。 GetDLLIDは字面が残念。
uniqueでないidなんてあまり相手にしたくないなあw
「頭痛が痛い」は一応日本語として成立してると思うけど。 頭が痛い、という意味ではもちろん成立しない。 「ぎっくり腰が痛い」とか「筋肉痛が痛い」と同じ言い回しだと解釈すれば 日本語としておかしくないな。
日本語も柔軟になったな
頭痛が痛いってのはともかく UniqueID は普通に色々なところで見かけるよね。
日本語のネイティブスピーカーとして今の暴言許して良いのかw
本当にそう? 俺は正直見たことない。 GUIDに限っていえば、あれは"Global-Unique" IDであって、uniqueがIDに掛かってる 訳ではないと思うけどな。
>>751 君の経験がしょぼい事なんか参考になりませんから
速攻論破わろたw googleコードサーチは便利だのう
755 :
デフォルトの名無しさん :2010/02/09(火) 10:16:09
タイマーが複数あるのですが、 タイマーの「個数」と それぞれの「時間」「分」「秒」に対する変数、なにかいいのないでしょうか minuteとsecondminuteは長いです jikan funはさすがに恥ずかしいですし iniファイルにも使いますので、人に見られてもよくタイプミスなどないような短く分かりやすい単語はないものでしょうか
time count hour min sec
timerのrが抜けた
758 :
デフォルトの名無しさん :2010/02/09(火) 10:54:15
ありがトンございます
>>754 論破てw
存在するからって正しい理由にはなってないだろう。頭悪いのかな。
英語圏でたった17万6千件程度しか使われてないんじゃ論拠としては弱すぎだよな。
UniqueID の検索結果 約 4,470,000 件中 1 - 10 件目 (0.30 秒) そっか、MSDNはマイナーだったのか。
存在しないことの証明は難しい よって Unique ID は用法として間違ってる【完】 これが本当の論破。
そもそもIDにもともとユニークであるって意味が含まれてるって前提がおかしいわけだが。 どこ情報よそれ?
>>765 それマジで言ってるのかな。
重複してたらどう"identify"するんだよw
頭悪すぎないか
さみしそうなおっさんだな…
文法における正しさと文脈における正しさをごっちゃにするからこうなる
共有ID
無線LANのSSIDはnon-uniqueらしい。
>>766 バーカ
問題が起きない時にidentifyできればいいんだよ
>>766 お前が頭悪すぎるんだが
文脈上uniqueである事が多いからって言葉の意味まで履き違えるな
>>772 じゃあその俺が履き違えているらしい、言葉の意味とやらを説明してみてよ。
まあ無理しなくていいよw
>>774 なに心拍数上がってんの?
そんなに悔しかったんだw
標準例外クラスにデバッグ情報を追加した派生クラスですが ExceptionAddInfo ExceptionWithInfo それともほかにいい案があるでしょうか?
普通は派生クラスの名前は 固有の名前 + 基底クラスの名前 としないか? DebugExceptionとか
>>774 ヤフーでググレよカスが
同定する、できる事がメインで、固有であるなんて意味は含まれてねぇ
ExceptionEx にしとけw
MyExceptionでFA
My〜なんて頭悪い方法は恥ずかしくてとても使えないわ
>>778 お馬鹿さん相手の会話って必ずループするよな。
3歩歩くと忘れる鳥頭とはよく言ったものだw
>>766
>>782 過去そのIDを使用して結び付けられた「何か」と
今回同じIDを使用して結び付けられた「何か」が「同じ物と認識される」なら
過不足無くidentify出来てる
馬鹿はそろそろ死ねば?
オレもIDはユニークで当然っては思ってたけど、 identifyは、同定するだけなので、固体の同定とも書いてない。 システムの同定、カテゴリの同定などありうるので、その辺 注意してから、レスしたがいいよ。 辞書見ると身分証明さえできればいい感じだし
じゃuniqueの方はどうなのよ?
>>783 自分で自分の吐いてる言葉の意味を理解してないんじゃないの君。
IDを使って同一性の検査が可能であるための必要条件の一つは、
同一でない2つに割り当てられるIDは必ず異なる(同じIDが割り当てられることはない)こと。
そしてユニークとは、「同一でない2つに割り当てられるIDは必ず異なる」ことを意味する。
ここまで噛み砕いて説明しないと分からないって、まともな教育受けてないだろ君は。
>>786 DBの入門書でも読んでみたらどうだい?
ていうか、それって十分条件じゃないの? 中学からやり直したほうがいいかもよw
よく使用されるuniqueでないidとしては名前が良い例だわな idがuniqueかどうかなんてdomain次第の結果論でしかない そして殊更に重複の可能性を排除した物をunique idと言う
uniqueじゃなかったらidじゃなくてtagにしてる俺
>>786 がDBの開発経験絶無だという事だけはわかる。
このスレだけいつも得意げに語っちゃうんだよね
まともな教育受けてないんだろ こういうキチガイは特にw
俺が含まれてるからその指摘はハズレだな。
だと思ってた
この人論破される度に自演乙で逃げてるけど 自演と言うには微妙なケースばかり
論破されたのは俺じゃないよ 俺は茶々入れてるだけ
この板も早急にユニークなIDを導入すべきだな。
でIDとuniqueってどう違うわけ?
はいはい、一緒でいいよ一緒で。
PKなら間違いなくユニーク
ID=有効なら常に同定できる。同定さえできれば何個だろうと関係ない。 unique=有効なら常に一つ。他に同じ物が無いだけで前回と違う物かも知れない。 uniqueID=有効なら常に一つの物と同定できる。
効果が有る事
次にお前は「効果ってなに?」と言う
効果ってなに?ハッ
わろたww
はいはい、一本一本
わ、わざあり…っ
すみませんゲームプログラムで広域に使う変数の名前が被りそうになり 自分でも紛らわしい名称ばかり付けてしまいます。 せめて変数名の頭に3D用は3D 2D部分は2Dと付けてしまいたい気分なのですが 長ったらしくなるため用途名だけがずらずらと増え続けています。 これはどう解決するのが妥当でしょうか? また何かゲーム系のオープンソースで変数の命名が上手な物があれば 教えて頂けると幸いです。
広域で使わなければいい。
>>818 ごもっともですが・・自分で考えるとします。ありがとうございました
オブジェクト指向で書きなさいよ そうでなければある程度長くなるのはしょうがない
せめて構造体ちゃんと使って階層付ければマシになる
そもそも、たいていの言語は "2D" や "3D" の接頭辞は付けられない。 3D レンダリング用のライブラリを C++ で作ってて、 名前を 3DObject とかにできずに苛ついた覚えがある。
>>817 C++ならnamespaceを分けるとか
にちゃん用のライブラリ作ってて 2ch って接頭辞が付けられなくてイライラした記憶があるな
ch2 にしたらええやん?
パイオツカイデーみたいなもんですか。
ディレクトリのなかのすべてのファイルの属性を調べ上げていくクラス&メソッドの名前が思いつかない
>>827 「調べ上げる」って随分抽象的だな。
名前が思い浮かばないんじゃなくて、そもそも何をやらせたいのかが頭の中で
まとまってないんじゃないのか。
VisitAllFilesかTraverse
enum
from/toとsrc/dstは、どう判断して使い分ければいいですか? また引数の順番はsrc,dst?dst,src?from,to?to,from?
from, to で書いてあるのってなに?具体的にどこで見たんだ。 俺も見た記憶はあるんだが。
835 :
834 :2010/02/17(水) 08:43:06
追記。 引数が2つかあるいはそれに近い数なら、from/toをそのままの順番で、 引数がたくさんあるなら、引数のin/out的な意味でoutを先頭に持ってきたくなる感がしてきました(このときto,fromは変な感じがするからdst,srcかな?)。 なんか微妙だなぁ・・・。
C のコピー系は dst, src だな。 to, from は確かになんか気持ちわるいね。
dst src の順て、代入のイメージだよね。
普通にfrom、toは序数だと思うんだけど違うの? コピーで言えば、srcのfromからtoまでをdstにコピーするって調子なんじゃないの?
>>838 そういうのは見たことないなぁ。
begin/endかfirst/lastをよく見る。
アルトオモイマス
alt_ommo_i_math
fromとtoが両方あると範囲と混同しやすいのであまり使われないんだと思う インスタンスメソッドでCopyFromやCopyToのように意味が明確ならいいが 順序はCの流儀に則るならdst, srcだけど、近代的なライブラリならsrc, dstが多いかな
通信ならfrom/toかなー?
JavaとかC#はsrc,dstだね。
destかとおもてたら、dstが多かったのか
src dst の検索結果 約 1,260,000 件中 1 - 10 件目 src dest の検索結果 約 2,550,000 件中 1 - 10 件目 文字数揃えたくなるけど
847 :
832 :2010/02/18(木) 16:47:05
from/toだと意味が特定できないんですね。 引数の順序はsrc,dstで統一することにします。 ありがとうございました。
>>846 "src" "dst" の検索結果 約 1,260,000 件
"src" "dest" の検索結果 約 741,000 件
Googleがdestをdestinationに補完しただけ
849 :
デフォルトの名無しさん :2010/02/20(土) 21:55:01
みんなパス関連はどうしてますか? /foo/bar/foobar.txt = filepath /foo/bar/ = dirname, path foobar.txt = filename, basename txt = fileext, extension foobar = ??
foobar.txt は filename foobar は basename が一般的じゃない?
本当はhogeとかfooとかbarとか使いたくないんだけど、使わないと上司から馬鹿にされんだよね 「プログラマなら常識だろう」って、そりゃ知ってるけどさ 話が伝わるのも円滑だけどさ、なんかさ、ダサい
C#で日本語のクラス変数関数名よく見かけるけど、はやってんの?
foobarはドトネトだとベタにFileNameWithoutExtension。
でもデリミタがスラッシュだからそっち方面ではbase nameと呼ぶ習慣なんだろうか。
あと、
> /foo/bar/ = dirname, path
これはかなり違和感ある。
単にDirectoryかDirectoryPathでないとおかしいのではないか。
dirname(DirectoryName)だと、"bar"のことを指すように聞こえる。
>>851 被害妄想に聞こえるけど
そんな奴はいないと思うけどw
ありがとうございます これでいこうかな /foo/bar/foobar.txt = filepath /foo/bar/ = dirpath foobar.txt = filename foobar = basename txt = extension
POSIX.1 的には、 path, dirname(path), basename(path) /a/b/c.txt, /a/b, c.txt /a/b/c/, /a/b, c
>>852 うん。
UMLのクラス図から直接生成させたり出来て便利だし
業務用語は日本語そのまんまで別に困らない。
オフショアするなら話は変るが。
>>856 レスd
そうなんだ。慣れてないからびびった
日本語名はインテリセンスがウンコになるけどな
うんこみたいなIDE使ってるからそうなるだけでは?
分かりやすさの面でメリットがあるとしても、 入力の手間を考えれば普通は日本語のシンボルは避けると俺は思うけどね。 本当に流行ってるのかそんなのと思うけど。 それに、コメント書くだけでもありがちなIME切替ミスに伴うイライラ(「pりヴぁて」とかw) とかも増えそうw しかしMSはなんでWindowsのGUIを設計する時点でIMEのモードをキャレットで表示できるようにしなかたのかね。
>>860 今は亡きWXGがモード表示をキャレットのところでやってたなー。
うちでは業務知識だけそのまま日本語にするようにしてるな。 ドメインモデルはほぼ全て日本語のクラスになってる。 ビジネスルールの実装部分とか見てると ああこれもう客に書いてもらうのも可能な時代なんだなぁと・・・
863 :
デフォルトの名無しさん :2010/02/22(月) 00:22:11
データベースのテーブルから 条件に一致するレコードのIDを探してきてIDを返す。 もし一致するレコードがなかった場合、 INSERTしてから、レコードのIDを返す ...というようなメソッドなのですが、よい名前が浮かびません; よろしくお願いします。
げっとれこーどあいでいー
FindRecord(id)とか
getid
preProcess(); mainProcess(); postProcess(); mainじゃない部分(preとpost)をなんて言いますか? prePostでもいいんですが、もっと格好いいのがあればそれにしたいです。
initializeとfinalize?
>>868 別々の名前じゃなくて2つ併せての総称が欲しいです。
prologue epilogue
>>870 「mainの処理」と「mainの前後の処理」の2つに分けたいです。
後者の命名に困っています。
envelop ?
>>872 うーん、見てすぐ意味がわかるか微妙な気がします。
mainに対してsubというのを今思いつきましたが、前後という意味が消えて、これも微妙かなぁ。
prePostが一番いいのかなぁ。
around かなぁ? emacs 上の elisp で関数に機能を後付けするのがあるんだけど 実行の前後で動かす場合は 'around ってモード指定をしてた。 あと sub は無いと思う。自分は sub って聞くとむしろ main から呼ばれる方と思っちゃう。
ベタだけど main wrapper
>>874 うーん、処理の流れにおいての前後をaroundというのは、イメージが沸かないのですが、
私に英語力がないだけですかね。
subについては確かにそうでした。
>>875 wrapperと聞くと、利用者から直接触れなく(触る必要がなく)するための物というイメージがあります。
>>876 だからさあ、君みたいな人が直面してる問題はそもそも命名じゃないんでしょ。
処理の抽象化、つまりそれが何をするための関数なのか、っていう意味づけが
ちゃんと出来てないんだよ。
どこの世界に「mainの前後の処理」なんていう抽象化があるんだよ。
ちゃんと処理の意味づけが出来てないんだから命名なんてできるわけないじゃん。
強引にエスパーしてcontext_switch
firewall
prepost { ... main { ... } ... } こういうのを想定してるのか? もうちょっと説明しないとみんなわけがわからない飢餓
__attributes__((constructor, destructor)) void f(void); int main(void){ ... } こういうのもあるからラッパーとは限らないかもな
テンプレートメソッドパターンを再発明しようとしているのかなー??
本日のエスパースレ
884 :
867 :2010/02/24(水) 22:05:20
class Hoge { void process() { xxxProcesser.preProcess(); /* ここにいわゆるmain */ xxxProcesser.postProcess(); } }; こんな感じです。
885 :
867 :2010/02/24(水) 22:20:07
デザインパターンで言えば、TemplateMethodパターンというよりStrategyパターンのような気がします。
>>884 このソースでいうprocessの部分の名前が決めたいの?それともHoge?
「どうやって実行するか」ではなく、「何を行うか」を名前にした方がいいんじゃね?
>>886 xxxProcesserのxxxの部分です。
>>887 preProcessとpostProcessに関しては、これがぴったりだと思っています。
>>888 xxxProcesserていうのはプロパティかローカル変数なんでしょ?そこはprocessorでいいんじゃないの?
>>889 XxxProcesser xxxProcesser;
のつもりでクラス名と変数名を同じに考えていました。
変数名は確かに適当でもいいですが、クラス名(インターフェイス名)はProcesserだけだと後で名前が衝突する可能性があるかなと。
じゃあHogeProcessorにするかEncoderみたいな具体的なもので
こんなアフォな質問者に回答(になってないと思うがw)する奴も回答する奴だ。 処理の中身はワカンネエがとにかく名前が欲しいって正気の沙汰かよ
>>891 うーん、確かにそのぐらいしか名前につけるものがないのかもしれません。
>>892 どのメソッドのどのタイミングで呼ばれるかの条件において、処理の内容を切り替えるStrategyパターンっておかしいですかね。
pre/postと呼ぶのがぴったりな処理も世の中にはあると思いますが。
なぜそこまで処理の内容を隠したがるんだw
クラスならコンストラクタとデストラクタがpre, postの役割でいいんじゃね。
>>894 命名に関係しないからです。
例えば、
class Encoder {
void encode() {
xxxEncoder.preEncode();
/* ここにいわゆるmain */
xxxEncoder.postEncode();
}
};
としたところで、命名の解決にはならないと思うんですが。
>>895 XxxProcesserは抽象クラスです。
Hogeの利用者がXxxProcesserのサブクラスを生成し、Hogeに渡します。
もうABCProcessorとかでいいよ、順番も表せてるっぽくていいだろ?
decorator か、 filter じゃねえ? xxxは後ろに来るけど。
struct ほげほげ{ preProcess() = 0; postProcess() = 0; }; void encode(ほげほげ &p){ p.preProcess(); エンコード処理 p.postProcess(); } たぶんこんなイメージなんだろうとエスパー。 包むイメージでFolderとか?
それDecoratorだべ。
もうbegin,endでいいやん
もうMae,Atoでいいやん
劇的Before,Afterでいいやん
天下の.NETも BeginUpdate() Update処理 EndUpdate() だしな 従っとけ
>>898 それならPrePostProcesserにしたいです。
>>899 processDecoratorというのはいいですね。
>>900 >>867 にも書いたように他によさそうなのがなければそれにするつもりです。
>>901 ,902
pはメンバ変数にするつもりですが、あとはそんな感じです。
Strategyパターンではなく、Decoratorパターンになるんですね。
デザインパターンは似たようなものに見えてしまって難しい。
>>903-906 そこはpre/postで満足してます。
ProcessDecoratorにします。
どうもありがとうございました。
なるほど、ProcessDecoratorは悪くない気がする。
Decoratorパターンと混同しそうだ
やることによるが、decorateしたものを、元のものにフィーチャー が追加されたように扱えるのでなければ、Decoratorパターンとは 違うのではないか。
形式的な設計から名前を付けるのがそもそも間違ってるだろ 処理の目的に応じて付けるべき
RAIIを利用して、コンストラクタでlock、デストラクタでunlockする処理がありますよね。 これと同じように、コンストラクタでパラメータXを書き換えて、デストラクタでパラメータXを元の状態に戻す処理を考えています。 このクラスの名前をお願いします。
UnwindProtect
>>913 Lispで使われてる呼び方でしょうか?
ちょっと馴染みがなくてわかりにくく感じます。
>>877 お前一人が話についていけてないだけなんだから噛み付くなよバカが
完全に解決してんじゃねぇか
916 :
912 :2010/02/25(木) 16:50:58
SetXInScopeのように後ろにInScopeを付けるのを思いつきました。 しかし、クラス名なのに動詞というのもおかしいでしょうか?
TemporaryValueBind bind(X, 新しい値). Excite: 一時的な値のひも ImTranslator: 一時的に値をバインドする
XState
>>917 束縛という感じじゃない気がします。
>>918 変更した値がスコープを抜ける時に元に戻る感じがしないです。
スコープの終わりで値が元に戻るっていうのがすぐ分かる名前がいいです。
DirectX使ったゲームの描画状態管理なんかではXStateBlockを見かける
>>920 確かにBlockというところからスコープの間だけというのが読み取れますね。
これにします
ありがとうございました。
>スコープの終わりで値が元に戻るっていうのがすぐ分かる名前がいいです。 これを専門用語で「変数の束縛」って呼ぶんじゃないかなって思います。
bindは広いからなあ なんでもかんでも束縛と呼べる
let
lispでletをキーワード的に使いますがletを選んだ目的(語源)は一体なんだったんでしょうか?
論文や教科書なんかで変数や記号の定義によく使うからでは? Let A be a set. みたいな。
やっぱりletは現代風な束縛って意味とはあまり関係ないんですか。
KeepX var;
サイトランキングを作っているのですが、 1.IN・OUTの履歴を記録しておくテーブルのテーブル名 2.そのレコードがIN・OUTのどちらなのかを記録するカラム名 1にはサイトID、IPアドレス、日時などのカラムがあります。 2についてはシンプルにtype、もしくはdirectionなどを考えたのですが、 おかしいでしょうか? よろしくお願いします。
〜の数ってみなさんどうしてるんでしょうか。 Numじゃ意味違うし・・・。
ItemCount
NumとNoで使い分けてるのはどっかで見た
934 :
929 :2010/02/26(金) 20:48:47
まあ、とりあえずINとOUTの履歴を同一のデータ構造で扱うのは変。 記録は別々で行っておいて、必要なら表示の段階で統合すればいい。 それなら名前に悩むことないと思うし。
action_history type
>>935 将来にわたってINとOUTしかないんならそうだけど、
内部での移動とか考える可能性があるなら統合しておく手もある
>>930 意味って違うの?
プリフィクスとしてnumofとかnofとか付けてしまえ、というのはアリかもしれない。
NumOf とか 〜Count とか 〜s とかだなぁ。自分の場合
>>938 a number of と the のことじゃね。
nXxxxxs だべ
>>938 numberは語順で意味が変わるから、サフィックスのつもりなんじゃないか?
the number of 〜s ≠〜 number
count of 〜s = 〜 count
>>940 プログラムで a number of は普通ない。単に複数形にするだけでいいし
リスト 集約とくらいは区別のできる名前にしなよ
リストだのコレクションは 〜List とか 〜Collection だなぁ。 言語の命名ガイドラインでもコレクション系はそういうの推奨してることあるしね。
おれは以下のように使ってるが間違ってないよな? Hogeの数 numHoge hogeCount Hoge番号 hogeNumber hogeNo
問題ないと思うけど。 どのみち人毎の多少のブレは文脈で判断するしね。
947 :
929 :2010/02/27(土) 22:10:45
>>935 >>937 ご指摘の通り、将来の拡張性も考えて一つのテーブルにしています。
集計もラクそうですし。
>>936 historyにtypeですね。
これが分かりやすくていいかもしれませんね。
1.はclicksとかtracksとかも考えたのですが、
かえって分かりにくいですかね。
948 :
デフォルトの名無しさん :2010/02/28(日) 00:19:05
変数名とかでルールとして変数名を 日本語名をそのままローマ字にしてるプロジェクトと ちゃんと英語に翻訳しているプロジェクトがあるのですが 企業文化以外にこうした方がこれがメリットとかってあるのでしょうか?
統一さえされてればどっちでもいい
ローマ字だと勝手に発狂した上にルール守らないPGが出てくる可能性があるかもしれない。 あと海外に外注出し辛いかもしれない。出したことないからわからんし仕様書もローマ字で入れときゃいいだけだろうけど。 英語に翻訳だと業務用語が上手く翻訳出来なくて不自然になるかもしれない。 あと間違った翻訳してたりすると恥かしい。大規模にやってる場合は各人が書いてるコードの ローカル変数まで一気にリファクタリング、なんてのはとても出来たもんじゃないから後から修正はほぼ無理。
昔BrakBardって変数を見たことあるなぁ
uwarite
ちなみに
>>951 は烏のことだった。いっそローマ字の方がよかったような
Serchは今でもたまに見る。
>>953 10ptの日本語フォントだと、鳥と烏も同じに見えちゃうわけで、
そっちはそっちで問題だなw
日本語変数名はそういう問題もあるか。 ローマ字も"ju" vs "jyu" とか "xa" vs "la" みたいなので派閥闘争あったりするのかな。
それ、3/4はローマ字じゃないしw ヘボン式/訓令式の話しなら shi/si、ja/zya とかだ
そろそろスレタイ読もうねボクチャンたち
>>957 何を突然
ヘボン式/訓令式の話なんか誰もしてないが?
スレ違い失せろカス
PHP で、簡単なタイマーを作ろうとしています。 if ($timer->before('2011-01-01 00:00')) { echo "まだ 2011 年じゃないです。\n"; } if ($timer->after('2010-01-01 00:00:00')) { echo "もう 2010 年を迎えました。\n"; } ここでもうひとつ、特定の期間であれば true を返すメソッドが欲しいのですが、 if ($timer->period('2010-01-01 00:00:00', '2011-01-01 00:00:00')) { echo "2010 年です。\n"; } before や after に比べると、period って直感的じゃないなー、と・・・。 何かいい名前はないでしょうか?
between
isAfterTime, isBeforeTime, isTimeBetween
$timer->in(xxxx,yyyy) がいいと思うんだけどここまで短かいとちとあれかね。
それならwithinでいいんじゃないの。より意味も狭いし。 しかし、php知らんのであれだけど、 [時刻]オブジェクトが「ある時刻と時刻の範囲内かどうかを調べるメソッド」を持つよりも、 [時間範囲]オブジェクトが「[時刻]を引数にとってそれを含むかどうかを調べるメソッド」 を持つほうが考え方としては分かりやすいんじゃないのかね。
それはない。
>>968 無知 and/or 経験が足りないんだね。
だからなんでスグ設計論になるんだよ
>>967 知らんなら
せめて黙ってろ
無知ゴミが
973 :
963 :2010/03/05(金) 07:32:19
みなさんありがとうございます! within で行こうと思います。 between は MySQL のイメージで、境界値を含みそうですが、 自分が作ろうとしているのは // 現在が 2010-01-01 00:00:00 と仮定 $timer->after('2010-01-01 00:00:00'); // => true (境界値含む) $timer->before('2010-01-01 00:00:00'); // => false (境界値含まない) という仕様なので、within が一番近い気がしました。 ありがとうございました!
frameskip
>>975 それは処理落ちがおきた時の対処法な気がします。
処理落ちが起きている状態の呼び方が知りたいです。
lag
>>977 lagだけだと通信のラグをイメージしてしまいます。
processLagかなぁ。
missing of step
frameskip でググって英語サイトの前後の文脈読んでみたりしたけど 一言であらわす単語はあんまり見あたらないなあ。
framerate drop
処理落ちって考えてみると結構漠然とした概念だな。 だからwikipediaでも日本語版にしか載ってないんだろう。 全部を処理することを優先した結果リアルタイム性がなくなることも、 リアルタイム性を優先した結果特定の処理をスキップすることも、どっちも 処理落ちっていいがちだけど、本当は全然違う概念のような気もする。 前者ならdelayで、後者ならframe rate dropかね
>>979 ,981
>>976 と同じ感想です。
>>980 はっきりとした用語がないのでしょうか。
>>982 規定量の処理を規定の時間内に行えない時点で処理落ちと呼べると思います。
処理落ちになった時の対処法に処理をスキップするという方法があるという解釈です。
delayだけだと、これも通信をイメージしてしまいます。
processDelayとかframeDelayの方向で考えます。
ありがとうございました。
処理落ち?もっと高いグラボ変え。HAHAHA
C#なんですけど、この場合a,b,c,p,nにそれぞれどんな変数名つければいいでしょうか? string p = "C:\foo\"; string n = "bar.txt"; string a = p + n; string b = p; string c = n;
それだけでは決めない 変数の使用目的によって決める
C#のPathクラス参考にして p,b=>dirname n,c=>filename a=>fullpath
なるほど!fullpathかー その言葉が思いつかなくてどう区別すべきか悩んでた ありがとう
人をお前呼ばわりして平気な奴が「語感がおかしい」って面白くないジョークだな
↑馬鹿
語感はおかしくないと俺は思う ただ文章が淡々としているから冷たく感じてしまい、 批判をしてるように見えてしまったのではなかろうか
まあ正直にいうと、lagとかdelayって聞いて通信を連想するのはちょっと変じゃないの? とは俺も思うんだけどねw
そう? delayはともかくlagって聞くと通信回線が重いイメージわくけどな。 まあ人それぞれってことで。
通信を連想するのが変だと言っているのではなく、 通信方面専用のワードだと思ってるとしたら変だって意味ね念のため。
どうでもいいけどそろそろ次スレ立ててね
>>983 ネトゲオタの人なのかも知らんけど
そこまで行くとお前がおかしいと考えるべきだよ
というかそんなケチつけるならもっと前提情報をだしなよ
task incompletion
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。