クラス名・変数名に迷 ..
75:デフォルトの名無しさん
09/01/07 20:13:54
>>74
「売られた」時に、製品が必ずその所有者への参照を内部に持つようにすれば、
Trade()の引数は買い手と売価だけでよくなるんじゃない?
76:デフォルトの名無しさん
09/01/07 20:27:52
>>74
A.GetB()は「Aが(自分の持つ)Bを取得する」って意味だ
AはBを取り出してくるが、その後どうされるかまでは知ったこっちゃ無い
77:デフォルトの名無しさん
09/01/07 20:48:04
>>75
なるほど。
>>76
そういう意味だったんですか。
今まで勘違いしていました。
78:デフォルトの名無しさん
09/01/07 21:04:10
>>74
ふつうは、主語.述語(目的語)とするものだと思う。
とくに、述語が他動詞の場合には。
下駄雪駄がそうじゃないというのは、今指摘されて
初めて感じた。w
たしかにそうかもしれないけど、むしろこっちが
パターンとしてはレアなのでは。
79:デフォルトの名無しさん
09/01/08 00:03:38
>>74
「AからBを取得する」は主体(主語)が抜けてね?
主体がメソッドのレシーヴァになるはずだよね。
主体がオブジェクト化されてないから混乱してるんじゃない?
80:デフォルトの名無しさん
09/01/08 12:11:45
>>78
たしかにgetter/setter以外は主語.述語で自然に読めるものばかりでした。
>>79
x = a.GetX();
xが主体ということですか?
ちなみにこういうケースではどちらの命名が自然に見えます?
item = shop.Buy(itemID, money); // アイテムの種類を示すIDと代金を渡しアイテムを得る
item = shop.Sell(itemID, money); // アイテムの種類を示すIDと代金を渡しアイテムを得る
81:デフォルトの名無しさん
09/01/08 12:19:53
>>80
どちらも虫唾が走るほど気持ち悪い
指摘するとなると完全に命名の範疇外の話になるんで、どっかOOP初心者スレにでも行って下さい
82:デフォルトの名無しさん
09/01/08 13:42:00
>>81
>>80のメソッドにBuy/Sellを名付ける事自体が間違ってましたか。
どうもでした。
83:デフォルトの名無しさん
09/01/08 17:51:05
>>80
そういう系にしたいならこんなのは?
player.buy(shop,item,price)
オレ的にはかなり自然。
84:デフォルトの名無しさん
09/01/08 18:08:39
>>83
なるほど、参考にします。
85:デフォルトの名無しさん
09/01/08 18:10:01
(new Transaction(buyer, seller, item)).commit()
86:デフォルトの名無しさん
09/01/08 19:19:11
>>80 真ん中
aだろ。
aが自分のXを取得する。
それをプログラマがxに渡してるだけ。
87:デフォルトの名無しさん
09/01/09 00:22:41
>>85
トランザクション処理というぴったりのものがあったんですね。
>>86
なるほど。
88:デフォルトの名無しさん
09/01/09 01:09:34
>>80
私の経験では
クラス名.メソッド名 で自然な英語になるようにメソッド名をつける場合もあるし、
クラス名を意識せず、メソッド名単独で意味を主張するようにメソッド名をつける場合もある。
両方あります。
例えば頻繁に使われる get なんかでも
shop.getItem
は意味の取りようによっては、
・店が得るのだから、アイテム引数をともなって、店にアイテムを設定する(メンバー変数に登録、setterのような意味)
・店のアイテムを得る。(メンバー変数をを得る、普通のgetterの意味)
などのように、2通りの解釈ができないこともない。
どのようにメソッド名をつけるかはコーダーのセンスよると思います。
したがって、自然に読めるのが一番ですが、限界があるのでどうしようもないというわけです。
一人で開発するときは、統一さえしておけばそんなに大きな問題ではありません。
しかしチームで開発するときは、
「これこれの動詞はbuyで統一しよう、getはこういう意味にしよう」
等のように、コーディング規約が必要になるでしょう。
89:デフォルトの名無しさん
09/01/09 01:19:43
なんか生活に物足りなさがあると思ったら、このスレが次スレになってて
お気に漏れしてたのか
90:68
09/01/09 02:22:29
今頃出てきてあれだが、アクセサについて。
あるオブジェクトに対してset/get指示をだすが、オブジェクトからみれば自身のメンバに対して
やはり同じようにset/getを行うので、逆になっているわけではないよ。
>>83
オレ的にもそんな感じ。
一点、priceが商品の値段を意図しているのであれば、buyメソッド内でshopに問い合わせを行うようにする。
今回の焦点ではないけどね。
91:83
09/01/09 09:11:24
>>90
質問者が引数にmoneyって書いてたからな。
そこは値段だろうと思ってpriceにした。
個人的にも、priceは明示的なほうがいいと思う。
shop.getPrice(item)とか。
>>85
いわゆるトランザクションには、プログラム的に
ちょっと特定的な意味がありがちなので、念のため。
プログラマにそう言ったら混乱することもありそう。
92:デフォルトの名無しさん
09/01/09 15:41:04
>>91
>>80のmoneyは商品の価格ではなく、購入者が提出するお金だと思う。
なので何らかの手段でおつり、不足エラーなどを通知する必要が出てくるものだろうと思った。
一方、buyer.buy(shop, item)とすれば、関数内で
if (所持金<shop.getPrice(item)) エラーリターン
this.money -= shop.getPrice(item)
のようにできる。
基本的に店って主体になりにくいよね。ザ・コンビニみたいなゲームなら別だろうけど。
93:質問者
09/01/09 18:39:39
>>88
GetItem→BuyItemと置き換えると、
・店が(引数に指定された)アイテムを得る→店が(引数に指定された)アイテムを買う
・店が(保持している)アイテムを得る→店が(保持している)アイテムを買う
まさにここですね。
getterは後者の意味、Buyに関しては前者の意味が一般的というところに混乱しました。
>>90-92
moneyに関しては購入者が提出するお金のつもりで書きました。
トランザクション処理を勉強して>>83か>>85にしようと思います。
ありがとうございました。
94:95
09/01/09 18:44:09
> 店が(保持している)アイテムを買う
書いてから気が付いたんですが、自分が保持してる物を買う?というのは変ですね。
ということは自然と前者になるということでしょうか。
95:デフォルトの名無しさん
09/01/09 18:44:54
↑95じゃなくて93でした。
96:デフォルトの名無しさん
09/01/09 21:45:10
>>94
あんまりヘンに考え込まないことを勧める。
命名は慣習的なところも多いので、だいたい
納得できたら、自分ルールにしてパクッと
飲み込め。
完全な名前を定義することが目的じゃないだろ?
97:デフォルトの名無しさん
09/01/13 22:49:43
>>94
あんたの目的は、命名法を究めることじゃないはずだ。
妥協も大切だ。
98:デフォルトの名無しさん
09/01/14 02:15:34
命名以前に、95は思考が絶望的にオブジェクト指向じゃないだけ
ほんと、絶望的
99:デフォルトの名無しさん
09/01/14 23:56:01
URLリンク(google-styleguide.googlecode.com)
Google?
100:デフォルトの名無しさん
09/01/15 13:10:27
100
101:デフォルトの名無しさん
09/01/15 13:11:00
101
102:デフォルトの名無しさん
09/01/20 01:45:08
sampleとexampleの違いって何ですか?
103:デフォルトの名無しさん
09/01/20 01:46:44
板違い
104:デフォルトの名無しさん
09/01/20 21:37:36
example は例として一般的な語。
sample は実例というか、ちゃんと動くようなもの。
境目は適当。
105:デフォルトの名無しさん
09/01/21 16:16:44
>>104
なるほどー。ありがとうございます〜
106:デフォルトの名無しさん
09/01/21 16:17:27
失せろボケ
107:デフォルトの名無しさん
09/01/21 16:25:58
TimeOfNowの人はまた逃げたのか
>>44で偉そうにログ出せといってログ張られて逃げ出すとか
まね出来ない
108:デフォルトの名無しさん
09/01/21 19:49:08
>>107
本格的にアタマおかしいだろw
いや逃げてないし、君が望むなら君のような馬鹿は徹底的に叩き潰して差し上げるけど?
で、どこで>>40のようなことをこの俺が言ったと言うんだ、ん?
109:デフォルトの名無しさん
09/01/21 19:52:31
っていうかこの馬鹿、"time of now"っていう言い回しが英語として
成立してないと思ってるから、嘲笑のつもりで「TimeOfNowの人」とか言ってるんだろうが、
それが自分自身の馬鹿を曝け出しているに過ぎんことにすら気づかないんだから
おめでたいとしか言いようがねえなw
110:デフォルトの名無しさん
09/01/21 20:02:58
>>107
スレが静かになったからって、
わざわざ悪魔召還すんな!
111:デフォルトの名無しさん
09/01/21 20:19:40
>>109
検索して引っ掛かるけど特殊な言い回しだよ。そこは蒸し返すなよ
112:デフォルトの名無しさん
09/01/21 20:21:47
Jetztzeit
113:デフォルトの名無しさん
09/01/21 21:01:53
>>111
別に「蒸し返す」つもりもないけど、別に特殊でもなんでもないよ。
前スレでそういうことを主張している人間がいたのは記憶しているが、
その人が何もわかってないだけだな。
前にも名詞的に使われてるnowを「倒置構文だ」とトンチンカンなことを
言ってる人がいたけど、このスレはそういうのが多い。
114:デフォルトの名無しさん
09/01/21 21:08:55
Now is the time.
が特殊な使い方といっていた人を指してトンチンカンと?
115:デフォルトの名無しさん
09/01/21 21:31:29
>>114
相手が言ったことに反論する能力を身につけようよ。
俺は言った。
名詞的用法をさして「倒置構文だ」とトンチンカンなことを言っている人がいた、と。
君に問うが、>>114のそれは倒置構文ですか?
116:デフォルトの名無しさん
09/01/21 21:34:01
ああごめん、>>114のそれは確かに倒置構文ととることもできる、
というかそういう解釈の方が一般的かも知れんね。
でも俺の言っているのはそれじゃない。
117:デフォルトの名無しさん
09/01/21 21:40:09
俺がトンチンカンと言うのは、
"Now is the time to 〜."
これを倒置構文と言った人がいたんだな。
これは倒置構文じゃないよ。ただnowを名詞的に使ってるだけ。
118:デフォルトの名無しさん
09/01/22 00:47:47
英語どうこうじゃなく、センスを笑われてる事にそろそろ気付いたら?
119:デフォルトの名無しさん
09/01/22 01:05:26
そういう物言いが「セカイ系」のそれだと言ってるんだけどね。
まあ頭悪いから言ってる意味が理解できないのだろうけど。
そのセンスっていってる奴の答えが「コインいっこ入れる」式のぎこちない命名だから
なお笑わせてくれるんだがw
120:デフォルトの名無しさん
09/01/22 01:21:45
コインいっこ入れる
121:デフォルトの名無しさん
09/01/22 01:36:58
>>119
本格的にアタマおかしいだろw
いや言ってないし、君が望むなら君のような馬鹿は徹底的に叩き潰して差し上げるけど?
で、どこで>>119のようなことをこの俺が言ったと言うんだ、ん?
122:デフォルトの名無しさん
09/01/22 01:37:48
改変してて吐き気がしたわ
自分からやっといてなんだけどなw
123:デフォルトの名無しさん
09/01/22 09:13:21
名前が英語の文としてどれだけ自然かよりも、
同じプログラム内で一貫した名前の付け方をする事の方が重要だと思う。
接頭辞+名前みたいなのは自然な英語にはならないだろうし、
一貫して使うなら略記的な名前でもぜんぜん問題ない。
(母音を省略して書くとか普通にするし)
コインに関するモジュールを書いていたら、
・コイン_いっこ入れる
・コイン_いっこ取り出す
とかもありそう。
124:デフォルトの名無しさん
09/01/22 10:27:10
>>109
「TimeOfNowの人」って呼ばれるのが嫌なのか?
そう呼ばれるとお前さんは嘲笑されてると感じるのか?なぜ?
まぁその点はどうでもいいけど
嫌なら自分でコテハン付けてくれよ
いい加減お前さんには固有名詞が必要なんだよ
125:デフォルトの名無しさん
09/01/23 02:34:34
TimeOfNowはなんか笑いがこみ上げて来るんだよな…。
126:デフォルトの名無しさん
09/01/23 04:25:47
lヽ ノ l l l l ヽ ヽ
)'ーーノ( | | | 、 / l| l ハヽ |ー‐''"l
/ T | | |/| ハ / / ,/ /|ノ /l / l l l| l T ヽ
l ・ i´ | ヽ、| |r|| | //--‐'" `'メ、_lノ| / ・ /
| o l トー-トヽ| |ノ ''"´` rー-/// | o |
| ・ |/ | l ||、 ''""" j ""''/ | |ヽl ・ |
| N | | l | ヽ, ― / | | l N |
| !! | / | | | ` ー-‐ ' ´|| ,ノ| | | !! |
ノー‐---、,| / │l、l |レ' ,ノノ ノハ、_ノヽ
/ / ノ⌒ヾ、 ヽ ノハ, |
,/ ,イーf'´ /´ \ | ,/´ |ヽl |
/-ト、| ┼―- 、_ヽメr' , -=l''"ハ | l
,/ | ヽ \ _,ノーf' ´ ノノ ヽ | |
、_ _ ‐''l `ー‐―''" ⌒'ー--‐'´`ヽ、_ _,ノ ノ
127:デフォルトの名無しさん
09/01/25 00:04:20
また逃げてるw
これはもう芸の領域だなw
128:デフォルトの名無しさん
09/01/25 01:24:31
荒らすなヴォケ
129:デフォルトの名無しさん
09/01/26 16:08:05
よろしく
以下、それぞれを文字列として格納する変数なんだけど、
半角文字全部→string
半角英字→alphabet
半角数字→num
半角記号→character
半角英数→symbol
string とcharacterとsymbolがごっちゃになってわかりにくそうなんだけど、
他にいいアイデアがあるかな?
130:デフォルトの名無しさん
09/01/26 16:08:59
ごめんまちごうた
半角文字全部→string
半角英字→alphabet
半角数字→num
半角記号→symbol
半角英数→character
だったorz
131:デフォルトの名無しさん
09/01/26 16:37:16
is系の関数に従ってみればどうだろう。
半角英数はalnum
半角文字全部はascii
など。
132:デフォルトの名無しさん
09/01/26 16:57:59
なるほど、サンクス
半角文字全部→ascii
半角英字→alpha
半角英字大文字→upper
半角英字小文字→lower
半角数字→num
半角記号→symbol
半角英数→alNum
記号がなかったのでSymbolを流用して、全角の場合は修飾詞でWideをつければよさそうだ。
これでいってみるぜ
133:デフォルトの名無しさん
09/01/26 21:40:59
ctypeだとispunct(punctuation)ってのはあるね。
記号という意味じゃなく区切り記号という意味になってしまうが。
ASCIIの範囲では、印字可能な文字のうち、スペースと英数「以外」
134:デフォルトの名無しさん
09/01/27 15:41:57
>>133
区切り記号とは違うと思うのでsymbolにしてみた
半角全部-半角英字-半角数字-半角スペースというイメージなので。
んだが、半角文字全部asciiで、全角文字全部のとき
修飾詞つけてwideAsciiってなんか変な感じw
文字全部→ascii wideAscii
英字→alpha wideAlpha
英字大文字→upper wideUpper
英字小文字→lower wideLower
数字→num wideNum
記号→symbol wideSymbol
英数→alNum wideAlNum
カナ→katakana wideKatakana
ひらがな→none wideHiragana
漢字→none wideKanji
半角のほうに修飾詞singleをつけて、文字全部をsingle(半角全部)とwide(全角全部)にしようかしら。
つか、こんなの自分が理解してればどうだっていいよな・・・
privateなメンバだし・・
135:デフォルトの名無しさん
09/01/27 16:53:48
singleはない
136:デフォルトの名無しさん
09/01/27 17:10:34
ispunctの説明を見てくれば良かったのに。
半角英数、半角スペース以外の表示可能な文字なんだけどな
137:デフォルトの名無しさん
09/01/27 22:04:31
>>134
1バイト文字以外も考慮するのなら、
UNICODEの文字カテゴリの名前を参考に
したら?
多すぎてイヤになるかもしれんが。w
138:デフォルトの名無しさん
09/02/02 19:22:44
お題が来ないな・・・
139:デフォルトの名無しさん
09/02/02 21:38:20
じゃあTimeOfNowの話でもしようぜ
140:デフォルトの名無しさん
09/02/02 21:45:54
アメリカ旅行で時間聞きたいときは
Excuse me, do you have the time?
っていえばいいんよね
141:デフォルトの名無しさん
09/02/02 21:48:04
掘った芋いじくんな と聞いたけど……
142:デフォルトの名無しさん
09/02/02 22:53:52
掘った芋いじんな だよ
143:デフォルトの名無しさん
09/02/02 22:59:23
サンクス!
144:デフォルトの名無しさん
09/02/02 23:03:26
アメリカ人でも見ず知らず相手なら婉曲に>>140使うよ
145:デフォルトの名無しさん
09/02/02 23:05:54
変なジョークで返されるかもしれないけどね
146:デフォルトの名無しさん
09/02/02 23:21:33
Excuse me, do you have the time of now?
147:デフォルトの名無しさん
09/02/02 23:25:05
─┬─ ・. . _ γ⌒ヽ ./ |\ | .
│ | レγヽ /_) .| | ┼ | \ | /⌒ヽ| /
│ | | | |. ヽ_ .ヽ___ノ. │ | \| ヽ__ノ.|/|/.
/\___/ヽ
(.`ヽ(`> 、 /'''''' ''''''::::::\
`'<`ゝr'フ\ + |(●), 、(●)、.:| +
⊂コ二Lフ^´ ノ, /⌒) | ,,,ノ(、_, )ヽ、,, .::::|
⊂l二L7_ / -ゝ-')´ + | `-=ニ=- ' .:::::::| +
\_ 、__,.イ\ + \ `ニニ´ .:::/ +
(T__ノ Tヽ , -r'⌒! ̄ `":::7ヽ.`- 、 ./|
ヽ¬. / ノ`ー-、ヘ<ー1´| ヽ | :::::::::::::ト、 \ ( ./ヽ
\l__,./ i l.ヽ! | .| ::::::::::::::l ヽ `7ー.、‐'´ |\-、
148:デフォルトの名無しさん
09/02/02 23:28:37
はいはいわろすわろす
149:デフォルトの名無しさん
09/02/03 00:01:42
ちょっといいですか?だと思っていたが、時間を聞くための婉曲表現でもあったのは知らなかった。
150:デフォルトの名無しさん
09/02/03 00:03:25
と思って調べたらちょっといいですかはtheがいらないみたいだっていうかそれだけの違いで!
メリケンこええ。
151:デフォルトの名無しさん
09/02/03 00:18:12
もう死ぬ
もう死ね
とか、日本も外人にとっては怖そうだぞ
152:デフォルトの名無しさん
09/02/03 01:40:09
TimePartOfNowならすんなり受け入れられるんだがな
それ以前に定数に対してNow,Today,TimeOfNowと付けるんだから半端ないわ
153:デフォルトの名無しさん
09/02/03 02:15:30
だんだん慣れてきた
154:デフォルトの名無しさん
09/02/03 20:15:30
>>152
今頃になってネチネチいうって難儀な性格だねホント。
正直精神分析の対象に思える。
しかも言うことが素っ頓狂だし。
まず結論から言うとTimePartOfNowとTimeOfNowは同じ'Now'を使ってもそれの
意味しているものが違うだけで、どちらもお題の答えとして正しい。
君のいうTimePartOfNowの'Now'はNowという名前のデータ構造が存在していることを
前提とした命名だろ。
俺の言ったTimeOfNowの'Now'は文字通りのNowだから。
普通の英会話で"date of today"とは言っても"date part of today"なんて言ったら意味不明だろ。
それから、定数(というかマクロで定義された即値)を大文字をアンダースコアで区切りで
表現するのってC/C++の慣習だろ。
他の言語じゃあまりやらないよ。(そもそもマクロで即値定義なんて原始的なことやってるの
C/C++とアセンブラぐらいしかないし。)
つーか基本的に意味ない習慣だからCでも自分だけで完結するコードなら俺は従わない。
155:デフォルトの名無しさん
09/02/03 20:17:56
>>154
今頃になってネチネ(ry
156:デフォルトの名無しさん
09/02/03 20:21:54
最後に肝心なことを言い忘れたが、キャメルかパスカルかアンダーバー区切りか、
なんて命名の本質と何も関係ねえだろw
なんていうか、語るに落ちてるんだよな。
「命名以外の話題は禁止」と執拗にイチャモンをつける一方で、
同じ口で平気で命名の本質と何も関係ないことに固執する、この一貫性のなさ。
一貫してるのは、要するに「執拗に他人にケチをつけている」という一点においてのみ。
157:デフォルトの名無しさん
09/02/03 22:05:14
>>154
なにを言っているのだお前は。1行目からおかしいだろ
158:デフォルトの名無しさん
09/02/03 22:25:35
>>154
びっくりした。
本当に、びっくりした。
159:デフォルトの名無しさん
09/02/03 22:27:42
>>154
C++もマクロで即値定義なんてことはやらないよ。
やってると思った?
160:デフォルトの名無しさん
09/02/03 22:46:24
>>154
やっぱり期待通りに笑わせてくれるのなw
date part of today w
作為的なT.O.N.でもない例えでフイタw
161:デフォルトの名無しさん
09/02/03 23:19:52
>>154
馬鹿か。
慣習は情報伝達コストを大幅に下げる。
命名に拘る理由の大部分が伝わり易さを求めている以上、基本的に意味ない習慣とか厨二馬鹿にしか言えないわ。
お前が慣習に従うかなんて誰も興味ないっつーの。
お前の狭量自慢もいい加減にしてくれ。
そして自分だけで完結しないこのスレで俺ルールを撒き散らすな。
162:デフォルトの名無しさん
09/02/03 23:20:07
こうしてTONさんは芸風を磨いていくんだな。
エールをおくらせてもらうよ!!!
T.O.N!!! T.O.N!!!
163:デフォルトの名無しさん
09/02/03 23:29:43
>>157-161
自演乙
164:デフォルトの名無しさん
09/02/03 23:32:37
奥義!敵は全て一人の自演発動!
165:デフォルトの名無しさん
09/02/04 00:00:57
久しぶりにわろたw
これは真性w
166:デフォルトの名無しさん
09/02/04 00:13:24
自演って。言葉の意味を気にする割には、これを見て自演って。
167:デフォルトの名無しさん
09/02/04 00:19:45
また神が降臨したよね!ね!
168:デフォルトの名無しさん
09/02/04 00:30:37
>>154
>>156
すごい・・・粘着質です・・・
169:デフォルトの名無しさん
09/02/04 00:44:38
なにかホッとした。
170:デフォルトの名無しさん
09/02/04 01:07:17
>>161
君それに後続する人の話をちゃんと読んで突っかかってる?
俺は、キャメルとかアンダースコア区切りとか、その種のスタイルの違いは命名の本質と
関係がないから(つまりスレの趣旨に従えばどうでもいいことだから)自分の好きなスタイルで
書いただけで、別に「アンダースコアで区切る書き方をするのは無意味だから止めるべき」などとは
いってないから。
わけのわからんことで突っかからないでくれる?
こんな頭悪い奴に馬鹿呼ばわりされたくないよまったくw
まあ、言いがかりに目をつぶってあえて君の話にのっかかると、
>慣習は情報伝達コストを大幅に下げる。
これはまったく同意なんだが、件の即値を大文字でアンダースコア区切りで
表現する慣習に関して言えば、これによって伝達される情報が本当に
必要不可欠な情報かどうかは俺は大いに疑問を持ってる。
他人が書いたコードを読むとき、たいがいの場合は「それ」が即値か定数か変更可能な変数か、
なんてことはどうでもいい場合が多いからね。
システムハンガリアン的な無意味で時代遅れな偏執に過ぎないでしょ。
171:デフォルトの名無しさん
09/02/04 01:11:04
言い合いは英語でお願いします
加えて簡潔な単語でお願いします
172:デフォルトの名無しさん
09/02/04 02:04:47
>>171
ゴミはゴミ箱に入ってろ
173:デフォルトの名無しさん
09/02/04 02:18:06
誰だよ召還したやつは
174:デフォルトの名無しさん
09/02/04 02:26:25
煽ると必ず面白い反応するから癖になる
175:デフォルトの名無しさん
09/02/04 03:01:34
くど過ぎワロタ
TONでもなくウザい人種だなw
176:デフォルトの名無しさん
09/02/04 03:02:18
>>170
で、C++でも#define HOGE 5とか書いちゃうの?
177:デフォルトの名無しさん
09/02/04 03:02:53
まだまだいくよー!
178:デフォルトの名無しさん
09/02/04 03:11:21
>>176
余り虐めるなよw
Java以外の経験があるわけが無い
179:デフォルトの名無しさん
09/02/04 04:28:49
#define FiveOfNumbers 5
180:デフォルトの名無しさん
09/02/04 08:25:29
FiveOfNumだな
181:デフォルトの名無しさん
09/02/04 12:46:16
ちょっとかっこよくFifthNumberにしようぜ!
182:デフォルトの名無しさん
09/02/04 16:01:51
それって4?
183:デフォルトの名無しさん
09/02/04 17:26:46
>>170
このスレで最上級に偉そうな君の言語経験を教えては貰えまいか?
それぞれ実務何年で頼みます。
184:デフォルトの名無しさん
09/02/04 20:28:56
そんなの知りたくないし
185:デフォルトの名無しさん
09/02/05 00:42:29
もうお前ら大好きw
186:デフォルトの名無しさん
09/02/05 00:45:48
俺はお前が嫌いだ
187:デフォルトの名無しさん
09/02/05 23:36:03
TimeOfNowって何?
ぐぐっても、2chのスレくらいいしか見つからないけど、それって面白い話題?
188:デフォルトの名無しさん
09/02/05 23:45:49
実をいうと馬鹿馬鹿しくて真面目に読んでなかったので
どんなネタなのか俺にも分からない
189:デフォルトの名無しさん
09/02/05 23:45:54
時々現れるアホのニックネーム
190:デフォルトの名無しさん
09/02/06 00:28:13
訳してみるか
まさに今の時間 みたいな強調表現かもな
191:デフォルトの名無しさん
09/02/06 00:37:39
凡人並の知能は持ち合わせている様なんだけど
何故かとても
あたまがわるい
それがTimeOfNow
192:デフォルトの名無しさん
09/02/06 02:54:36
セカイ系とか自演とかに特殊な俺定義を行っているのも特徴
簡潔に表すなら、重度の中二病患者
193:デフォルトの名無しさん
09/02/06 08:03:28
今進行中の世界の時間っても訳せる
194:デフォルトの名無しさん
09/02/06 16:18:56
301リダイレクトされた場合に、正しいURLを求める関数名は何がいいかな?
暫定的に、getResolvedURLとしているけど、これは相対パスから絶対URLを
作成するときに使うような名前だよね?
195:デフォルトの名無しさん
09/02/06 16:20:27
getRedirectedURL
196:デフォルトの名無しさん
09/02/06 16:30:32
>>195
ありがとん
197:デフォルトの名無しさん
09/02/07 15:44:51
質問です。
いわゆるフラグという言葉は、本来は2値のみを意味するときに使う言葉でしょうか。
例えば1変数のビットごとに定数を当ててオプション指定するなんて例があったとして
ビットごとに見れば(アリかナシかの)フラグだし、変数としてみれば2値ではないし
こういう場合に変数名にフラグと入れるのは変でしょうか
198:デフォルトの名無しさん
09/02/07 15:46:44
flagsにすればいいじゃん。
199:デフォルトの名無しさん
09/02/07 15:51:07
>>197
ありがとうございます。
こういうビット演算によって複数のオプション指定したりする手法にあつらえ向きの名前なんてのはないんでしょうか。
200:デフォルトの名無しさん
09/02/07 15:51:32
>>198の間違えです
201:デフォルトの名無しさん
09/02/07 16:02:28
ビットフィールド?
202:デフォルトの名無しさん
09/02/07 16:14:48
なんか検索したらビットフラグとかビット配列(これは多分違うかも)とか出てきました。
>>201
ビットフィールドはC/C++のイメージがあるのでニュアンスが違う気もします・・・
203:デフォルトの名無しさん
09/02/07 16:19:07
>>199
普通は「その値の特殊な扱い方」、つまりビットマスクを使ってビットごとに
情報を格納したり取得したりする必要がある、なんてことを変数の名前に
盛り込む必要はないはずだと思う。
そんなことより、そのビットごとの値の集合であるその変数の「意味」に注目して名前をつけるべき。
hogeOptionsとかhogeMethodとかhogeModeとかhogeSettingsでいいじゃん。
204:デフォルトの名無しさん
09/02/07 16:23:16
>>203
なるほど!確かにそうですね・・・
変なところにこだわっておりました。どうも。
205:デフォルトの名無しさん
09/02/07 17:56:44
__
, ‐' ´ ``‐、 / ̄:三}
. /,. -─‐- 、. ヽ / ,.=j
_,.:_'______ヽ、 .! ./ _,ノ
`‐、{ へ '゙⌒ `!~ヽ. ! /{. /
`! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/
. {.l '⌒ ゙ 6',! / :::::::::::::::/ __ そんなことよりTimeOfNowの話しようぜ!
. 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、
. ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ
,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 /
/ / :::::::::::::::: ; '´ /´\ / r'\
. i ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、
{ {:::::::::::;:イ / ‖i:::::::/:::::::::::::/ \
. ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: / ヽ
ヽ、 ,. ‐'" .ノ ,〈 > `'‐- '
> _,. ‐'´ / / `)
,ゝ _.⊥.-r┬:/
ヽ_,. -‐i"!´「L.=!┘ ヽ
< / / |
/ 、i / __ ./
206:デフォルトの名無しさん
09/02/07 19:42:42
爽やかだなw
207:デフォルトの名無しさん
09/02/08 06:01:57
フラグと聞いて真っ先に頭に浮かんだのがツンデレ
オレって…
208:デフォルトの名無しさん
09/02/08 12:51:28
死亡フラグ
209:デフォルトの名無しさん
09/02/10 00:03:15
画像のサイズを2のn乗にするプログラムを書いてるのですが、
int xを与えられたときに、xより小さくない2の乗数を返す関数の名前はどういうのがよいでしょうか。
自分で考えたのはint up_to_pow2(int x);といった具合ですが、WEB辞書を見てみると、up to というのが
どうやら思っていたのと違う意味のようでした。
210:デフォルトの名無しさん
09/02/10 00:11:33
? 条件をもっとはっきり。
x以下の2の乗数のうち最大のものを返すのか、x以上の2の乗数のうち最小のものを返すのか、
どっちだ?
211:デフォルトの名無しさん
09/02/10 00:12:47
ceil
212:デフォルトの名無しさん
09/02/10 00:13:35
逃げのような気もするが、normalize_image_sizeとか。
213:デフォルトの名無しさん
09/02/10 00:14:11
すいません。xより小さくない、最小の2の乗数 です。
214:デフォルトの名無しさん
09/02/10 00:15:06
up to じゃなくて、round up to じゃないかね?
215:デフォルトの名無しさん
09/02/10 00:19:03
いろいろ出してくれてありがとうございます。
cの数学関数にちなんでceilにしようかとも思いましたが、
ceil_pow2, ceil_to_pow2で意図した意味を成すのか不安なのでround_up_to_pow2にします。
216:デフォルトの名無しさん
09/02/10 00:19:37
汎用的に使う関数なら、round_up_to_power_of_2()かなあ。
画像サイズの正規化にしか使わないと決まっているものなら、>>212でいいんじゃね。
217:デフォルトの名無しさん
09/02/10 00:20:27
ぐぐると、 power of two round up とか
rounding up an int to a power of two とか
出てくるからそれでいいとおもう。
218:デフォルトの名無しさん
09/02/10 01:10:25
実験屋さんとかが使うMATLABだとnextpow2らしい。
俺ならとりあえずGetMinPowerOf2()とかGetMinPow2()とかしておいて、
必要ならオプションでFloorかCeilingを指定できるオーバーロードを追加するとかすると思う。
というか、過去にそんなの作った気がする。
219:デフォルトの名無しさん
09/02/10 01:16:32
まてよfloor指定するのなら名前にMinとか入ってると矛盾するのか。。
220:デフォルトの名無しさん
09/02/10 05:10:13
この際func001()で
221:デフォルトの名無しさん
09/02/10 08:25:21
1度になぜ2つのことをする
222:デフォルトの名無しさん
09/02/10 08:27:59
はぁ???????・・・・・・
223:デフォルトの名無しさん
09/02/10 11:10:40
Part11にて。
265 :デフォルトの名無しさん[sage]:2007/11/22(木) 17:48:28
ある整数値を引数として与えて、その値以上の2のべき乗の数のうち、
最小のものを返す関数の名前は何が相応しいですか?
266 :デフォルトの名無しさん[sage]:2007/11/22(木) 17:52:58
least2PowerGreaterThan(int i)
267 :デフォルトの名無しさん[sage]:2007/11/22(木) 18:03:56
>>265
clp2
268 :デフォルトの名無しさん[sage]:2007/11/22(木) 18:29:21
2Power よりは Power2 の方がいい気が。
power of 2 の of を省略したもの。
昔、自分が使ったのは、CeilPower2 と FloorPower2 でそれぞれ
「x 以上の最小の2のべき」、「x 未満の最大の2のべき」にした。
>>267 も、ceiling power of 2 の略よね?
269 :デフォルトの名無しさん[sage]:2007/11/22(木) 19:02:30
>> >>267 も、ceiling power of 2 の略よね?
Exactly.
See Hacker's Delight
URLリンク(www.informit.com)
270 :265[sage]:2007/11/22(木) 21:09:54
どうもありがとうございました。
CeilPowerOf2にします。
224:デフォルトの名無しさん
09/02/11 01:36:48
質問です。
3Dモデルのボーンマトリクス等で親を継承する前のマトリクスをLocalMatrix、
継承後のマトリクスをGlobalMatrixと表していますが、
頂点カラー等はライトが当たる前の元の色をLocalColor、ライトの色を適応した
最終的なカラーを保持するメンバ名をGlobalColorと言うものなんでしょうか?
より適切な名前があるような気がしてなりません。
どなたかより良い名前があればご指摘お願いします。
225:224
09/02/11 01:44:12
すいません、質問を変更します。
上記の、元データLocalに対して親を継承したものをGlobalとつけていますが、
マトリクス以外の親を継承したデータの名前に対してGlobal〜とつけるのは適切でしょうか?
継承したデータ、の内容は、色加算等の描画フラグ、ソートの補正値等が含まれます。
226:デフォルトの名無しさん
09/02/11 20:57:36
>>225
るーとまとりくす(ry
227:デフォルトの名無しさん
09/02/11 23:01:41
ロシアンパブはパブから派生だお( ^ω^)おっおっ
228:デフォルトの名無しさん
09/02/12 03:59:03
「TimeOfNow」って命名がセンスないっていうのが、
正直理解できてない…。
もしかしたら言葉にしづらい感覚的なことなのかもしれないが、
そこんところ、教えてもらえないかな
229:デフォルトの名無しさん
09/02/12 04:30:27
前置詞っツーのは、前置詞っツーのは
230:デフォルトの名無しさん
09/02/12 18:03:17
よろしくおねがいします
「入力必須であることを設定、取得するプロバティ名」と、
「入力必須なのに入力されていない事を示すプロパティ名」に悩んでいるんだが、
何かいいアイデアないかな?
例えば、Requireと、IsRequireとか付けてみたんだが、
これじゃどっちがどっちだかわからないので、他のを考えてるんだけど思いつかない。
231:デフォルトの名無しさん
09/02/12 18:17:56
Required
Missing
232:デフォルトの名無しさん
09/02/12 18:28:07
SetRequired
IsRequired
IsRequiredButNotFilledIn
233:デフォルトの名無しさん
09/02/12 18:33:04
IsRequired
IsMissing
234:デフォルトの名無しさん
09/02/12 18:39:25
なるほど参考させてもらって
IsRequiredとIsFilledがわかりやすそうなので、これにしました。
ありがとうございました
235:デフォルトの名無しさん
09/02/12 18:59:44
In...
236:デフォルトの名無しさん
09/02/12 19:14:00
(・∀・)インポ!!
237:デフォルトの名無しさん
09/02/12 19:21:58
それは Im... ぢゃ
238:デフォルトの名無しさん
09/02/12 20:53:05
しかし、「入力必須であることを設定、取得するプロバティ名」ってのはどういうことかのう。。
そのクラスは、文字列か何かの別のプロパティを一つだけ持っていて、
そのプロパティが必須かどうかを表すプロパティ、って意味なのか?
だとしたらなんだか無駄な気がするんだけどな。
「それ」が必須かどうかを表現するためだけに、ただの文字列をラップするのか。
「それ」が必須かどうかなんてことは、そのデータを持つクラスが知ってればいいことだと思うけど。
239:デフォルトの名無しさん
09/02/12 21:03:22
入力で未入力を許容するかどうかを確認する例はよくあるだろ
240:デフォルトの名無しさん
09/02/12 21:06:16
ToNじゃ!ToNがでたぞ!
ま、開発経験の無いでっかちド馬鹿に一つだけ教えてやるけど
よくある入力フォームでの話だろ
お前は何の経験も無いから知らないだろうけど
そんな理想論掲げるだけ無駄だし無意味だし金にもならないし社会活動として破綻してる
241:デフォルトの名無しさん
09/02/12 21:34:51
>>239
それはそうなんだが、俺(>>238)の言ってる意味わかってる?
普通は>>230みたいな変な実装しないと思うよ。
これじゃたわざわざ述する手間を増やして可読性を落としてるだけじゃん。
242:デフォルトの名無しさん
09/02/12 21:38:07
だからバリデータを自分で実装するからだろ
243:デフォルトの名無しさん
09/02/12 21:46:09
必須は、mandatoryともいうな。
244:デフォルトの名無しさん
09/02/12 21:46:47
設定するのが義務的な意味で。
245:デフォルトの名無しさん
09/02/12 21:48:31
>>241
例えばTextBoxの派生クラスを作るのに、
Require属性がなかったら、いちいち項目ごとに異なる派生クラスを作って、
いちいち入力必須かどうか記述しなくちゃいけないじゃん。
そのほうが手間だし可読性は最悪だろ
Require属性があればプロパティを設定するだけですべてに応用ができる。
246:デフォルトの名無しさん
09/02/12 21:51:16
UserやらNameから派生したテキストボックスとかあったら爆笑しちゃう
247:デフォルトの名無しさん
09/02/12 21:55:44
>>246
バリデートもそれぞれ別にやらなきゃいけないしな
User.IsMissing
Name.IsMissing
MailAddress.IsMissing
・・・・・
Address.IsMissing
とか、いちいち全部チェックするのかしら。
手間だし可読性も最悪。
248:デフォルトの名無しさん
09/02/12 22:01:03
>>245
その入力欄が必須かどうかを表す値をGUI部品に持たせるって
普通は変な設計だと思うけどなw
もちろん必須かどうかをユーザーに対して表示する機能を持たせるため、
というような事情はありうるだろうけど。
それ以前に、それって>>230の話と違うことない?
>>230はGUI部品の話をしてたんだろうか?
249:デフォルトの名無しさん
09/02/12 22:01:56
>>241
ごめん、変じゃない実装って何?
>>238だけじゃいまいち分からん。
250:デフォルトの名無しさん
09/02/12 22:06:03
>>230は「入力」の話をしてるのに
GUIで入力しないで何で入力するんだ?念力?
ユーザーオブジェクトの必須フィールドについてとかなら
全然違う書き方で質問してくると思うが
251:デフォルトの名無しさん
09/02/12 22:08:25
>>248
インターフェースでIsRequire属性を、それぞれのクラスに継承させ、
ファクトリークラスからインスタンスを生成する。
ファクトリークラスでは
foreach(IInterface object in ObjectList)
boolValue = boolValue & Object.IsMissing;
これだけですべての項目のバリデートができる
user、name、mailAddress、birthDay、age等すべてでValidateするのとどちらが可読性が上かい?
そして、こんな設計は変なのかい?
なんか書いていてむなしいぜ。
252:デフォルトの名無しさん
09/02/12 22:17:29
>>249
例えば、Customerクラスに氏を表すFamilyNameというメンバがあるとする。
そのFamilyNameが「入力必須」であることを表現するためだけに、
IsMissingをプロパティに持つ新たな型を導入するのは無駄だということ。
素直にFamilyNameは単純に文字列で持てばいい。
それが必須かどうかの情報はCustomerが持っている方が直感的だ。
253:デフォルトの名無しさん
09/02/12 22:17:39
>>248
だからバリデータを自分で実装するからだろ
俺(>>242)の言ってる意味わかってる?
254:デフォルトの名無しさん
09/02/12 22:21:38
>>252
そりゃ無駄だわw
そして、当たり前の事だわw
最後に、ただのお前の勘違いだわw
255:デフォルトの名無しさん
09/02/12 22:24:43
>>252
逆
その理屈だと、どんな属性もそれを抱えるクラスが持てばいいことになる。
Formに貼り付けたUI部品のVisibleをすべてFormで管理するなんて煩雑過ぎる
そのオブジェクトの属性は、そのオブジェクトが持つのが常識
かつ>>251の書いているとおりインターフェースを利用した場合のほうが、
拡張すべき実装(例えば誰が入力したか)がでた場合に簡単に拡張できる。
インターフェースにUserを追加するだけだからな。
256:デフォルトの名無しさん
09/02/12 22:33:57
>>254
そうでもないよ。
例えばnullを許容するかどうかの場合を考えるとわかりやすいよ。
これは空文字とは別にnullなんだという情報をCustomerクラスに持つなんてしないでしょ。
その属性は、そのオブジェクトに持たせるのが常識。
257:デフォルトの名無しさん
09/02/12 22:43:20
そのCustomerオブジェクトがValidであるかどうかのチェックが必要な場合はCustomerクラスに記述すべきじゃない?
今回のお題とは全く別件だけどさ
258:デフォルトの名無しさん
09/02/12 23:08:54
>>255
>その理屈だと、どんな属性もそれを抱えるクラスが持てばいいことになる。
いや、そうは言ってないよ。
「そのオブジェクトの属性は、そのオブジェクトが持つのが常識」には完全に同意するけど、
FamilyNameが入力必須かどうかは普通に考えれば「Customerクラスの都合」であって
FamilyNameの属性ではない。
ただ、>>251の言うことが正しい(少なくとも一理ある)のは理解した。
>>251の言う利点は正直あまり同意できないけど、確かに、例えば
ある値に「不正な入力がされている」ことをUIに反映するようなことを考えるときには
プロパティから取得したデータ自身が「自分が不正な値かどうか」を知っている方が便利だ。
言い訳がましいけど、俺は普段(「入力」ボタンが押されたときまとめて、ではなく)
個別のコントロールに入力された時点でプロパティの値を設定して、プロパティのセッタの中で
バリデーションを行って結果はイベントで通知してUIに反映する、というコードを書く場合が多いので
>>251の発想はなかった。
「変」とか言ったのが気に障ったらそれは謝る。
259:デフォルトの名無しさん
09/02/12 23:13:20
ここは属性プログラミングの出番だと思うね。
まあ、
>命名規則や設計の善し悪しについて議論するのは基本的に禁止。
なんで、ほどほどに。
260:デフォルトの名無しさん
09/02/13 00:10:01
>>258
Webアプリじゃそんな贅沢な事出来ないしな
261:デフォルトの名無しさん
09/02/13 00:12:16
TONさんさー
今回は出なくていいよ。
正直これはどうでもいい。
262:デフォルトの名無しさん
09/02/13 00:15:26
>>258
それだとコントロールが追加されるごとに、
・新たなプロパティ値を設定する部分
・バリデーションをする部分
・イベント通知をする部分
・そのコントロールが未入力を許容するかどうか
という項目をCustomerクラスに追加していかなきゃいけなくなるでしょ
ファクトリークラスとインターフェースを利用すれば、
インスタンスを生成するだけで、それが自動的にできる。
そのためには、それぞれのコントロールにRequired属性が必要になるってこと。
>>259
これで最後にするよ。
263:デフォルトの名無しさん
09/02/13 00:26:49
T.O.N.さんは質問者が解決って言った後に愚痴り出すのが趣味だから、しょうがないよ
264:デフォルトの名無しさん
09/02/13 01:20:04
>>262
>インスタンスを生成するだけで、それが自動的にできる。
それはちょっとミスリードな言い方だな。
単にそれらの処理が書かれる場所がデータを所有するクラスからデータ自身のクラスに
変わるだけ、でしょ?
もちろん、>>251のコードのように列挙してチェックする必要がある項目が
多数になる可能性があるのなら、(1)データ自身に、(2)同じインターフェイスとして実装する
ことによるポリモーフィズムの利点が利いてくるのは確か。
でも>>230のような用途でそんな可能性があるのかなあ。
やっぱり正直、一見エレガントに見えて「策士策に溺れる」的に思える。
>そのためには、それぞれのコントロールにRequired属性が必要になるってこと。
ごめんこれは何を言っているのかよくわからん。
最後に、確かにこれはスレ違いと言われても仕方がない話題だねすまんかった。
265:デフォルトの名無しさん
09/02/13 01:21:52
>>258
解決済みの件を無駄だの変だのと蒸し返した挙句、
今日一番の長文が殆ど全部言い訳で占められてるってどうよ?
本当に性格悪いな、あんた。
266:デフォルトの名無しさん
09/02/13 01:29:07
>>264
何で質問者がいるうちに言わないの?
何で質問者が居なくなった頃を見計らって「ぼくのかんがえたしつもんしゃがいいたかったこと」を語りだすの?
何で質問者がそこまで間抜けな質問をしていると仮定するの?
267:デフォルトの名無しさん
09/02/13 01:47:57
>>264
>単にそれらの処理が書かれる場所がデータを所有するクラスからデータ自身のクラスに変わるだけ、でしょ?
「単に」ではなく、それが最も重要な利点。
Validateする内容が文字列だけだと勝手に決めてないか?
stringだけなら、配列にいれた文字をstring == ""ですべてチェックできるが、
intやstringが混在する場合だと、その都度、異なるメソッドに割り振ってチェックしなきゃいけないから効率が悪い。
データ自身が処理を持っていれば、インターフェースで指定したValidateの返値を得るだけでチェックできる。
そしてユーザ指定型を追加して拡張したい場合でも、インターフェースさえ設定すれば、
所有クラスは何も変えずに使い続けることができる。
>でも>>230のような用途でそんな可能性があるのかなあ。
十分にある。
・Webアプリのコントロール→ボタン押下時に一斉にチェックする必要がある
・入力をチェックする再利用可能なValidationクラスの設計→メアド、数値など、
入力値をチェックするコントロールを再利用可能なクラスとして設計し、一斉にチェックする場合
・データベースへInsertするための汎用クラスの設計→DateTime値、int値、nullかどうかなど、
それぞれの入力値を一斉にチェックする場合
>ごめんこれは何を言っているのかよくわからん。
これを理解できないのに、なんでインターフェースを語れるんだ?
268:デフォルトの名無しさん
09/02/13 02:09:32
経験値不足な彼相手によくそこまで付き合ってあげられるなぁ。
ちょっと涙が出てきた。
269:デフォルトの名無しさん
09/02/13 02:55:17
>>264
>それはちょっとミスリードな言い方だな。
いや自動にできる
>単にそれらの処理が書かれる場所がデータを所有するクラスからデータ自身のクラスに
>変わるだけ、でしょ?
データ自身のクラスに、そんな処理を書くわけないだろ
処理はデータ自身の基底クラスに記述
データ自身はそれを継承しているだけ
だから自動でできる
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5378日前に更新/165 KB
担当:undef