コーディング規約 第3条

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2010/03/22(月) 20:44:37
>>946
ビジネスロジックの「心底ウザい条件チェック」と「心底ウザい条件変更の多発」を経験してると、何だってsetter/getter経由にしたくなる
953デフォルトの名無しさん:2010/03/22(月) 21:15:40
いまさら噛み付いてる奴も結構どっか問題ある連中なんだなと思う。
954デフォルトの名無しさん:2010/03/22(月) 21:21:36
完全に話が終わって次の話題に移りかけてる所で蒸し返す奴も以下無限ループ
955デフォルトの名無しさん:2010/03/22(月) 21:23:56
結局スレチな話題で半分埋まっちまったなぁ
956デフォルトの名無しさん:2010/03/22(月) 21:38:43
何ヶ月もレスが無かったスレが言える台詞じゃないわな

と思ったが3年の歴史のあるスレがこの終り方はちょっと可哀想だわwww
957 ◆79cfdX7bxM :2010/03/22(月) 21:39:55
ごめんなさいw
958デフォルトの名無しさん:2010/03/22(月) 21:49:02
このスレ2007年からなのか・・・
インデントはタブかスペースかなんてなんか長閑な話題でスタートしてたんだな。
959デフォルトの名無しさん:2010/03/22(月) 22:34:13
終わりよければ全て良し。
960デフォルトの名無しさん:2010/03/22(月) 22:35:36
>>951
無駄なたらい回し、ってことじゃないの?本人じゃないから真意はわからんけど。
961デフォルトの名無しさん:2010/03/23(火) 00:04:02
これだからオブジェクト指向って役に立たないよな。
962デフォルトの名無しさん:2010/03/23(火) 00:44:03
馬鹿の助けにはならないよね
963デフォルトの名無しさん:2010/03/23(火) 00:47:22
>>951
コードが読みづらくなる。
つか、お前全部アクセッサ経由にしてるのか?
964デフォルトの名無しさん:2010/03/23(火) 01:17:14
プロパティと言うステッキーな機構があるからぜんぜん読み辛くならんし
965デフォルトの名無しさん:2010/03/23(火) 01:52:19
どちらも想定している言語の明示と、>934からの流れの確認をしないと
齟齬が生じると思うのだけど。

個人的にはプロパティのある言語(LLやC#)ならともかく、
C++やJava(6.x系まで)では微妙な気がする。
966デフォルトの名無しさん:2010/03/23(火) 01:57:55
C++ならお得意のマクロでも使えば
967デフォルトの名無しさん:2010/03/23(火) 03:18:43
プロパティなら30秒もあればアクセッサ経由に書換え可能だから、どうでもいい問題だな
968デフォルトの名無しさん:2010/03/23(火) 04:05:37
コーディングの話ではなく設計の話だが、
設計から導かれる setter/getter は 良い setter/getter。
実装から導かれる setter/getter は 悪い setter/getter。
969デフォルトの名無しさん:2010/03/23(火) 04:07:13
ちょっと意味が分からん
970934:2010/03/23(火) 11:21:23
悪い、C++での話ね。

俺的にはいいも悪いも評価保留中だけど、それってどうなの的な話題ふり。
この議論は『Smalltalk Best Practice Patterns』が初出らしいんだけど、Smalltalk固有の
何かが関係しているのかどうかは不明。

ただ、俺が読んだ話(何で読んだかは忘れた)では、C++でprivateメンバ変数を
必ずアクセッサ経由で呼ぶという流派があって、その理由の一つは継承先で
getterを遅延評価に変えたりする可能性があるかららしい。

俺としては、そういう流派の人がもしいたら理由を聞きたい的なレベル。
971934:2010/03/23(火) 11:22:31
つまり、コーディング規約で、privateメンバ変数にアクセスするときは、必ずアクセッサ経由にすること、
みたいな規約だったらどう思う?的なこと。
972デフォルトの名無しさん:2010/03/23(火) 11:24:26
どうでもいい
973デフォルトの名無しさん:2010/03/23(火) 11:29:53
的的うるせーよ
974デフォルトの名無しさん:2010/03/23(火) 11:50:36
いいんじゃないの?
今時のコンパイラなら空のアクセサを直接アクセスへのコード展開ぐらいしてくれるだろうし。
975デフォルトの名無しさん:2010/03/23(火) 11:54:16
アクセッサなら良くて>>541なら駄目というのはこれいかに。
976デフォルトの名無しさん:2010/03/23(火) 12:00:47
アクセッサというからには、少なくともprotectedだろ。そこが>>541とは違う。
977デフォルトの名無しさん:2010/03/23(火) 14:19:22
>>970
> その理由の一つは継承先で 
> getterを遅延評価に変えたりする可能性があるかららしい。 

サブクラスがスーパークラスの getter に変更を加えるってピンと来ないな
privateメンバの getter でしょ、protectedメンバじゃなくて
978デフォルトの名無しさん:2010/03/23(火) 14:24:06
> サブクラスがスーパークラスの getter に変更を加えるってピンと来ないな

フツーにオーバーライドでは?

> privateメンバの getter でしょ、protectedメンバじゃなくて

えっ?
979デフォルトの名無しさん:2010/03/23(火) 14:38:39
>>977
privateのsetter/getterって誰がアクセスするの?
980デフォルトの名無しさん:2010/03/23(火) 14:56:47
はてしなく、どうでもいい話題。
アホを釣り上げて叩こうって意図?
981デフォルトの名無しさん:2010/03/23(火) 17:56:12
public メンバ変数は必ず private のバッキングストア作ってアクセサ作れ
そしてクラス内でバッキングストアにアクセスするときもアクセサ使え、
って主張とちゃうの?是非はともかく。

1)
class Person {
public int age; // アクセサなんぞいらんわ
void aging() { age++; }
}

