クラス名・変数名に迷ったら書き込むスレ。Part14at TECH
クラス名・変数名に迷ったら書き込むスレ。Part14 - 暇つぶし2ch100:デフォルトの名無しさん
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
>それはちょっとミスリードな言い方だな。
いや自動にできる

>単にそれらの処理が書かれる場所がデータを所有するクラスからデータ自身のクラスに
>変わるだけ、でしょ?
データ自身のクラスに、そんな処理を書くわけないだろ
処理はデータ自身の基底クラスに記述
データ自身はそれを継承しているだけ
だから自動でできる

270:デフォルトの名無しさん
09/02/13 02:58:57
案の定いつも通りの流れでワロタ

271:デフォルトの名無しさん
09/02/13 03:01:59
そろそろTONさんバックレます
また2週間くらい

272:デフォルトの名無しさん
09/02/13 03:10:32
>>230読んでクラスのメンバフィールドの話をしてると思った人ってTimeOfNowの人意外にいるの?

273:デフォルトの名無しさん
09/02/13 03:34:59
俺は入力フォームみたいのを作って実行する、データ自体には依存しない一般的な仕掛けを実装したいのかなと思った。

274:デフォルトの名無しさん
09/02/13 05:23:45
とりあえずTONのひとはコテハンかトリップでもつけてくれねぇかなぁ。

275:TimeOfNow ◆g72UvIyAhI
09/02/13 05:41:07
トリ付けました。

276:デフォルトの名無しさん
09/02/13 05:42:01
>>274
フルボッコされると自演乙とか言っちゃう人だから、まぁ無理でしょ

277:デフォルトの名無しさん
09/02/13 05:44:00
TONが「ました」
なんて言う訳が無い

278:デフォルトの名無しさん
09/02/13 09:00:15
>>273
「普通」はそうとしか取れないよな

279:デフォルトの名無しさん
09/02/13 13:48:04
年度末、年度初めって何かある?
startNendoOfYearとかベタなのしかおもいつかんw

280:279
09/02/13 13:49:40
ああ、ごめん年度開始月と、年度末月でした。
startMonthOfNendoとか、endMonthOfNendoとかしか思い浮かばない・・

281:デフォルトの名無しさん
09/02/13 14:02:28
>>280
それでいいじゃん。何か不満なの?

282:デフォルトの名無しさん
09/02/13 16:04:55
Nendo -> FiscalYear (会計年度)
Nendo -> BusinessYear (事業年度)
Nendo -> AcademicYear, SchoolYear (学校年度)

283:デフォルトの名無しさん
09/02/13 18:59:25
of yearっているの?
ToN!

284:デフォルトの名無しさん
09/02/13 20:13:55
>>267
いや、「<コントロールに>Required属性が必要」というのはやはり意味不明に聞こえる。
コントロール、に?

前半の話は理念的に美しいのは認めるが、現実解としてはやはり間違いだと思う。
>>230のような話は、ベタにやった方がずっと早くわかりやすく書ける。

>>269
それ自分で言ってることの意味がわかって言ってるの?

285:デフォルトの名無しさん
09/02/13 20:22:21
>>284
スレ違いの話題いいかげんにしろや池沼

286:デフォルトの名無しさん
09/02/13 20:25:25
>>284
>前半の話は理念的に美しいのは認めるが、現実解としてはやはり間違いだと思う。
なら汚いスパゲッティコードしか書けてないんだろ

object指向ならあらゆる処理を行うコードが、それぞれまとまっているわけだが?
int.ToString();
string.Substring(0, 0);
datetime.AddDays(0);
そしてintなどには未入力であることを示すプロパティが無いから、
自前で実装しておきたい需要は普通にあるだろ。
それこそ機能を作っておいて>>269の言うとおり継承するだけでいいんだから
そのほうが簡単で確実だし可読性も良い。

お前の言う方法だと、いちいちその都度、Customerクラスを専用に作り直さなければ
ならないので遅いし、クラスによって実装が異なるから分かりにくく可動性に欠ける。


287:デフォルトの名無しさん
09/02/13 20:44:50
>>286
いきなりお前呼ばわり?

まあいいけど、既に書いたとおり、>>230のような情報は本来「データを所有しているクラス」
が知っているべきことであって、データそのものに属する情報じゃない。
OOP云々いうのなら、こういう「意味論的なおかしさ」にも敏感になってよ。

それだけでなく、年齢(普通ただの数値であることを期待するだろう)が、「必須項目かどうか」
を年齢自体に持たせるために、本来ただの数値で済むものに専用型を導入するわけ?

int age = Customer.Age.Value;
みたいなまどろっこしいことを強制されるわけ?
策に溺れてるじゃん。

それと、その継承の使い方はおかしいと思うよ。
継承って「見たくないコード」を隠すために使うものなの?
違うと思うけど。

288:デフォルトの名無しさん
09/02/13 20:47:41
>>287
暗黙の型変換ができればいい。

289:デフォルトの名無しさん
09/02/14 01:22:06
>287
継承の使われ方は結果論であって、
親クラスがその責務をもつのが妥当かって話で
その観点からは個人的にはアリだと思うけど。
まどろっこしいかどうかは言語によっても変わるだろうし。

でもお二人ともスレ違いだしそろそろやめたら?


290:デフォルトの名無しさん
09/02/14 02:04:47
>>287
そこで暗黙の型変換使わないでどうするの?
もう少し知識を揃えようね。

それにオブジェクト指向の根本が見たくないものを隠すからなってるだろが。

291:デフォルトの名無しさん
09/02/14 02:12:27
o(・_・= ・_・)o キョロキョロ

292:デフォルトの名無しさん
09/02/14 02:18:46
Webアプリだと普通にベストプラクティスの一つだと思うけどな。
それを「少なくとも一理ある」だの「正直あまり同意できない」だの、どんだけ言い訳まみれの人生なんですかw

293:デフォルトの名無しさん
09/02/14 02:44:55
>>1
>命名規則や設計の善し悪しについて議論するのは基本的に禁止。

294:デフォルトの名無しさん
09/02/14 06:12:10
>>238の時点でブッチギリにスレ違いなのに、何をいまさらw

295:デフォルトの名無しさん
09/02/14 11:35:18
所持数とか使用数みたいな
変数名はいまだに悩む


296:デフォルトの名無しさん
09/02/14 19:23:01
結局残るのはTimeOfNowを肯定する人間は一人も現れないと言う事実のみ

297:デフォルトの名無しさん
09/02/14 21:41:34
いまはこーのばしょで~TimeOf Now~

298:デフォルトの名無しさん
09/02/14 21:45:21
>>287
>OOP云々いうのなら、こういう「意味論的なおかしさ」にも敏感になってよ。
なるほど組み込み型の変数以外は、どんなクラスであれ、データそのものでなく、
データを所有するクラスだから、未入力属性が存在することは認めるということね。
つまり、バリデーションを受け持つクラスや、GUI部品が
未入力であることを示すプロパティを持ってる事には納得したってことだな。

じゃなんで、>>238のような質問をするんだ?
>>230はどう考えても、お前の言うところのデータを所有しているクラスのプロパティだろ。

