- 1 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 00:20:32 ]
- クラス名、変数名のつけ方に悩んだら書き込むスレです。
質問する人は、その変数に何を格納するのか(クラスだったらその役割) プログラミング言語は何なのかを、それぞれ書いて、 いい変数名を思いついた人は、それに答えてあげましょう。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 >>2 英和・和英・英英など各国語辞書と翻訳サイト。 >>3 類義語(シソーラス)辞書、図形・数式・数学用語の英単語。 >>4 関連スレと、いろいろな言語規約。 >>2-10 諸事情によりリンクがずれた場合。 前スレ。 ◆ネーミング倶楽部◆: pc3.2ch.net/tech/kako/1035/10353/1035362308.html Part1: pc5.2ch.net/tech/kako/1046/10465/1046541730.html Part2: pc5.2ch.net/tech/kako/1058/10582/1058213523.html Part3: pc5.2ch.net/test/read.cgi/tech/1067171530/ Part4: pc5.2ch.net/test/read.cgi/tech/1087209526/ Part5: pc8.2ch.net/test/read.cgi/tech/1109330204/ Part6: pc8.2ch.net/test/read.cgi/tech/1128266018/ Part7: pc8.2ch.net/test/read.cgi/tech/1144978008/ Part8: pc10.2ch.net/test/read.cgi/tech/1154448184/ Part9: pc11.2ch.net/test/read.cgi/tech/1168356029/ Part10: pc11.2ch.net/test/read.cgi/tech/1180146315/ Part11: pc11.2ch.net/test/read.cgi/tech/1191250784/ Part12: pc11.2ch.net/test/read.cgi/tech/1206118762/ Part13: pc11.2ch.net/test/read.cgi/tech/1222661623/
- 321 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:49:25 ]
- あと、一つ思ったんだが、>>230がいうような情報をデータ自身に持たせることが
意味論的におかしいことは既に書いたけど、そのことの帰結として、 例えば同じ型のデータが2つ以上必要で、それぞれ入力必須かどうかが 違ってたらどうするの? もちろん、例えば入力必須かどうかで別の型にするとか、いろいろ技巧的に解決法があろうとは 思うけど、それって本当に直感的と言える? むしろそんな技巧を凝らさなければならなくなるのは、最初の考え方に無理があるからじゃないの? もちろん物事何でもトレードオフだから、多少意味的におかしくてもコードが簡潔になるとか、 それ以上のメリットがあれば良いとは思うんだけど、>>251が提案しているような方法は ある種エレガントではあっても冗長なだけにしかならんよ。 まるで庭の焚き火用の穴を掘るのにユンボ使ってるようだ。
- 322 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:59:24 ]
- >ある種エレガントではあっても冗長なだけにしかならんよ。
- 323 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 04:19:31 ]
- 設計の話か。俺になんか聞きたいことある?
- 324 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 05:23:07 ]
- \(ToN)/設計オワタ
- 325 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 01:22:01 ]
- >>264でスレ違いを謝罪してるのに何故未だに続けてるの?
- 326 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 01:37:10 ]
- 「確かにこれはスレ違いと言われても仕方がない話題」であり、
「紛らわしい事については認めるが、スレ違いでは無い」からです。 「スレ違いな話題だと勘違いする馬鹿」に対して「お気の毒に」と言っているのが>>264です。 これを「TimeOfNowメソッド」と呼びます。
- 327 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 01:51:34 ]
- >>321
>>>230がいうような情報をデータ自身に持たせることが意味論的におかしい おかしくないよ 例 JAVAのString.isEmpty() >例えば同じ型のデータが2つ以上必要で、それぞれ入力必須かどうかが違ってたらどうするの? その型を格納するクラスが二つになるだけだよ。 メールアドレスを格納するクラス MailAddress mailAddress1 = new MailAddress(); MailAddress mailAddress2 = new MailAddress(); とするだけだよ。参照渡しと値渡し理解してる? >例えば入力必須かどうかで別の型にするとか、いろいろ技巧的に解決法があろうとは >思うけど、それって本当に直感的と言える? オブジェクトにそのプロパティがあるほうが直感的だよ。 どんな入力内容にも、入力必須が入力必須でないかの二つしかないよ。 入力必須でなければ、入力必須をfalseにして普通に使えばいいだけだよ。 一般化できる昨日をスーパークラスに記述するobjectの仕組み理解してる?
- 329 名前:デフォルトの名無しさん [2009/02/17(火) 02:02:00 ]
- >>321
>あと、一つ思ったんだが、>>230がいうような情報をデータ自身に持たせることが >意味論的におかしいことは既に書いたけど、そのことの帰結として、 >例えば同じ型のデータが2つ以上必要で、それぞれ入力必須かどうかが >違ってたらどうするの? 異なるインスタンスを生成するだけじゃねーか なにいってんだ?
- 330 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 02:12:45 ]
- >>318
お前も人の言ったことに反論してねーじゃねーかw
- 331 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 02:16:45 ]
- >>324
ToN入ってたのかw
- 332 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 02:31:49 ]
- >>330
>>318はどこかの誰かのアンカミスで、ToNに宛てて言ってるんだろ? そうとしか思えない。いや、それ以外ありえない。
- 334 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 03:49:58 ]
- >>335
IsCheck==IsValidate 俺ならIsValidプロパティかValidateメソッドで実装するな
- 337 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 06:16:46 ]
- TONさん議論の入り口にも立ててなくてワロス
ワザとやってるんだろうか
- 338 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 06:23:06 ]
- IsValidate はまず品詞がおかしい
- 339 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 09:43:08 ]
- IsCheked
IsValid
- 340 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 09:58:20 ]
- 論旨に影響しない瑣末な違いだ
- 341 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 10:11:52 ]
- このスレにとっての本題だがな
- 342 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 10:17:46 ]
- いつの間にか設計の話するスレになってたんだな
- 343 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 10:21:41 ]
- 設計の話と言うか
おぶじぇくとしこういちねんせいのToNに虚しさを感じながらも無駄な説明を繰り返すスレ
- 344 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 10:29:51 ]
- トンはもう秋田
- 345 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 17:28:10 ]
- さぁTONさんタイムがやってまいりますた!!
- 346 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 19:33:32 ]
- >>327
さすがに頭おかしくないか? >>317とかそれのどこが「自動」なんだ。 >>264で指摘しているように、ただ判定処理が書かれるコードの場所が変わってるだけだろ。 >>328,>>332>>335 君ら(複数人だよね?)それ本気で書いてるのか? こんなこと一々説明しなくても当然分かるだろうと思って書かなかったが、 IsRequiredはゲッタのみかつ定数を返すようにしないとマズいだろう。 IsRequiredをインスタンスメンバとして実装しちまったら 外からMailAddressをセットできなくなるだろ。 言ってる意味分かる? なんていうか、まともなコード書いたことない奴が本読んだだけで 物を言ってるのがバレバレだなw
- 347 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 19:44:20 ]
- >>346
>>>264で指摘しているように、ただ判定処理が書かれるコードの場所が変わってるだけだろ。 それがobject指向の目的だよ。 データと判定処理をクラスが持っていたら、クラスの所有するデータが増えるたびに、 そのデータの判定処理をするプログラムを書かなければいけないよ。 データそのものが判定処理を持っていれば、データを持つ所有クラスは何も改変せず、 自動的に処理されるよ。 >IsRequiredはゲッタのみかつ定数を返すようにしないとマズいだろう。 別にまずくないよ。設定するのが嫌だったら、初期値でfalseにしといて使いまわせばいいだけだよ。 >IsRequiredをインスタンスメンバとして実装しちまったら >外からMailAddressをセットできなくなるだろ。 MilAddressは、IsRequiredを所有するクラスなんだから、セットも糞もないよ。 何が困るのか実際のコードで示してくれよ。
- 348 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 19:54:53 ]
- >>347
ではCustomer.MailAddress1のIsRequiredはtrueであって欲しいとして、 Customerの外のクラスから MailAddress ma = new MailAddress(); ma.IsRequired = true; Customer.MailAddress = ma; とかされた場合、どうするの?
- 349 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 19:55:40 ]
- ごめん
ma.IsRequired = false; に訂正
- 350 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 19:57:14 ]
- っていうか、ここまで言ってまだ分からんかなあ。。
- 351 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:01:53 ]
- 横に長いコード書くなよ。うちの専ブラの使い方で見づらい
- 352 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:07:53 ]
- >>348
IsRequiredをtrueなりfalseと設定したいから、そう記述するんだろ? お前はいちいちプロパティが改変されることを予見してすべてプログラムするのか?
- 354 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:09:51 ]
- >>352
おいおい何を言ってるんだよトチ狂ったかw そもそも外(UI)から操作される値の話をしてるのに、 外から操作してはダメな値を操作するのがおかしい、ってどういう意味だよ。 もう一度>>230から読んで話の文脈をちゃんと理解して何かいってよ。
- 355 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:12:13 ]
- >>353
それこそOOPを理解してる? 普通に考えれば、IsRequiredは外から操作されたくない値だろう。 >>230の意図はそうじゃないよ、って言いたいの? じゃあまあ>>230の意図はおくとして、IsRequiredが外から操作されたくない 値だったら(普通にありふれたシナリオだと思うが)どうするの・
- 356 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:15:42 ]
- >>354
おいおい、お前頭がおかしいんじゃないか? なら、絶対に表示しなければならないGUI部品のTextBoxがあったとして、 そのTextBox.Visibleを絶対に変更されないような仕組みをわざわざ作る必要なんてないだろ? 使う本人が分かればいいんだから。IsRequiredも同じだろ。
- 357 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:17:19 ]
- >>355
>普通に考えれば、IsRequiredは外から操作されたくない値だろう。 いや、汎用のクラスライブラリとしては、普通に操作できて当たり前だろ。
- 358 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:18:12 ]
- っていうか、正直>>230のような目的で>>251式にデータ自身に
メソッドやプロパティを持たせるかどうかは意見が分かれるところだとは思うけど、 IsRequiredはクラスメンバの値を公開するようにすべき、ってのは まともなプログラマが100人いたら100人が同意する話だと思うぜ。
- 359 名前:デフォルトの名無しさん [2009/02/17(火) 20:19:25 ]
- 質問
bool値を返す関数ってよくIs〜って名前付けるよね? でも『A君はB君の方を見ていますか?』みたいな文の場合、 英語にするとDoes〜で始まると思うんだけど、 こういうときの関数名はどうするべき?
- 360 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:21:00 ]
- >>359
CanASeeB
- 361 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:25:25 ]
- >>360
それ可能・不可能の意味合いに変わってるじゃないですか
- 362 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:25:53 ]
- >>356
外から変更されたくない値は変更できないようにしておくのが当たり前。 君は「アクセス修飾なんてぜんぶpublicでいいじゃん」っていう初心者様? >>357 汎用クラスライブラリの話なんかしてないの。 ベタベタに特定用途専用のクラスの話をしてるんでしょ。 だいじょうぶかよ。 CustomerクラスのMailAddress1プロパティが必須かどうか、なんて値を 外から操作できてどうするんだよw もちろんそういう用途が皆無とはいえないはずだが、普通はないよ。
- 363 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:31:54 ]
- >>362
変更されたくない値かどうかは、設計者次第 汎用クラスとして設定できるようにしておいて、その継承クラスで隠蔽しておけばいいだけでしょ。 >>230の使い方もわからないのに、勝手に変更されたくないと決めつけて意見するほうが間違い。 とはいえ、汎用的に利用するために、IsRequireのようなプロパティは公開しとくのが当たり前だろな。 >汎用クラスライブラリの話なんかしてないの。 >ベタベタに特定用途専用のクラスの話をしてるんでしょ。 ユーザが入力した文字列のバリデーションなら汎用だろ。 勝手に特定用途専用なんて決めつけるほうがおかしい。 >CustomerクラスのMailAddress1プロパティが必須かどうか、なんて値を >外から操作できてどうするんだよw CustomerクラスのMailAddressプロパティなんて>>230は話してないだろ? 何で勝手に自分の都合のいい解釈してんの? それに>>317をみれば、それぞれのデータにIsRequiredプロパティがあるほうが わかりやすいだろ?
- 364 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:32:26 ]
- >>359
A.IsLook( B ); でいーんじゃないかなぁ。もしくは A.IsLooking( B ); これで伝わると思うんだけど。。。
- 365 名前:デフォルトの名無しさん [2009/02/17(火) 20:44:00 ]
- >>362
業務ソフトは入力値のvalidationばかりだから それにリソースを取られないようにクラスライブラリ化するのは当たり前でしょ mailaddressの未入力を許可するみたいなのこそベタベタの汎用処理だと思うぞ
- 366 名前:デフォルトの名無しさん [2009/02/17(火) 21:02:15 ]
- ToN敗走
- 367 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:10:43 ]
- >>363
んもー鳥頭さん? >それに>>317をみれば、それぞれのデータにIsRequiredプロパティがあるほうが >わかりやすいだろ? まず最初に、そこは異論ないよ。 何度も言うように、意味論的にはオカシイんだけど。(正直これに違和感感じない人間にOOP論じる資格なし) ただ、何度も言うようにデータにIsRequiredがあるのは意味論的には間違ってるから、 (それは本来Customerクラスが知っているべきことだ)その当然の帰結として、IsRequiredを フールプルーフに出来なくなっちゃうよ、これって問題じゃないのかい、と言ってるの。 フールプルーフに出来なくなっちゃ、とは Customer.MailAddress1に触るコードを書くときは、MailAddress.IsRequiredの値を間違って 破壊しないようにCustomerクラスを使う人が注意を払わなきゃならんということ。 どっかのトンマがIsRequiredを間違って破壊しちゃう可能性が機構的に排除できないってこと。 >>365 自分で自分の足を(撃とうと思えば)撃てるのはかまわないが、 安全装置を(組み込もうと思っても)組み込めないようなライブラリなんかに価値はないよ。
- 368 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:12:58 ]
- つーか、だからそもそもライブラリの話してないしさ。
- 369 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:18:57 ]
- >>367
>何度も言うように、意味論的にはオカシイんだけど。 おかしくないよ。これをおかしいと思うひとにオブジェクト指向を語る資格なし。 >どっかのトンマがIsRequiredを間違って破壊しちゃう可能性が機構的に排除できないってこと。 だからフールプルーフについては既に記述してるじゃん。 お前は絶対に表示しなければ成り立たないGUI部品があったとして、 そのVisibleをfalseにできないようわざわざ設定しているのか? >安全装置を(組み込もうと思っても)組み込めないようなライブラリなんかに価値はないよ。 継承して隠蔽すればいいじゃん。 汎用的に使えないライブラリなんかに価値はないよ。
- 370 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:23:10 ]
- はいはい、そうだねお前らが正しいよ
お前ら釣られまくりでバカじゃねーの?wwwwww しねばいいよwwwwwwwwwwwwwwww
- 371 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:25:56 ]
- >>370
ton氏ね
- 372 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:40:06 ]
- 230は
foreach(inputField in Fields){ if(inputField.IsRequired && inputField.IsMissin){ // なんかする。メッセージのappendとか。 } } ってことだろうとふつーに思った。ふつーに思った。(IsRequiredは冗長かもしらんが。) 238を読んで、あーこういう脳みそがななめってるうざいやつってうちの現場にもいるなーって オレも思ったし、お前も思っただろう。そいつは多分今も仕事中ww
- 373 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:04:43 ]
- いくらバカでもせいぜいflagとかにしちゃうぐらいだと思うがなぁ
- 375 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:12:16 ]
- IsRequiredプロパティ設定可否だの、定数での設定だの、
方法論はいろいろあるけど、変更できる人には、変更できちゃうんだから、 定数値でも意味がないだろ。 変更したくなければプロパティを隠蔽すりゃいいんだから。
- 376 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:14:58 ]
- なんかへそ茶だな。
2chで(馬鹿な)君に賛同してる奴なんて君と同じレベルの馬鹿なのに。 「オブジェクト指向が分からない」とは、>>230のいうIsRequiredのような値は データの所有者に属する情報であってデータ自身に属する情報ではないことが 理解できない人間の事を言う。
- 377 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:15:56 ]
- >>375
だから、どうやって?
- 378 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:20:34 ]
- >>377
隠蔽する方法の言語仕様を知りたいの? private new string MethodName(); で隠蔽できるじゃん
- 379 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:27:59 ]
- 言い争ってるやつらは経験不足なんじゃないかな。決め付け多いし。
いつの世も理想主義と現実主義の話は平行線。 極論ばかりだと現実社会では生きていけないように プログラマーとしても成長できませんよ。 ここから上から目線のやつが現れてもっと解説 ↓↓
- 380 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:30:48 ]
- ___
/::::::::::::::::\ /:::::─三三─\ /:::::::::(○)三(○).\ /⌒)⌒)⌒.:::::::::: (__人__) :::::: \ /⌒)⌒)⌒) | / / /.. ` ⌒´ | (⌒)/ / / /,,-''ヽ、 | :::::::::::(⌒) / ゝ ::::::.,,-''" \ | ノ \ /_,-'" \ ヽ / ヽ /\ \ | | __ //\\ \ /|[]::::::|_ / \/\\ / ./| ̄ ̄ ̄ ̄ //\ \/ \ // ___ | |:::「「「「「「 / \/\ /\\ /:::/ ./| |__ _..| |:::LLLLL//\ \/ \/\\/::::::/ / | ロ .|lllllllllllll / llllll| |:::「「「「 / \/\ /\ .\/ ./::::::::/ / ./ .| |lllllllllllll __ llllll| |:::LLL.//\ \/ \/\ /::::::::/ | / .| ロ .|lllllllllllll | |:::「./ .\/\ /\ \/ /::::::::/⌒ヽ、| ||/ ..| | |:::l//\ \/ \/\_, -― 、 ''"⌒ヽ,_ (⌒ヽ、_,ノ⌒Y" Y .....⌒) (⌒ヽー゙ ....::( ..::....... .__人.....::::::::::::::::::::
- 381 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:31:31 ]
- >>376
データ所有者が欲しいから、データそのものと、IsRequiredプロパティを同時に所有しているんだろ 「オブジェクト指向が分からない」とは、データが様様な属性を所有していることを理解できない人のことを言う。
- 382 名前:デフォルトの名無しさん [2009/02/17(火) 22:33:12 ]
- >>379
ToNさんお疲れ 決めつけじゃなくて言語仕様そのものの理解が間違ってるんですよ。 それを他人のせいにしたら、一生、オブジェクト指向が理解できないっすよ?
- 383 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:37:12 ]
- この手の話は結局、どっちのオブジェクト指向論が正しいのかニュートン法で収束
- 384 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:39:00 ]
- >>379
極論ばかりだと生きていけない=ToNみたいな存在も許容しろ 言い争ってる=喧嘩両成敗=ToNみたいな無理難題な喧嘩を売られても認めろ っていいたいのか? お前こそ人間として最低だろう
- 385 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:39:29 ]
- C#って日本語のプロパティ名使えたのな。結構いいかもしれんわ。
大体「中途受任日」って英語でなんていうねん。
- 386 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:41:29 ]
- >>383
いやオブジェクト指向論にすらなってない >>321 >例えば同じ型のデータが2つ以上必要で、それぞれ入力必須かどうかが >違ってたらどうするの? を読めばオブジェクト指向すら理解できていないことがわかる。
- 387 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:48:33 ]
- >>386
あのさあw なんか本当に鳥頭の人がいるな。 どうして「同じ型のデータが2つ以上必要で、それぞれ入力必須かどうかが違ってたら」 問題かさっき説明したでしょ。 それは、IsRequiredをデータ自身に持たせて、かつフールプルーフに実装しようと思ったら クラスメンバの値を返すようにする必要があるから(すくなくともそれが一番簡単で 標準的なやり方だから)だよ。 こんな馬鹿にOOP云々言われたくないわまったく。
- 388 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:54:00 ]
- >>387
>それは、IsRequiredをデータ自身に持たせて、かつフールプルーフに実装しようと思ったら >クラスメンバの値を返すようにする必要があるから 隠蔽できるから返されないって言ってるじゃん。
- 389 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:56:09 ]
- メアド交換して当事者同士でやってくれよ。たまらん。
- 390 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:56:31 ]
- >>388
ごめんどういう意味? 真面目にわかりません。 具体的なコードで説明してくれると助かるかも。
- 391 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:58:41 ]
- >>390
>>378
- 392 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:59:49 ]
- >>384
そんなんだからお前はいつも底辺で働いているんだろ まぁがんばれよ
- 393 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:00:42 ]
- >>392
そんなんだからお前はいつも底辺で働いているんだろ まぁがんばれよ
- 394 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:02:34 ]
- >>393
言うことなくなったか。責めてごめんな。 みんな怒ってるから空気読んで、もうやめとこうな?
- 395 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:04:44 ]
- >>393
相手のレスが無くなるまでレスしたほうが勝ちですか?w
- 396 名前:デフォルトの名無しさん [2009/02/17(火) 23:05:45 ]
- そうとう口惜しかったんだろ許してやれよ
- 397 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:10:24 ]
- >>395
勘弁してやれよ
- 398 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:12:08 ]
- >>359
if (aHash.containsKey(aKey)) { ... } みたいな例が一杯あるし、 a.looksAt(b) みたく、三単現の動詞を使えばいいと思うよ。
- 399 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:03:11 ]
- さっきから意味論意味論恥ずかしい奴が居るなw
- 400 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:04:18 ]
- 意味論=自分が理解できる範囲の論
- 401 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:07:35 ]
- 汎化とか、意味論とか言うところをみると、
情報処理関連の専門、短大、大学を出たが実際に設計をしたこともない池沼という感じだな
- 402 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:17:05 ]
- >>364
あと A.Looks(B); もあり
- 403 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:21:08 ]
- >>398
すまんこのレスで既出な上に、Atまできっちり付いてたアル
- 404 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:28:58 ]
- オブジェクトが主語にならないときに、O.SIsCとするかO.IsSCとするか悩む。
例えば「Oの髪が金色か否か?」みたいな。 あー、もちろん「髪が金色」に相当する1単語の形容詞があるのは知ってるぜ。 ただ「そもそもOが主語にならないようなプロパティはおかしい」とか言ってしっちゃかめっちゃかにされるのを避けてみた。
- 405 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:35:57 ]
- 「値」から「ユーザーの入力した値」が派生しているだけの話なのに、意味論的におかしいの?
- 406 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:41:03 ]
- 値←ユーザの入力した値←ユーザの入力した文字列値←ユーザの入力した文字列であるメアドの値
というクラス階層が大真面目に書いてあったら 絶対笑うか泣く。
- 407 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:48:02 ]
- >>340-341
吹いたwwww
- 408 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:49:52 ]
- 局所的にバリデートの手間をすっ飛ばせればそれで良いリーマンと
意味論を重要視し、体系的に完璧でなければ許し難い無収入者の戦い
- 409 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 01:13:38 ]
- >>405
まったくおかしくないよ ユーザが入力できる値は基本的に文字列だからな 基本的に文字列から派生することになる 直接に数値として得られるのは配列の要素だけ。
- 410 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 01:31:54 ]
- >>367
包丁も車も完璧な安全装置を組み込めないから価値は無いよね。 マグカップでも人が死ぬ事もあるから使えないよね。 どこかのトンマがPC投げつけてきたら危ないからPCも捨てようね。
- 411 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 01:38:13 ]
- TONの定義するTONMAが空想上の動物で無いとすると
PI=3.14159って定数が勝手にPI=3に書き換えられてもおかしくないな さて、これをフールプルーフするには一体どうすれば良いのだろうか
- 412 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 01:40:39 ]
- >>359
A is looking at B A.isLookingAt(B) this.AisLookingAtB() 好きにしろ。
- 413 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 02:04:44 ]
- >>411
TONからPCを取り上げる
- 414 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 07:56:30 ]
- >>412
嫌だね
- 415 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 11:11:40 ]
- >>404
凄くわかるw お前って俺なの?
- 416 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 11:23:01 ]
- Webアプリなんですが、
仮登録中のユーザー(users)を格納しておくテーブル名、 あるユーザーのプロフィールを見たユーザーの「足あと」を格納しておくテーブル名、 ある記事を見た人(ユーザーに限らない)の日時やIPを格納しておくテーブル名。 それぞれ、なんかいいのないですか?
- 417 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 12:02:37 ]
- >>385
いちいち変換しないといけないからめんどくさい事この上ないよ。
- 418 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 15:01:05 ]
- >>416
Pre Signup Users Profile Footprints :: user_id -> footprint Article Viewer Infomations :: article_id -> viewer_info てきと。
- 419 名前:416 mailto:sage [2009/02/18(水) 15:23:36 ]
- >>418
おおぉ、いい感じです! ありがとうございます!
- 420 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 18:44:24 ]
- お題を出した人が満足してからが本番!
- 421 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 21:17:40 ]
- さあ、TONさんの出番です
|

|