2)
class Person {
private int age;
public int getAge() { return age; }
public void setAge(int age){ this.age = age; }
public aging() { age++; } // private にアクセサ使うとか・・・
}

3)
class Person {
private int age;
public int getAge() { return age; }
public void setAge(int age){ this.age = age; }
public aging() { setAge(getAge() + 1); } // 継承対策っすよ
}
982934:2010/03/23(火) 18:04:48
>>981
全てのprivateメンバ変数に対するアクセスもsetter/getterを経由しろってのは、
Personの例でいえばこんな感じ。

class Person {
public:
void setName(const char* name) {
 if (ミドルネームが存在したら) {
  // isMiddleNameExist = true; こうはせずに
  setIsMiddleNameExist(true); // こうしろ
 }
}
protected:
virtual void setIsMiddleNameExist(bool b) {
 isMiddleNameExist = b;
}
private:
bool isMiddleNameExist;
}
983934:2010/03/23(火) 18:05:57
>>981の3)に付け加えて、publicで公開しないものも含めてって意味。
984デフォルトの名無しさん:2010/03/23(火) 18:24:09
継承先で書き換えを期待してるかしてないか、または
クラス内でもフィールドの仕様が安定してないとかで変わるんじゃないの?

virtual 付けてたり、final みたいなオーバーライド禁止付けたりしないんであれば
アクセサ経由じゃないとオーバーライドの内容次第じゃおかしなことになるんじゃない?
985デフォルトの名無しさん:2010/03/23(火) 20:23:03
お客様が仕様ですの中で暮らしているか
仕様は仕様の中で暮らしているかの違い
986デフォルトの名無しさん:2010/03/23(火) 23:59:18
ひょっとして、みんなprivateメンバまできっちり設計とかしてんの?
987デフォルトの名無しさん:2010/03/24(水) 00:14:32
↑しても意味が無いから変更に強いコーディングスタイルにしたいんだろ
それはもう手間の面でしか判断できん
988デフォルトの名無しさん:2010/03/24(水) 00:27:40
>>984
virtual付けないとオーバーライドできないけど?
989デフォルトの名無しさん:2010/03/24(水) 00:28:26
前スレ二個も、いったい何を議論してんだろうか。
次スレいるのか?
990デフォルトの名無しさん:2010/03/24(水) 00:38:34
要らないかな
991デフォルトの名無しさん:2010/03/24(水) 03:15:58
3年間続いたこのスレに黙祷
992デフォルトの名無しさん:2010/03/24(水) 07:23:58
終焉記念パピコ
993デフォルトの名無しさん:2010/03/24(水) 09:21:05
>>988
だから、「virtual 付けてたり」「finalみたいなオーバライド禁止尽けたりしないん」であれば
オーバーライドの内容次第でおかしくなるだろってこと。
994デフォルトの名無しさん:2010/03/24(水) 10:03:57
virtual付けてなければオーバーライド出来ないんだからおかしくならないのでは?
995デフォルトの名無しさん:2010/03/24(水) 17:06:21
>>994
だから、「virtual”付けてたり”」「finalみたいなオーバライド禁止尽けたりしないん」であれば
オーバーライドの内容次第でおかしくなるだろってこと。
996デフォルトの名無しさん:2010/03/24(水) 17:24:34
オーバーライドの内容次第でおかしくなるか?
privateメンバだぞ?
997デフォルトの名無しさん:2010/03/24(水) 17:31:22
protected、public なアクセサの話だぞ?
>>981>>982 みれ

何ぞこのアホな幕引きは・・・
998デフォルトの名無しさん:2010/03/24(水) 17:32:30
> アクセサ経由じゃないとオーバーライドの内容次第じゃおかしなことになるんじゃない?

要するに何が言いたいんだろう?
オーバーライドしようがしまいが、アクセッサ経由でしかアクセスできないだろ。
999デフォルトの名無しさん:2010/03/24(水) 17:33:44
>>997
privateメンバ変数の話だぞ?>>934見ろ馬鹿。
1000デフォルトの名無しさん:2010/03/24(水) 17:34:59
最後は激烈馬鹿で終了。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。