>int age = Customer.Age.Value; みたいなまどろっこしいことを強制されるわけ?
暗黙の型変換、拡張メソッドがあるじゃん

>継承って「見たくないコード」を隠すために使うものなの?
すべてではないが、一つの機能だろ。
継承とカプセル化が無縁のものなら、なんでprivateとprotectedの違いがそもそもあるんだ?

299:デフォルトの名無しさん
09/02/14 22:38:32
>>298
だからいきなり人をお前呼ばわりするなって。
最低限の礼儀も弁えない糞ガキなの?(まあ、やってることは疑念の余地なくそう。)

悪いけど前半は何を言ってるのかさっぱり理解できん。

最後の三行について言えば、>>269,>>286が言っているような目的、
つまり、例えばEMailAddrクラスがあるとして、そのクラスの中に直接Validateメソッドを
書くことを避けるためだけに無理に(つまり何の「汎化」にもなってない!)
ベースクラスEMailAddrBaseクラスを作る、なんていう継承の使い方を良しとする
まともなプログラマって見たことないよ。

それって、例えばCで、「関数の行数が長すぎるからもっと短くしろ」と叱られた
馬鹿な新米プログラマが、

int hogeFunc(int x, int y)
{
  #include "hogeFuncの中身.h"
}

とやってるのと何が違うの?

ついでに言えば、こういう愚行を「カプセル化」と呼ぶ人間も見たことない。
(まあこれは普通そんな頭の悪いことはしないから当たり前だけど。)

300:デフォルトの名無しさん
09/02/14 22:57:46
俺が設計してやろうか?

301:デフォルトの名無しさん
09/02/14 22:58:36
2chでお前って言われてブチ切れるやつ始めて見たwwww

302:デフォルトの名無しさん
09/02/14 23:04:15
ひょっとして40過ぎのおっちゃん?

303:デフォルトの名無しさん
09/02/14 23:09:47
>298,299
お前らもう最低だな。早く死ねや

304:デフォルトの名無しさん
09/02/14 23:34:55
老害すぎる

305:デフォルトの名無しさん
09/02/15 02:37:36
つかNullable型のような物を自前で実装するってだけだろ
何そのEMailAddrBaseってw
ダサすぎw

306:デフォルトの名無しさん
09/02/15 02:43:12
つまりやっぱりTONの人なの?

307:デフォルトの名無しさん
09/02/15 02:45:37
>>299は総称型も暗黙の型変換もない言語を使ってるんだよ…

308:デフォルトの名無しさん
09/02/15 02:51:28
IsMissingだけをサポートするMyStringって型作ってEMailAddrやらFirstNameやらPostalCodeやらがそれを継承するだけじゃん
なんでEMailAddrBaseやらFirstNameBaseやらPostalCodeBaseまでつくらにゃならんの?

309:デフォルトの名無しさん
09/02/15 03:09:49
EMailAddrBaseさん、落ち着いてくださいよ
糞ガキ呼ばわりも十分に無礼っすよ
無礼者同士、仲良くしたらいいじゃないっすか

310:デフォルトの名無しさん
09/02/15 10:50:13
議論も仲良くもここでやんな。

311:デフォルトの名無しさん
09/02/15 15:37:35
荒らしにはスルーが基本。読む価値なし

312:デフォルトの名無しさん
09/02/15 19:54:42
だれかToNさんに鏡を渡してあげないと

313:デフォルトの名無しさん
09/02/15 21:40:08
質問ですが、ToNとTONとT.O.Nとどれが一番いいと思いますか?


314:デフォルトの名無しさん
09/02/15 21:45:57
ToNがいいと思うけど顔文字に見えてしまう

315:デフォルトの名無しさん
09/02/15 21:54:14
>>313
もういっこピリオドを付けてT.O.N.にする

316:デフォルトの名無しさん
09/02/16 00:22:31
>>299
>クラスの中に直接Validateメソッドを書くことを避けるためだけに無理にベースクラスEMailAddrBaseクラスを作る
お前バカだろ。電子メールアドレスの基底クラスを作って、それを派生させるのはメアド入力だけかよw
個々のオブジェクトに普遍、共通な機能をクラスに記述し、それを継承できるとこにobject指向の意味があるんだよ。
例えばメアドでも住所でも、バリデートが必要なデータは、すべて使用者が入力するデータなんだから、
入力値とIsMissiongプロパティを所有するValidateStringとか言う自作クラスを作って、それを継承するだけだろ。
ついでに入力値を設やりとりするプロパティとか、文字数とか、nullかどうかをチェックする機能も
基底クラスに記述すればいいわけだ。

>(つまり何の「汎化」にもなってない!)
お前の脳内で汎化してないだけだろ。
EMailAddressでも、ZipCodeでも、Addressでも、FaxNumberでも、
すべて未入力を許容する可能性があるんだからValidateStringを継承すればいいだけ。
いちいち未入力であるかどうかを個々に記述してたらばからしいだろ。

>こういう愚行を「カプセル化」と呼ぶ人間も見たことない。
お前、継承の機能を全然理解してないだろ。
customerクラスが、未入力を許可するかどうかを所持していたら、
項目が増えるごとにメンバを増やさなければいけないから、
入力するフォームが増えるだけ異なる別個のクラスができて非効率的だろ。
データが所有クラスが、自分自身に未入力を許容するかどうかを持っていれば
Customerクラスを改変せずに利用できるから非常に便利。




317:デフォルトの名無しさん
09/02/16 00:44:03
>>299
もう面倒だから俺が設計してやんよ

public class MyString //入力関連の基底クラス
 private string mData = "";
 private bool mIsRequire = false;
 public string Data //入力データを格納するプロパティ
 public bool IsRequire //入力必須かどうか
 public bool IsMissing //入力必須であるのに入力がない

public interface ICheck
 public virtual bool IsCheck() //入力データをチェックするメソッド

public class MailAddress : MyString, ICheck //メアドチェック
 public bool IsCheck()
  return IsMissing && IsMailAddress
 public bool IsMailAddress //メアドかどうか

public class PostalCode : MyString, ICheck //メアドチェック
 public bool IsCheck()
  return IsMissing && IsPostalCode
 public bool IsPostalCode //郵便番号かどうか

public class Tel : MyString, ICheck //電話番号チェック
 public bool IsCheck()
  return IsMissing && IsTel;
 public bool IsTel //電話番号かどうか

汎用化できるじゃん。しかも継承させたほうがすっきりして可読性が良い。

318:デフォルトの名無しさん
09/02/16 00:46:53
>>316
ここでもいつも言ってることだが、人が言ったことに反論してもらえるかな?
人が言ってもいない、ただの君自身の被害妄想的な妄想に対して一生懸命反論して
何か意味あるの?

いつも思うんだが、こういう人間ってどういう思考回路してんだろ意味がわからない。

319:デフォルトの名無しさん
09/02/16 01:24:14
>>317
一応反論(と言っていいかわからんが…)しとくけど、俺が使った言葉は「汎化」ね。

>>269,>>286が言っているような継承の使い方は、なんの汎化にもなってない愚行だ、
と言ったんだよ俺は。

しかし、君に言ってもしょうがないけど>>269がどういう意味で自動って言ってるのか
さっぱり意味がわからんな。

この人継承って魔法か何かとでも思ってるのかしらん。

まあIsRequiredのようにメンバ変数の値を返すだけプロパティやメソッドなら
コンストラクタでメンバ変数に適切な値を入れるとかで見かけ上「自動」にできるけど
(でも普通はそんなことせず、素直に派生クラスでオーバライドする作りにした方が早いよな)
Validateのようなメソッドがどう「自動」にできるのか聞いてみたいもんだ。

コンパイラの中の小人さんが適当にValidateの中身を書いてくれるのかw

320:デフォルトの名無しさん
09/02/16 01:47:04
>>313
1番目のToNがお気に入りです

321:デフォルトの名無しさん
09/02/16 01:49:25
あと、一つ思ったんだが、>>230がいうような情報をデータ自身に持たせることが
意味論的におかしいことは既に書いたけど、そのことの帰結として、
例えば同じ型のデータが2つ以上必要で、それぞれ入力必須かどうかが
違ってたらどうするの?

もちろん、例えば入力必須かどうかで別の型にするとか、いろいろ技巧的に解決法があろうとは
思うけど、それって本当に直感的と言える?
むしろそんな技巧を凝らさなければならなくなるのは、最初の考え方に無理があるからじゃないの?

もちろん物事何でもトレードオフだから、多少意味的におかしくてもコードが簡潔になるとか、
それ以上のメリットがあれば良いとは思うんだけど、>>251が提案しているような方法は
ある種エレガントではあっても冗長なだけにしかならんよ。

まるで庭の焚き火用の穴を掘るのにユンボ使ってるようだ。

322:デフォルトの名無しさん
09/02/16 01:59:24
>ある種エレガントではあっても冗長なだけにしかならんよ。


323:デフォルトの名無しさん
09/02/16 04:19:31
設計の話か。俺になんか聞きたいことある?

324:デフォルトの名無しさん
09/02/16 05:23:07
\(ToN)/設計オワタ

325:デフォルトの名無しさん
09/02/17 01:22:01
>>264でスレ違いを謝罪してるのに何故未だに続けてるの?

326:デフォルトの名無しさん
09/02/17 01:37:10
「確かにこれはスレ違いと言われても仕方がない話題」であり、
「紛らわしい事については認めるが、スレ違いでは無い」からです。
「スレ違いな話題だと勘違いする馬鹿」に対して「お気の毒に」と言っているのが>>264です。
これを「TimeOfNowメソッド」と呼びます。

327:デフォルトの名無しさん
09/02/17 01:50:08
>>319
>>>269,>>286が言っているような継承の使い方は、なんの汎化にもなってない愚行だ、と言ったんだよ俺は。
>>317に書いてるじゃん

>しかし、君に言ってもしょうがないけど>>269がどういう意味で自動って言ってるのかさっぱり意味がわからんな。
MailAddress mailAddress = Factory.CreateMailAddress;
PostalCode postalCode = Factory.CreatePostalCode;
Tel tel = Factory.CreateTel;
foreach (ICheck object in Factory.ObjectList)
 icCheck = isCheck && object.IsCheck;
いろんな手法はあるが、わかる安くかけば、こんなふうに自動でできたよ

>Validateのようなメソッドがどう「自動」にできるのか聞いてみたいもんだ。
>>317に書いてるじゃん



328:デフォルトの名無しさん
09/02/17 01:51:34
>>321
>>>230がいうような情報をデータ自身に持たせることが意味論的におかしい
おかしくないよ 例 JAVAのString.isEmpty()

>例えば同じ型のデータが2つ以上必要で、それぞれ入力必須かどうかが違ってたらどうするの?
その型を格納するクラスが二つになるだけだよ。
メールアドレスを格納するクラス
MailAddress mailAddress1 = new MailAddress();
MailAddress mailAddress2 = new MailAddress();
とするだけだよ。参照渡しと値渡し理解してる?

>例えば入力必須かどうかで別の型にするとか、いろいろ技巧的に解決法があろうとは
>思うけど、それって本当に直感的と言える?
オブジェクトにそのプロパティがあるほうが直感的だよ。
どんな入力内容にも、入力必須が入力必須でないかの二つしかないよ。
入力必須でなければ、入力必須をfalseにして普通に使えばいいだけだよ。
一般化できる昨日をスーパークラスに記述するobjectの仕組み理解してる?

329:デフォルトの名無しさん
09/02/17 02:02:00
>>321
>あと、一つ思ったんだが、>>230がいうような情報をデータ自身に持たせることが
>意味論的におかしいことは既に書いたけど、そのことの帰結として、
>例えば同じ型のデータが2つ以上必要で、それぞれ入力必須かどうかが
>違ってたらどうするの?

異なるインスタンスを生成するだけじゃねーか
なにいってんだ?

330:デフォルトの名無しさん
09/02/17 02:12:45
>>318
お前も人の言ったことに反論してねーじゃねーかw

331:デフォルトの名無しさん
09/02/17 02:16:45
>>324
ToN入ってたのかw

332:デフォルトの名無しさん
09/02/17 02:27:10
おかしくないよ 例 C#のNullable<string>

>>328
彼はそれだけじゃ理解できないからもう少し書いてあげないと
MailAddress mailAddress1 = new MailAddress();
MailAddress mailAddress2 = new MailAddress();
mailAddress1.IsRequire = true; //mailAddress1.IsMissing ⇒ true & mailAddress1.IsCheck ⇒ false
mailAddress2.IsRequire = false; //mailAddress2.IsMissing ⇒ false & mailAddress2.IsCheck ⇒ true

mailAddress1 = "hoge1"; //mailAddress1.IsMissing ⇒ false & mailAddress1.IsCheck ⇒ false
mailAddress2 = "hoge2"; //mailAddress2.IsMissing ⇒ false & mailAddress2.IsCheck ⇒ false

mailAddress1 = "hoge1@hogemail.hoge"; //mailAddress1.IsMissing ⇒ false & mailAddress1.IsCheck ⇒ true
mailAddress2 = "hoge2@hogemail.hoge"; //mailAddress2.IsMissing ⇒ false & mailAddress2.IsCheck ⇒ true

ほんと、書いててむなしくなるな・・・

333:デフォルトの名無しさん
09/02/17 02:31:49
>>330
>>318はどこかの誰かのアンカミスで、ToNに宛てて言ってるんだろ?
そうとしか思えない。いや、それ以外ありえない。

334:デフォルトの名無しさん
09/02/17 02:52:12
>>318
   、ミ川川川彡                 ,ィr彡'";;;;;;;;;;;;;;;
  ミ       彡              ,.ィi彡',.=从i、;;;;;;;;;;;;
 三  ギ  そ  三            ,ィ/イ,r'" .i!li,il i、ミ',:;;;;
 三.  ャ  れ  三    ,. -‐==- 、, /!li/'/   l'' l', ',ヾ,ヽ;
 三  グ  は  三  ,,__-=ニ三三ニヾヽl!/,_ ,_i 、,,.ィ'=-、_ヾヾ
 三  で       三,. ‐ニ三=,==‐ ''' `‐゛j,ェツ''''ー=5r‐ォ、, ヽ
 三.   言  ひ  三  .,,__/      . ,' ン′    ̄
 三   っ  ょ  三   /           i l,
 三.  て   っ  三  ノ ..::.:... ,_  i    !  `´'      J
 三   る  と  三  iェァメ`'7rェ、,ー'    i }エ=、
  三   の   し  三 ノ "'    ̄     ! '';;;;;;;
  三   か  て  三. iヽ,_ン     J   l
  三  !?    三  !し=、 ヽ         i         ,.
   彡      ミ   ! "'' `'′      ヽ、,,__,,..,_ィ,..r,',",
    彡川川川ミ.   l        _, ,   | ` ー、≡=,ン _,,,
              ヽ、 _,,,,,ィニ三"'"  ,,.'ヘ rー‐ ''''''"
                `, i'''ニ'" ,. -‐'"   `/
               ヽ !  i´       /
               ノレ'ー'!      / O

335:デフォルトの名無しさん
09/02/17 02:54:57
>>332
その結果、入力内容が正しい(IsValidate ⇒ true)かどうかってのも必要かも
入力必須でなく(IsRequire ⇒ false)、未入力の場合、メアド判定はfalseでも入力結果は正しいからね。
まとめるとこんなんになるのかな?

mailAddress1.IsRequire = true; //mailAddress1.IsMissing ⇒ true & mailAddress1.IsCheck ⇒ false & mailAddress.IsValidate ⇒ false
mailAddress2.IsRequire = false; //mailAddress2.IsMissing ⇒ false & mailAddress2.IsCheck ⇒ true & mailAddress.IsValidate ⇒ true

mailAddress1 = "hoge1"; //mailAddress1.IsMissing ⇒ false & mailAddress1.IsCheck ⇒ false & mailAddress.IsValidate ⇒ false
mailAddress2 = "hoge2"; //mailAddress2.IsMissing ⇒ false & mailAddress2.IsCheck ⇒ false & mailAddress.IsValidate ⇒ false

mailAddress1 = "hoge1@hogemail.hoge"; //mailAddress1.IsMissing ⇒ false & mailAddress1.IsCheck ⇒ true & mailAddress.IsValidate ⇒ true
mailAddress2 = "hoge2@hogemail.hoge"; //mailAddress2.IsMissing ⇒ false & mailAddress2.IsCheck ⇒ true & mailAddress.IsValidate ⇒ true

つか、そう考えると入力判定にIsRequire属性必須だよな
空文字はメアドチェックにははじかれるけど、入力必須でなければバリデート結果はtrueだからな。
まさに書いててむなしくなるな・・・


336:デフォルトの名無しさん
09/02/17 03:49:58
>>335
IsCheck==IsValidate
俺ならIsValidプロパティかValidateメソッドで実装するな

337:デフォルトの名無しさん
09/02/17 06:16:46
TONさん議論の入り口にも立ててなくてワロス
ワザとやってるんだろうか

338:デフォルトの名無しさん
09/02/17 06:23:06
IsValidate はまず品詞がおかしい

339:デフォルトの名無しさん
09/02/17 09:43:08
IsCheked
IsValid


340:デフォルトの名無しさん
09/02/17 09:58:20
論旨に影響しない瑣末な違いだ

341:デフォルトの名無しさん
09/02/17 10:11:52
このスレにとっての本題だがな

342:デフォルトの名無しさん
09/02/17 10:17:46
いつの間にか設計の話するスレになってたんだな

343:デフォルトの名無しさん
09/02/17 10:21:41
設計の話と言うか
おぶじぇくとしこういちねんせいのToNに虚しさを感じながらも無駄な説明を繰り返すスレ

344:デフォルトの名無しさん
09/02/17 10:29:51
トンはもう秋田

345:デフォルトの名無しさん
09/02/17 17:28:10
さぁTONさんタイムがやってまいりますた!!

346:デフォルトの名無しさん
09/02/17 19:33:32
>>327
さすがに頭おかしくないか?
>>317とかそれのどこが「自動」なんだ。
>>264で指摘しているように、ただ判定処理が書かれるコードの場所が変わってるだけだろ。

>>328,>>332>>335
君ら(複数人だよね?)それ本気で書いてるのか?

こんなこと一々説明しなくても当然分かるだろうと思って書かなかったが、
IsRequiredはゲッタのみかつ定数を返すようにしないとマズいだろう。

IsRequiredをインスタンスメンバとして実装しちまったら
外からMailAddressをセットできなくなるだろ。
言ってる意味分かる?

なんていうか、まともなコード書いたことない奴が本読んだだけで
物を言ってるのがバレバレだなw

347:デフォルトの名無しさん
09/02/17 19:44:20
>>346
>>>264で指摘しているように、ただ判定処理が書かれるコードの場所が変わってるだけだろ。
それがobject指向の目的だよ。
データと判定処理をクラスが持っていたら、クラスの所有するデータが増えるたびに、
そのデータの判定処理をするプログラムを書かなければいけないよ。
データそのものが判定処理を持っていれば、データを持つ所有クラスは何も改変せず、
自動的に処理されるよ。

>IsRequiredはゲッタのみかつ定数を返すようにしないとマズいだろう。
別にまずくないよ。設定するのが嫌だったら、初期値でfalseにしといて使いまわせばいいだけだよ。

>IsRequiredをインスタンスメンバとして実装しちまったら
>外からMailAddressをセットできなくなるだろ。
MilAddressは、IsRequiredを所有するクラスなんだから、セットも糞もないよ。
何が困るのか実際のコードで示してくれよ。



348:デフォルトの名無しさん
09/02/17 19:54:53
>>347

ではCustomer.MailAddress1のIsRequiredはtrueであって欲しいとして、
Customerの外のクラスから

MailAddress ma = new MailAddress();
ma.IsRequired = true;
Customer.MailAddress = ma;

とかされた場合、どうするの?

349:デフォルトの名無しさん
09/02/17 19:55:40
ごめん
ma.IsRequired = false;
に訂正

350:デフォルトの名無しさん
09/02/17 19:57:14
っていうか、ここまで言ってまだ分からんかなあ。。

351:デフォルトの名無しさん
09/02/17 20:01:53
横に長いコード書くなよ。うちの専ブラの使い方で見づらい

352:デフォルトの名無しさん
09/02/17 20:05:16
>>348
trueであって欲しいのに、
ma.IsRequired = true;
をし、さらに
Customer.MailAddress = ma;
をすることが間違い

じゃあ、
Form.TextBox1のVisibleはtrueであって欲しいとして、
Formの外のクラスから

TextBox tb = new TextBox();
tb.Visible = false;
Form.TextBox = tb;
とかされる可能性は問題ないの?
むしろ、そんな設定をするほうが悪いんじゃないの?

353:デフォルトの名無しさん
09/02/17 20:07:53
>>348
IsRequiredをtrueなりfalseと設定したいから、そう記述するんだろ?
お前はいちいちプロパティが改変されることを予見してすべてプログラムするのか?


354:デフォルトの名無しさん
09/02/17 20:09:51
>>352
おいおい何を言ってるんだよトチ狂ったかw

そもそも外(UI)から操作される値の話をしてるのに、
外から操作してはダメな値を操作するのがおかしい、ってどういう意味だよ。
もう一度>>230から読んで話の文脈をちゃんと理解して何かいってよ。

355:デフォルトの名無しさん
09/02/17 20:12:13
>>353
それこそOOPを理解してる?
普通に考えれば、IsRequiredは外から操作されたくない値だろう。

>>230の意図はそうじゃないよ、って言いたいの?
じゃあまあ>>230の意図はおくとして、IsRequiredが外から操作されたくない
値だったら(普通にありふれたシナリオだと思うが)どうするの・

356:デフォルトの名無しさん
09/02/17 20:15:42
>>354
おいおい、お前頭がおかしいんじゃないか?
なら、絶対に表示しなければならないGUI部品のTextBoxがあったとして、
そのTextBox.Visibleを絶対に変更されないような仕組みをわざわざ作る必要なんてないだろ?
使う本人が分かればいいんだから。IsRequiredも同じだろ。


357:デフォルトの名無しさん
09/02/17 20:17:19
>>355
>普通に考えれば、IsRequiredは外から操作されたくない値だろう。
いや、汎用のクラスライブラリとしては、普通に操作できて当たり前だろ。


358:デフォルトの名無しさん
09/02/17 20:18:12
っていうか、正直>>230のような目的で>>251式にデータ自身に
メソッドやプロパティを持たせるかどうかは意見が分かれるところだとは思うけど、
IsRequiredはクラスメンバの値を公開するようにすべき、ってのは
まともなプログラマが100人いたら100人が同意する話だと思うぜ。

359:デフォルトの名無しさん
09/02/17 20:19:25
質問
bool値を返す関数ってよくIs~って名前付けるよね?
でも『A君はB君の方を見ていますか?』みたいな文の場合、
英語にするとDoes~で始まると思うんだけど、
こういうときの関数名はどうするべき?



360:デフォルトの名無しさん
09/02/17 20:21:00
>>359
CanASeeB

361:デフォルトの名無しさん
09/02/17 20:25:25
>>360
それ可能・不可能の意味合いに変わってるじゃないですか



362:デフォルトの名無しさん
09/02/17 20:25:53
>>356
外から変更されたくない値は変更できないようにしておくのが当たり前。
君は「アクセス修飾なんてぜんぶpublicでいいじゃん」っていう初心者様?

>>357
汎用クラスライブラリの話なんかしてないの。
ベタベタに特定用途専用のクラスの話をしてるんでしょ。
だいじょうぶかよ。

CustomerクラスのMailAddress1プロパティが必須かどうか、なんて値を
外から操作できてどうするんだよw

もちろんそういう用途が皆無とはいえないはずだが、普通はないよ。

363:デフォルトの名無しさん
09/02/17 20:31:54
>>362
変更されたくない値かどうかは、設計者次第
汎用クラスとして設定できるようにしておいて、その継承クラスで隠蔽しておけばいいだけでしょ。
>>230の使い方もわからないのに、勝手に変更されたくないと決めつけて意見するほうが間違い。
とはいえ、汎用的に利用するために、IsRequireのようなプロパティは公開しとくのが当たり前だろな。

>汎用クラスライブラリの話なんかしてないの。
>ベタベタに特定用途専用のクラスの話をしてるんでしょ。
ユーザが入力した文字列のバリデーションなら汎用だろ。
勝手に特定用途専用なんて決めつけるほうがおかしい。

>CustomerクラスのMailAddress1プロパティが必須かどうか、なんて値を
>外から操作できてどうするんだよw
CustomerクラスのMailAddressプロパティなんて>>230は話してないだろ?
何で勝手に自分の都合のいい解釈してんの?
それに>>317をみれば、それぞれのデータにIsRequiredプロパティがあるほうが
わかりやすいだろ?


364:デフォルトの名無しさん
09/02/17 20:32:26
>>359
A.IsLook( B );
でいーんじゃないかなぁ。もしくは
A.IsLooking( B );
これで伝わると思うんだけど。。。

365:デフォルトの名無しさん
09/02/17 20:44:00
>>362
業務ソフトは入力値のvalidationばかりだから
それにリソースを取られないようにクラスライブラリ化するのは当たり前でしょ
mailaddressの未入力を許可するみたいなのこそベタベタの汎用処理だと思うぞ

366:デフォルトの名無しさん
09/02/17 21:02:15
ToN敗走

367:デフォルトの名無しさん
09/02/17 21:10:43
>>363
んもー鳥頭さん?
>それに>>317をみれば、それぞれのデータにIsRequiredプロパティがあるほうが
>わかりやすいだろ?
まず最初に、そこは異論ないよ。
何度も言うように、意味論的にはオカシイんだけど。(正直これに違和感感じない人間にOOP論じる資格なし)

ただ、何度も言うようにデータにIsRequiredがあるのは意味論的には間違ってるから、
(それは本来Customerクラスが知っているべきことだ)その当然の帰結として、IsRequiredを
フールプルーフに出来なくなっちゃうよ、これって問題じゃないのかい、と言ってるの。

フールプルーフに出来なくなっちゃ、とは
Customer.MailAddress1に触るコードを書くときは、MailAddress.IsRequiredの値を間違って
破壊しないようにCustomerクラスを使う人が注意を払わなきゃならんということ。

どっかのトンマがIsRequiredを間違って破壊しちゃう可能性が機構的に排除できないってこと。

>>365
自分で自分の足を(撃とうと思えば)撃てるのはかまわないが、
安全装置を(組み込もうと思っても)組み込めないようなライブラリなんかに価値はないよ。

368:デフォルトの名無しさん
09/02/17 21:12:58
つーか、だからそもそもライブラリの話してないしさ。

369:デフォルトの名無しさん
09/02/17 21:18:57
>>367
>何度も言うように、意味論的にはオカシイんだけど。
おかしくないよ。これをおかしいと思うひとにオブジェクト指向を語る資格なし。

>どっかのトンマがIsRequiredを間違って破壊しちゃう可能性が機構的に排除できないってこと。
だからフールプルーフについては既に記述してるじゃん。
お前は絶対に表示しなければ成り立たないGUI部品があったとして、
そのVisibleをfalseにできないようわざわざ設定しているのか?

>安全装置を(組み込もうと思っても)組み込めないようなライブラリなんかに価値はないよ。
継承して隠蔽すればいいじゃん。
汎用的に使えないライブラリなんかに価値はないよ。

370:デフォルトの名無しさん
09/02/17 21:23:10
はいはい、そうだねお前らが正しいよ
お前ら釣られまくりでバカじゃねーの?wwwwww

しねばいいよwwwwwwwwwwwwwwww

371:デフォルトの名無しさん
09/02/17 21:25:56
>>370
ton氏ね

372:デフォルトの名無しさん
09/02/17 21:40:06
230は
foreach(inputField in Fields){
 if(inputField.IsRequired && inputField.IsMissin){
  // なんかする。メッセージのappendとか。
 }
}
ってことだろうとふつーに思った。ふつーに思った。(IsRequiredは冗長かもしらんが。)

238を読んで、あーこういう脳みそがななめってるうざいやつってうちの現場にもいるなーって
オレも思ったし、お前も思っただろう。そいつは多分今も仕事中ww

373:デフォルトの名無しさん
09/02/17 22:01:53
>>372
>>238

bool tmpBool = false;
tmpBool = MailAddressCheck(mailText);
tmpBool = MailAddressCheck(mailText1);
tmpBool = PostalCodeCheck(postalText);
tmpBool = PostalCodeCheck(postalText1);
tmpBool = TelCheck(telText);

とか、オブジェクト指向がわからず、いちいち関数で処理しちゃう奴だろ?
しかも、tmpBoolが最後のTelCheck()だけで決定されてしまってバグに気づかず大慌てするタイプ。
もっというと、tmpBoolとか死ねって感じのタイプ。

374:デフォルトの名無しさん
09/02/17 22:04:43
いくらバカでもせいぜいflagとかにしちゃうぐらいだと思うがなぁ

375:デフォルトの名無しさん
09/02/17 22:12:16
IsRequiredプロパティ設定可否だの、定数での設定だの、
方法論はいろいろあるけど、変更できる人には、変更できちゃうんだから、
定数値でも意味がないだろ。
変更したくなければプロパティを隠蔽すりゃいいんだから。

376:デフォルトの名無しさん
09/02/17 22:14:58
なんかへそ茶だな。
2chで(馬鹿な)君に賛同してる奴なんて君と同じレベルの馬鹿なのに。

「オブジェクト指向が分からない」とは、>>230のいうIsRequiredのような値は
データの所有者に属する情報であってデータ自身に属する情報ではないことが
理解できない人間の事を言う。

377:デフォルトの名無しさん
09/02/17 22:15:56
>>375
だから、どうやって?

378:デフォルトの名無しさん
09/02/17 22:20:34
>>377
隠蔽する方法の言語仕様を知りたいの?
private new string MethodName();
で隠蔽できるじゃん




379:デフォルトの名無しさん
09/02/17 22:27:59
言い争ってるやつらは経験不足なんじゃないかな。決め付け多いし。
いつの世も理想主義と現実主義の話は平行線。
極論ばかりだと現実社会では生きていけないように
プログラマーとしても成長できませんよ。

ここから上から目線のやつが現れてもっと解説
↓↓


380:デフォルトの名無しさん
09/02/17 22:30:48
         ___
       /::::::::::::::::\
      /:::::─三三─\   
    /:::::::::(○)三(○).\
/⌒)⌒)⌒.:::::::::: (__人__) :::::: \   /⌒)⌒)⌒)
| / / /..    ` ⌒´    | (⌒)/ / / /,,-''ヽ、
| :::::::::::(⌒)          /  ゝ ::::::.,,-''"    \
|     ノ           \  /_,-'"        \
ヽ    /             ヽ /\           \
 |    |        __   //\\           \
             /|[]::::::|_ / \/\\         /
           ./| ̄ ̄ ̄ ̄ //\ \/  \      //    ___
         |  |:::「「「「「「 / \/\  /\\   /:::/   ./|    |__
       _..|  |:::LLLLL//\ \/  \/\\/::::::/  /  | ロ  .|lllllllllllll
      / llllll|  |:::「「「「 / \/\  /\ .\/ ./::::::::/  / ./ .|    |lllllllllllll
__     llllll|  |:::LLL.//\ \/  \/\  /::::::::/   | /  .| ロ  .|lllllllllllll
          |  |:::「./ .\/\  /\ \/ /::::::::/⌒ヽ、| ||/ ..|
          |  |:::l//\ \/  \/\_, -― 、  ''"⌒ヽ,_
                (⌒ヽ、_,ノ⌒Y"    Y     .....⌒)
            (⌒ヽー゙ ....::(   ..::.......  .__人.....::::::::::::::::::::

381:デフォルトの名無しさん
09/02/17 22:31:31
>>376
データ所有者が欲しいから、データそのものと、IsRequiredプロパティを同時に所有しているんだろ
「オブジェクト指向が分からない」とは、データが様様な属性を所有していることを理解できない人のことを言う。

382:デフォルトの名無しさん
09/02/17 22:33:12
>>379
ToNさんお疲れ
決めつけじゃなくて言語仕様そのものの理解が間違ってるんですよ。
それを他人のせいにしたら、一生、オブジェクト指向が理解できないっすよ?

383:デフォルトの名無しさん
09/02/17 22:37:12
この手の話は結局、どっちのオブジェクト指向論が正しいのかニュートン法で収束


384:デフォルトの名無しさん
09/02/17 22:39:00
>>379
極論ばかりだと生きていけない=ToNみたいな存在も許容しろ
言い争ってる=喧嘩両成敗=ToNみたいな無理難題な喧嘩を売られても認めろ
っていいたいのか?

お前こそ人間として最低だろう


385:デフォルトの名無しさん
09/02/17 22:39:29
C#って日本語のプロパティ名使えたのな。結構いいかもしれんわ。
大体「中途受任日」って英語でなんていうねん。

386:デフォルトの名無しさん
09/02/17 22:41:29
>>383
いやオブジェクト指向論にすらなってない

>>321
>例えば同じ型のデータが2つ以上必要で、それぞれ入力必須かどうかが
>違ってたらどうするの?
を読めばオブジェクト指向すら理解できていないことがわかる。

387:デフォルトの名無しさん
09/02/17 22:48:33
>>386
あのさあw

なんか本当に鳥頭の人がいるな。
どうして「同じ型のデータが2つ以上必要で、それぞれ入力必須かどうかが違ってたら」
問題かさっき説明したでしょ。

それは、IsRequiredをデータ自身に持たせて、かつフールプルーフに実装しようと思ったら
クラスメンバの値を返すようにする必要があるから(すくなくともそれが一番簡単で
標準的なやり方だから)だよ。

こんな馬鹿にOOP云々言われたくないわまったく。

388:デフォルトの名無しさん
09/02/17 22:54:00
>>387
>それは、IsRequiredをデータ自身に持たせて、かつフールプルーフに実装しようと思ったら
>クラスメンバの値を返すようにする必要があるから
隠蔽できるから返されないって言ってるじゃん。

389:デフォルトの名無しさん
09/02/17 22:56:09
メアド交換して当事者同士でやってくれよ。たまらん。

390:デフォルトの名無しさん
09/02/17 22:56:31
>>388
ごめんどういう意味?
真面目にわかりません。
具体的なコードで説明してくれると助かるかも。

391:デフォルトの名無しさん
09/02/17 22:58:41
>>390
>>378

392:デフォルトの名無しさん
09/02/17 22:59:49
>>384
そんなんだからお前はいつも底辺で働いているんだろ
まぁがんばれよ


393:デフォルトの名無しさん
09/02/17 23:00:42
>>392
そんなんだからお前はいつも底辺で働いているんだろ
まぁがんばれよ


394:デフォルトの名無しさん
09/02/17 23:02:34
>>393
言うことなくなったか。責めてごめんな。
みんな怒ってるから空気読んで、もうやめとこうな?


395:デフォルトの名無しさん
09/02/17 23:04:44
>>393
相手のレスが無くなるまでレスしたほうが勝ちですか?w

396:デフォルトの名無しさん
09/02/17 23:05:45
そうとう口惜しかったんだろ許してやれよ

397:デフォルトの名無しさん
09/02/17 23:10:24
>>395
勘弁してやれよ

398:デフォルトの名無しさん
09/02/17 23:12:08
>>359
if (aHash.containsKey(aKey)) { ... } みたいな例が一杯あるし、
a.looksAt(b) みたく、三単現の動詞を使えばいいと思うよ。



399:デフォルトの名無しさん
09/02/18 00:03:11
さっきから意味論意味論恥ずかしい奴が居るなw

400:デフォルトの名無しさん
09/02/18 00:04:18
意味論=自分が理解できる範囲の論

401:デフォルトの名無しさん
09/02/18 00:07:35
汎化とか、意味論とか言うところをみると、
情報処理関連の専門、短大、大学を出たが実際に設計をしたこともない池沼という感じだな

402:デフォルトの名無しさん
09/02/18 00:17:05
>>364
あと A.Looks(B); もあり

403:デフォルトの名無しさん
09/02/18 00:21:08
>>398
すまんこのレスで既出な上に、Atまできっちり付いてたアル

404:デフォルトの名無しさん
09/02/18 00:28:58
オブジェクトが主語にならないときに、O.SIsCとするかO.IsSCとするか悩む。
例えば「Oの髪が金色か否か?」みたいな。

あー、もちろん「髪が金色」に相当する1単語の形容詞があるのは知ってるぜ。
ただ「そもそもOが主語にならないようなプロパティはおかしい」とか言ってしっちゃかめっちゃかにされるのを避けてみた。

405:デフォルトの名無しさん
09/02/18 00:35:57
「値」から「ユーザーの入力した値」が派生しているだけの話なのに、意味論的におかしいの?

406:デフォルトの名無しさん
09/02/18 00:41:03
値←ユーザの入力した値←ユーザの入力した文字列値←ユーザの入力した文字列であるメアドの値

というクラス階層が大真面目に書いてあったら
絶対笑うか泣く。

407:デフォルトの名無しさん
09/02/18 00:48:02
>>340-341
吹いたwwww


408:デフォルトの名無しさん
09/02/18 00:49:52
局所的にバリデートの手間をすっ飛ばせればそれで良いリーマンと
意味論を重要視し、体系的に完璧でなければ許し難い無収入者の戦い

409:デフォルトの名無しさん
09/02/18 01:13:38
>>405
まったくおかしくないよ
ユーザが入力できる値は基本的に文字列だからな
基本的に文字列から派生することになる

直接に数値として得られるのは配列の要素だけ。

410:デフォルトの名無しさん
09/02/18 01:31:54
>>367
包丁も車も完璧な安全装置を組み込めないから価値は無いよね。
マグカップでも人が死ぬ事もあるから使えないよね。
どこかのトンマがPC投げつけてきたら危ないからPCも捨てようね。

411:デフォルトの名無しさん
09/02/18 01:38:13
TONの定義するTONMAが空想上の動物で無いとすると
PI=3.14159って定数が勝手にPI=3に書き換えられてもおかしくないな

さて、これをフールプルーフするには一体どうすれば良いのだろうか

412:デフォルトの名無しさん
09/02/18 01:40:39
>>359
A is looking at B
A.isLookingAt(B)
this.AisLookingAtB()
好きにしろ。

413:デフォルトの名無しさん
09/02/18 02:04:44
>>411
TONからPCを取り上げる

414:デフォルトの名無しさん
09/02/18 07:56:30
>>412
嫌だね

415:デフォルトの名無しさん
09/02/18 11:11:40
>>404
凄くわかるw

お前って俺なの?


416:デフォルトの名無しさん
09/02/18 11:23:01
Webアプリなんですが、
仮登録中のユーザー(users)を格納しておくテーブル名、
あるユーザーのプロフィールを見たユーザーの「足あと」を格納しておくテーブル名、
ある記事を見た人(ユーザーに限らない)の日時やIPを格納しておくテーブル名。

それぞれ、なんかいいのないですか?

417:デフォルトの名無しさん
09/02/18 12:02:37
>>385
いちいち変換しないといけないからめんどくさい事この上ないよ。

418:デフォルトの名無しさん
09/02/18 15:01:05
>>416
Pre Signup Users
Profile Footprints :: user_id -> footprint
Article Viewer Infomations :: article_id -> viewer_info

てきと。

419:416
09/02/18 15:23:36
>>418

おおぉ、いい感じです!
ありがとうございます!

420:デフォルトの名無しさん
09/02/18 18:44:24
お題を出した人が満足してからが本番!

421:デフォルトの名無しさん
09/02/18 21:17:40
さあ、TONさんの出番です

422:デフォルトの名無しさん
09/02/19 16:58:41
>>419
まちがえた。
infomationじゃねえ、
informationだ。
恥ずかしい。

423:デフォルトの名無しさん
09/02/19 18:55:13
>>418
Web的?にはviewerよりvisitorのがよくね?

>>421
悪魔召還すな。

424:デフォルトの名無しさん
09/02/19 20:08:28
>>423
あー。そういやWebはVisitだなー。
もう質問者いないだろうけどw

425:デフォルトの名無しさん
09/02/19 20:38:29
そりゃ違うだろう。

visitor or not: (ウェブサイトの)中に入ったかどうかの違い
viewer or not: (記事を)見たかどうかの違い

>>416が求めているものがどちらか言うまでもない。

426:デフォルトの名無しさん
09/02/19 21:36:34
visitor or not (笑)
viewer or not (笑)

427:デフォルトの名無しさん
09/02/19 21:55:54
>>425
英語圏のソースを片っ端から見てきた方がいいよ
間違ってるから

428:デフォルトの名無しさん
09/02/19 22:02:05
ToN改めVoNさんキタ━━(゚∀゚)━━!!

429:デフォルトの名無しさん
09/02/19 22:02:57
失せろゴミ

430:デフォルトの名無しさん
09/02/19 22:55:51
VoNw
w
ww
wwww
さすがにネタだろ

431:デフォルトの名無しさん
09/02/19 22:57:09
>>425
具体的に例えばどのコード?

というか、もし仮に記事を見た人間のことをvisitorと呼ぶのなら(どう考えても変過ぎるが…)
ウェブサイトの訪問者はそれと区別してなんと呼ぶの?

432:デフォルトの名無しさん
09/02/19 22:58:19
アンカミス?

433:デフォルトの名無しさん
09/02/19 23:00:50
>>432
うん。
>>427のつもりだった。。

434:デフォルトの名無しさん
09/02/19 23:09:01
ToNさん お疲れ また来たの?

435:デフォルトの名無しさん
09/02/19 23:35:36
>>431
URLリンク(www.google.co.jp)

この辺りで[web visitor]とか[web viewer]とか検索して
それぞれどんなのが引っかかってくるか比べてみたら。

436:デフォルトの名無しさん
09/02/19 23:54:13
みんなTONに優しいな

437:デフォルトの名無しさん
09/02/20 00:16:18
TONさんのプロフィール

・40過ぎ
・英語は苦手
・リーダークラスSE


438:デフォルトの名無しさん
09/02/20 00:19:23
>・リーダークラスSE
オブジェクト指向しらなくて、それはない
VB6しか触ったことないならあり得るが


439:デフォルトの名無しさん
09/02/20 00:38:27
>>438
×Leader
○Reader

ソースは読んだ事しかありません

440:デフォルトの名無しさん
09/02/20 06:41:45
連鎖あぼーんって便利だなwwwwwwwww

441:234
09/02/21 00:34:22
参考にさせてもらおうと、またきてみたのですが、
なんか私のせいで荒れてしまったみたいですいません。

あれから、設計をいろいろ見直しまして、そこそこのものができたかなぁと思っています。
まだ足りない部分があるので、考えているのですが、また迷ったらよろしくお願いします。

442:デフォルトの名無しさん
09/02/21 11:31:07
誰がどんなお題を出してもその後の流れは決まってるからまったく気にする必要なす

443:デフォルトの名無しさん
09/02/23 20:36:08
送信したパケット群でACKが受信できていない最初のパケットを返す関数
の名前を募集中です

444:デフォルトの名無しさん
09/02/23 20:57:20
FirstPacketAtCantRecvACKOfSendedPacket

445:デフォルトの名無しさん
09/02/23 20:58:21
NACK、ではなくて「ACKではない」なのか。

Packet FindNotAcknoledged(Packet[] packetsSent)
とか。

二つ目以降を探すときは、
Packet FindNotAcknoledged(Packet[] packetsSent, int startIndex)

446:デフォルトの名無しさん
09/02/23 21:05:18
NAKは今のところ存在しません。
判りやすいところでFindNotACKにします。
ありがとうございました。

447:デフォルトの名無しさん
09/02/23 21:08:11
いちおう訂正

Acknoledged ⇒ Acknowledged

448:416
09/02/24 10:29:03
たくさんレスが付いててびっくりしました!
みなさんありがとうございます。勉強になります。

またWebアプリで考えて欲しい名前があるのですが・・・

・ユーザーがメールアドレスを変更するときに、
アドレスの存在確認のために、一時的にそのアドレスとランダムな文字列、期限を保存しておくテーブルの名前。
(そのアドレスに確認メールを出して、記載されているURLをクリックすると変更完了というやつです。)
・プライベートメッセージ機能で、拒否したいユーザーを記録しておくテーブル名。
blacklistとかだと複数・単数の扱いがややこしいので・・・
(block_usersとかでいいのかな。reject_users?)

こういうの、さらっと考えられるようになりたいです;
よろしくお願いします!

449:デフォルトの名無しさん
09/02/24 12:06:07
てきと。

interim registration information

メアドにこだわる必要ないかなと。
新規登録時にも使えそうだし。

private blacklist

とりあえずprivateを付けてみるメソッド。

450:デフォルトの名無しさん
09/02/24 20:37:46
- tempUsers, provisionals, moratoriums, unapprovedProfiles
- ignoreList, denyList, uceList, ignorables, rejects

451:416
09/02/25 11:48:52
>>449
>>450
ありがとうございます。
新規登録時にはプロフィールの入力などもあるので、
テーブルは分けようと思ってます。
なので、もう少しメールアドレス変更用というニュアンスが欲しいです。
個人的に、名詞の複数形がいいです。

拒否ユーザーの方は、
テーブルに入っているのは、あくまで個々のユーザーなので
~listというのは避けたいです。
blacklist_itemsなどとすればよいのかもしれませんが、くどいですし・・・
ignorables、rejectsはいいかもしれませんね!

もう少しいろいろなネーミングが知りたいです。
よろしくお願いします。

452:デフォルトの名無しさん
09/02/25 13:43:23
正規化できるときはしといたほうがいいけど、
1対1の時は一つのテーブルのほうが便利だけどね

453:デフォルトの名無しさん
09/02/25 19:02:19
C++で座標を扱うクラス名についてです

基底は2軸、その派生で3軸の座標のみのクラス(構造体?)、
それらにアクセッサ等を加えたクラス、
さらにベクトル計算のメンバ関数を持つ派生クラス
を作るところです

基底クラスとその次のアクセッサを持つクラスで
上下関係が持てそうな名前はないでしょうか
coordinate,position,point,vertex、どれもis a なイメージなんですが・・・

ちなみに上記3種のクラスで、親子関係を持たせる場合
2軸なら2軸だけで、(基底除く)3軸は3軸だけで親子関係を結んだ方がいいのか
それとも3軸の上に、1軸アクセッサをprivateにした2軸派生、さらに3軸派生、と1本の線にしたほうがいいのか、
はたまた多重継承がいいのか、アドバイスもできればお願いします

454:デフォルトの名無しさん
09/02/25 19:43:03
>>451
難しいなあ。じゃああとxxxMailInfosとか。
unverifiedMailInfos, unapprovedMailInfos

>>453
個人的には次元が違えば基本的に完全に別物だと思う。
そっち方面やったことないんで自信はないけど。

あと、単純な座標クラスをベースクラスにするのはいいとして、
「その次のアクセッサを持つ」の必要性がよくわからない。

いや、必要なのかもしれんけどどういう機能をもたせるつもりかわからないと
名前の付けようが・・・

455:デフォルトの名無しさん
09/02/25 20:09:08
>>454
基底クラスの2軸と3軸を親子関係を結んで、
それ以降2軸は2軸、3軸は3軸と派生させたとして、
3軸の子・孫から2軸の子・孫へdynamic_cast、という手段を確保するつもりでこうなりました

その際、基底クラスには仮想関数も持たせず
単純なデータ群としてやり取りできるようにし、
普段扱う際は子クラスを、と思ったのですが…

今作ってるのは箱庭空間?の基本的な環境を目指しているところです
ですので、基底は座標として、ベクトルとして、等
とにかく2要素・3要素まとまった箱が欲しいな、と


>個人的には次元が違えば基本的に完全に別物だと思う。
確かにそんな気もしますが、こっち方面どころか全方面において経験がないので
設計で四苦八苦しています(ノ∀`)

456:デフォルトの名無しさん
09/02/25 20:14:53
ねみい

457:デフォルトの名無しさん
09/02/26 13:19:51
>>455
単純な値クラスはむやみに継承関係に
しないほうが一般に望ましい。

継承というものを知り、金槌を持って
何でも釘に見えてるような状態かも?
ちょっと考え直したほうがいい。

もちろん、スレの趣旨的には、一切
考え直さずに突っ張って、命名を
求め続けてもかまわないけど。w

458:デフォルトの名無しさん
09/02/26 13:56:40
>>455
三次元から二次元に変換するときは、基本的に写像が必要になるから、
dynamic_castでなんとかしようとすると後で困るよ。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch