消えてなくなれよ > ..
[2ch|▼Menu]
116:デフォルトの名無しさん
08/11/11 23:47:05
>>115
過剰継承もオープンプロテクトの一技法なんですね、わかります。

117:デフォルトの名無しさん
08/11/12 04:56:25
オブジェクト指向って元々は、基本的に同じ性質を持つ複数の実体を個別に扱う
ことを容易にするという発想から発展してきたんだけどなー。多数の個人情報とか
多数の契約書とか、多数の図形とか。。。
クラス定義はそのオブジェクト指向を表記するための便宜上の概念なんだけど、
オブジェクト指向の情報源は真っ先にクラス、継承などから説明して混乱を与えて
いるよな。

118:デフォルトの名無しさん
08/11/12 08:46:01
>>116
お前の世界だけの造語使われても意味がわからん…

119:デフォルトの名無しさん
08/11/12 11:51:43
>>115
>JavaのOO思想をOOのあるべき姿として布教
そんなこと言ってる脳足りんがいるんですか?

120:デフォルトの名無しさん
08/11/12 12:40:31
>>119
いくらでもいるだろ…
新人教育やってる奴に目を向けてみろ

121:デフォルトの名無しさん
08/11/12 12:42:50
C++やOcaml的な使える所だけOOというのがあるべき姿…と

122:デフォルトの名無しさん
08/11/12 20:54:26
>>121
どこにそんなことが書いてあるのか小一時間(ry

123:デフォルトの名無しさん
08/11/12 21:01:34
小一時間お茶しますか?

124:デフォルトの名無しさん
08/11/12 21:10:37
OOって結局コンパイラ様に重要なことを任せて
思考停止してるだけだよな

125:デフォルトの名無しさん
08/11/12 21:30:08
マクロって結局コンパイラ様に重要なことを任せて
思考停止してるだけだよな

126:デフォルトの名無しさん
08/11/12 22:24:31
マクロの挙動は定義を見れば分かるが、
テンプレートだの多重継承だの多用した結果
コンパイラ様が出すコードを想像するなど変態の技だ
だいたい、STLをまともにコンパイルできるコンパイラ
なんてないんじゃね?(笑)

127:デフォルトの名無しさん
08/11/12 22:34:58
>>123
可愛い女の子なら

128:デフォルトの名無しさん
08/11/13 01:32:13
STLやるぐらいなら
自分で言語作るわ

129:デフォルトの名無しさん
08/11/13 07:18:59
STLとオブジェクト指向の関係って?

130:デフォルトの名無しさん
08/11/13 11:09:13
OOPLとしても使用可能なC++の標準ライブラリの、さらに一部。

…関係ないと言えよう。

131:デフォルトの名無しさん
08/12/28 21:04:22
もうC++はOOPもできるテンプレート志向言語とか公言して良いんじゃないか

132:デフォルトの名無しさん
09/02/17 15:37:47
リレー回路はオブジェクト指向だよね

133:デフォルトの名無しさん
09/02/17 17:17:47
全然。

134:デフォルトの名無しさん
09/02/23 18:01:14
>>133
メッセージを伝えたら、バルブの開け閉めやら、過電流保護やら、照明やらしてくれるんだぞ


135:デフォルトの名無しさん
09/02/25 11:32:29
ハードウェアすべてが該当する件について

136:デフォルトの名無しさん
09/02/25 15:13:27
要はfacadeとかinterfaceというものなんだろうけど
それってOOPなの?

137:デフォルトの名無しさん
09/02/25 19:20:27
>>135
テレビの電源スイッチは、テレビの電源スイッチとしてしか使えない
分解して取り出せば別の用途に使えるが、取り外されたスイッチは既にテレビの電源スイッチじゃない

リレー回路のスイッチは、ポンプだろうがバルブだろうが関係ないONとOFFを制御するだけ


138:デフォルトの名無しさん
09/02/25 19:25:04
なんというgenericity…

139:デフォルトの名無しさん
09/02/26 10:45:19
>>137
>テレビの電源スイッチは、テレビの電源スイッチとしてしか使えない
ラジオの電源スイッチにも使えますね。

140:デフォルトの名無しさん
09/02/26 12:02:04
>>139
それは、ラジオの電源スイッチで、テレビの電源スイッチじゃない
仮に、テレビとラジオの機能を持った機械のスイッチだとすれば、それは、テレビの電源スイッチとは言えない
ラジオ機能付きテレビ(もしくは、テレビ機能付きラジオ)の電源スイッチだ


141:デフォルトの名無しさん
09/02/26 20:46:40
リモコンそのものはインスタンス。
Sharpのテレビを買ってきたら、付属するリモコンはその機種にしか使えない。
Sonyのコンポを買ってきたら、それに付属のリモコンはそれにしか使えない。

リモコンという抽象があって、リモコン付きの機械という抽象がある。
こういう考え方はどうでしょう?

142:デフォルトの名無しさん
09/02/26 21:53:16
>>141
抽象度が甘い気がする

むしろ、アンプやスピーカーなどバラバラに買ってくるコンポとか
AVシステムの方がオブジェクト指向だよね


143:デフォルトの名無しさん
09/02/26 21:58:55
現実の物引っ張ってきてオブジェクト指向だって言い張るのと、
それをオブジェクトモデルとして捉える(捉えられる)ことは違うんじゃないかな

144:デフォルトの名無しさん
09/02/26 22:09:08
リモコンはユーザインターフェースだけにインタフェースだね(そのまんま

ところで甘いっていうのはどういう程度を指すの
論理学の言葉を使えば弱いとか強いとかあるよね
ベン図で考えると狭い、広いとも言える

さて抽象度が甘いというのは
1.適用できる範囲が広すぎる
2.さらに汎化できる余地がある
どちらを指すのでしょうか?

145:デフォルトの名無しさん
09/02/26 22:49:56
>>144
2.だよ


146:デフォルトの名無しさん
09/02/26 23:08:19
リレー回路は、インターフェイスを継承して新しいインターフェイスも作れるし
動作内容も変更できるよ
そもそも、ハードワイヤードなプログラムだから


147:デフォルトの名無しさん
09/02/27 00:03:40
>>142
それはコンポーネント指向っていうんだお

148:デフォルトの名無しさん
09/02/27 00:17:35
>>137
あのな, on/off を伝えるメッセージ発信源としてかんがえるんだ
つか、オブジェクト指向ってハード屋がやってきたことの

*****劣化コピー*****

以外の何者でもない!!!


149:デフォルトの名無しさん
09/02/27 00:33:33
オブジェクト指向の利点は仕様をそのままクラスに反映できるってただそんだけだと思うな
ひねった抽象化したりしたらその時点で詭弁を使いだすイカレタ同僚と変わらないわけで
抽象化すればするほど利点が消えていくと思う

情報の共有化っていうの?
自分は他の誰かと仕事してるって感覚を身につけないと
一生わからんままテンプレート弄ってるC++厨房と同じ道たどると思う

150:デフォルトの名無しさん
09/02/27 00:39:51
すっぽすっぽ先生の論文読んでから出直してください

151:デフォルトの名無しさん
09/02/27 12:06:45
あれだ、100%理解しないといけないと思ってるやつが駄目だ。

152:デフォルトの名無しさん
09/02/27 18:44:55
なんかへん

153:デフォルトの名無しさん
09/02/27 18:58:47
OO原理主義というか、シミュレーション主義なやつらがクソ。
現実世界をコード化、みたいなことに固執するやつら。

すなおにOOPしてればいいのに。

154:デフォルトの名無しさん
09/02/27 20:11:49
>>148
つ Software IC


155:デフォルトの名無しさん
09/02/28 02:26:55
現実世界はどうでもいいから
仕様書とクラスが1対1になっていればいいよ
サブのクラスはサブでコメント書いておきゃいいけど
とりあえず仕様書とプログラムがまったく一致してないような設計はダメだ
仕様書に書いてある物体ぐらいはオブジェクトにしてないと
オブジェクト指向の意味がまったくない

156:デフォルトの名無しさん
09/02/28 02:59:49
ようは入力の受付窓口と出力の出口の形を明確にする方法だろ?
と入門2ヶ月の俺が知ったかぶってみる

157:デフォルトの名無しさん
09/02/28 05:42:15
>>1
csosureたててんじゃねーぞ

158:デフォルトの名無しさん
09/02/28 05:44:11
オブジェクト指向を徹底すると可読性が著しく下がる件

159:デフォルトの名無しさん
09/02/28 06:03:08
>>158
それは君がヘッポコだから

160:デフォルトの名無しさん
09/02/28 10:47:55
オブジェクト指向の最大の功績は・・・
素人をプログラミングから遠ざけたこと。

OOPLだと、思いつくまま適当に書けばそれなりに動くプログラムが書きにくい。
だから、昔だったら自分でプログラムしたであろうような事でも
プロに依頼して、金を恵んでくれる。

そう考えると、シェルスクリプトで何でもかんでもできてしまう
UNIX/Linuxは職業プログラマの敵なのだ。

161:デフォルトの名無しさん
09/02/28 11:34:06
自称オブジェクト指向マスターって
引数中心で考えることを避ける人が多いような感じがする
しかもそういう人は「そこで発生させるべきでない副作用」をあちこちに散りばめる

162:デフォルトの名無しさん
09/02/28 11:45:41
副作用はCの文化だろw

163:デフォルトの名無しさん
09/02/28 12:13:47
ミスリード工作乙

164:デフォルトの名無しさん
09/02/28 14:50:40
>>161
それ、ただ単にOOが体得できてない「自称」OOマスターでしょ。

165:デフォルトの名無しさん
09/02/28 15:34:45
オブジェクト指向をもう少し機能や適用を限定させればいいんじゃないかな。
なんでもかんでもクラスにしないでこれはクラスにしなければダメだというものだけクラスにする。

166:デフォルトの名無しさん
09/02/28 16:11:49
おもしろいよね。
一人でプログラム組んでるときはC++の何でもできるってすごくうれしいのに
チームでプログラム組むことになるとマルチパラダイムの弊害が猛烈な勢いで襲い掛かってくる。

167:デフォルトの名無しさん
09/02/28 22:41:43
>>166
あのさ、class ってのが良くない
他人が作った class はドキュメントさえしっかりしてれば一応使えるけど,
現実には, ドキュメントはないわ, 抽象はでたらめだわ… で, どうしろとorz
Unix 系の C ライブラリの方が遥かにかわええわ!!!


168:デフォルトの名無しさん
09/02/28 23:14:39
「ええわ」でなく、「かわええわ」なのがふいんき(なry)でてる
70点

169:デフォルトの名無しさん
09/02/28 23:50:56
>>164
検討違いなツッコミどうも。
その自称オブジェクト指向マスターを沢山産んだのはオブジェクト指向自身なんだよ
カプセル化を言い訳に利用者の意図しない副作用を埋め込む奴多すぎ
本来意図されていた意味と違うとはいえ、カプセル化という言葉を広めてしまったオブジェクト指向の罪は重い
TDDがBDDに生まれ変わったように、オブジェクト指向も新しい何かに生まれ変わるべきだろう

170:デフォルトの名無しさん
09/03/01 00:07:07
>>169
> カプセル化を言い訳に利用者の意図しない副作用を埋め込む奴多すぎ

んだんだ!!!

オブジェクト内変数は呈の良いグローバル変数以外の何者でもない
get* とか set* の * にオブジェクト内変数名が使われているような
メソッドを大量に書く奴は、クラスを抽象化する時点で敗北してる

オブジェクトを現実世界のメタファーとして抽象する奴等は
*死* *ね* *ば* *い* *い* と思うよ


171:デフォルトの名無しさん
09/03/01 05:23:51
なるほど、そのへっぽこって君のことだったわけか。そりゃ見当が外れてた。

余計な副作用を残すのって、OO初心者がよくやる間違いだよね。
それを称してOOの罪というところがマヌケっつーか、、、、アホ?

172:デフォルトの名無しさん
09/03/01 05:24:42
>>170
で、そのオブジェクトはグローバルに参照できるの?www

173:デフォルトの名無しさん
09/03/01 10:53:10
>>170の適切な突っ込みにホッとした。

174:173
09/03/01 10:53:50
×>>170の適切な突っ込みにホッとした。
>>172の適切な突っ込みにホッとした。

175:デフォルトの名無しさん
09/03/01 13:27:21
>>172
>>170ではないけど

>で、そのオブジェクトはグローバルに参照できるの?www
それはできないけど
メンバを大量に作るとグローバル変数と変わらない動作をするってのは俺はわかる
1クラスが異常にでかいソースにあたったときに苦労した

void setEdit()
{
  transXXUnkoUnko(m_Bom);
}

void setEdit(int bom)
{
  transXXUnkoUnko(bom);
}

単純に書くとこんな違いになるんだけど前者は追えるけど
後者はまったく追うことができない

176:デフォルトの名無しさん
09/03/01 14:07:15
>>175
しかし参照による相互作用はオブジェクト内におさまるよね?
プログラム全体がグローバル変数でガチガチに結合されるのと、
一応はオブジェクト単位に分離できるのとで、どっちがマシだと思う?

177:デフォルトの名無しさん
09/03/01 14:09:32
>>175
> void setEdit()

セッターがこのシグネチャってのは全く理解できないんですが。

> void setEdit(int bom)

1つのセッターで1つのメンバ変数にアクセスすることのどこが「大量」なのかサパーリ。

178:デフォルトの名無しさん
09/03/01 14:25:08
>>172
グローバルに参照したいから get* とか set* なんてアクセッサ作ってるんだろ
じっさいに名前空間切り替えることもせずに無節操にアクセスしてるしwW


179:デフォルトの名無しさん
09/03/01 15:52:53
おっとまた>>178が頓珍漢な返答を!

180:デフォルトの名無しさん
09/03/01 17:09:12
>>176
そりゃたしかにグローバルにしてしまうよりはいい
でも、そういうダメなものとどっちが・・・って議論をしたいんじゃなくて
そもそもこれってどーなのよ?
って言いたい

181:デフォルトの名無しさん
09/03/01 17:35:03
>>180
これ、とは?

182:デフォルトの名無しさん
09/03/01 17:45:53
昔、4つか5つの処理があれば何でもできると聞いたが、
オブジェクトはなんでこんなにややこしいの?

183:デフォルトの名無しさん
09/03/01 17:57:46
>>182
オブジェクトがややこしいんじゃなくて、
君の脳細胞が未分化なだけ。

184:デフォルトの名無しさん
09/03/01 17:58:33
>>180
それがわかれば、あとはオブジェクトの粒度を適切に設定すればいいんだ、ということに気付くはずだが?

185:デフォルトの名無しさん
09/03/01 18:11:03
つぶどってなんなんだぜ

186:デフォルトの名無しさん
09/03/01 18:13:37
>>184
粒度の問題なのか?と問いたい
だったらグローバル変数・関数だって小さいうちはアクセスしやすいし便利なだけだろ?
ただ、そのプロジェクトでの増加量を誰も予測できないから
やっぱりおかしくなってしまうわけで

俺がどう考えてるかというと
基本的にはメンバ変数ってのはダメなんだと思う

187:デフォルトの名無しさん
09/03/01 18:17:48
!?

188:デフォルトの名無しさん
09/03/01 18:18:55
クラスとインスタンスの違いが分かってない子の気配。

189:デフォルトの名無しさん
09/03/01 18:41:36
>>171
一人でコード書いてりゃいいニートと一緒にしないでくれよ
仕事でプログラム組む時は複数人でやるのが当たり前
お前の理想は現実とはかけはなれてる。そこわかってる?

190:デフォルトの名無しさん
09/03/01 18:49:31
>>184
他人が書いたコードも君は全て責任持って修正できる?

191:デフォルトの名無しさん
09/03/01 19:14:34
>>184
そこに明確な基準は無いよね
重要な部分を個々の考えに任せる時点でダメ


192:デフォルトの名無しさん
09/03/01 21:39:13
メンバ変数が追えないというヤツは関数内やファイルスコープ内の静的変数にもハマるだろう。

193:デフォルトの名無しさん
09/03/01 22:52:03
>>186
メンバ変数とグローバル変数とは全然違うぞ...

クラス内では、まるでグローバル変数のように見えるけどな


194:デフォルトの名無しさん
09/03/01 23:13:36
オブジェクトがたった一つなら、名前空間内のグローバル変数だけど、複数あったら事情が違うが。

195:デフォルトの名無しさん
09/03/02 00:04:59
>>191
個々の考えと言ってるうちは、何も理解してない
ということになってしまう。

196:デフォルトの名無しさん
09/03/02 00:07:54
だけど実際はクラスは大きくなってしまうわけで
そうなるとグローバル変数と変わらない動きをする
グローバル変数も管理できていれば問題はおきないってのは一緒なんだよね

でかいだけじゃなくて、1つのクラスを3つぐらいの使い方ができたり、
呼ぶ場所によって挙動を変えてるようなのもかなり複雑でまずい

197:デフォルトの名無しさん
09/03/02 00:16:27
>>196
int a, b;
としたとき、aとbの数値は連動するの?
a = 1;
としたら、bも1になってるの?

巨大化するクラスは、何かがおかしいと思うの...
俺みたいなニートなプログラマが気まぐれで作っているならともかく、プロが仕事で作っているのに1つのクラスが巨大化したら駄目でしょう


198:デフォルトの名無しさん
09/03/02 00:34:12
>>195
明文化された明確な基準のソースを示した人でなきゃそのセリフは吐けないはずだけど…
そうでないのに何コレ

199:デフォルトの名無しさん
09/03/02 00:38:36
グローバル変数と変わらないって言ってる意味が全く分からん
アクセサ経由でメンバ変数にどこからでも参照できるから、みたいなアホな意見?

200:デフォルトの名無しさん
09/03/02 00:42:03
staticか非staticかに関わらず複数メソッドから直接見える変数が存在することがダメって話…かと思いきや
違うのか
ちがわなければ同意

201:デフォルトの名無しさん
09/03/02 00:42:50
>>199
違うんだよ
1つのクラス内の関数同士の話

202:デフォルトの名無しさん
09/03/02 00:43:41
>>199
メイン関数まで内包してるような
超巨大クラスを想像しろ
メソッド同士が呼び出しあって動作する

203:デフォルトの名無しさん
09/03/02 01:03:54
>>201-202
怖い、怖いです...
冬なんですから怪談話は止めてください

204:デフォルトの名無しさん
09/03/02 01:08:53
ローカル変数もスコープ内のどこでも使えるから一緒ですか分かりません

205:デフォルトの名無しさん
09/03/02 01:11:38
オブジェクト指向を知らないまま、オブジェクト指向した末の惨劇ですね

206:デフォルトの名無しさん
09/03/02 01:48:54
信者共はあえてアホレスのみを捕まえて袋叩きにしたあと、
痛いとこついてるレスまでついでにまとめて
理解できない奴が悪いで済ませようとしてるけど

それでオブジェクト指向の暗黒面が消え去るわけじゃないだろ…

207:デフォルトの名無しさん
09/03/02 01:58:39
>>204
同じようになるよ
超長い関数で一番上でまとめて宣言されると
どこで使ってるかマジで不明

使う場所で適切に用意→破棄してくれと言いたい
でもC言語だとダメなんだっけ?

っていうかその前に長い関数作るなよと言いたい

208:デフォルトの名無しさん
09/03/02 03:36:46
ラッパークラスなんか超長い関数と同じ
生成期間も無駄に長い

209:デフォルトの名無しさん
09/03/02 05:41:58
ループカウンタとかどこで定義しようが何も問題無いだろ

210:デフォルトの名無しさん
09/03/02 05:49:46
忘れっぽいからさ。
使うところの近所で定義してもらわないと型とかあっさり忘れるんだわ。
老化が始まると全部関数の頭で定義なんてマジしんどい。

211:デフォルトの名無しさん
09/03/02 07:38:46
結局、メンバ変数を叩いてる人は、自分がプログラミング初心者ですと告白している、ということでFA?

212:デフォルトの名無しさん
09/03/02 09:07:23
>>211
とりあえずFPやってみろ

213:デフォルトの名無しさん
09/03/02 09:12:52
>>212
俺はMiranda, Gofer, SML, HaskellとFPやってきたが、>>211に同意だ。
OOを叩いている側の人間に明らかな技量不足が見える。

214:デフォルトの名無しさん
09/03/02 09:15:29
毎回アンチをひとまとめにして叩いてるあなたが言っても
自演にしか見えにゃーど

215:デフォルトの名無しさん
09/03/02 09:19:39
>>213
自由変数&mutableベッタベタだったのか…

216:デフォルトの名無しさん
09/03/02 09:23:18
>>214
技量不足以前に妄想性人格障害か。お大事に。

217:デフォルトの名無しさん
09/03/02 09:26:28
気軽にOOPを持ち込もうとして混乱する者どもの存在は分かった。

218:デフォルトの名無しさん
09/03/02 09:27:28
>>215
へー、Mirandaでどうやってmutableを実現するのか、説明してよwww

219:デフォルトの名無しさん
09/03/02 09:28:44
このスレには
他人のクラスの粒度どころかライセンス的に修正不可なソースまで修正できる自称スーパープログラマ(笑)
が沢山いるみたいだな
BREWとかどうすんのマジで

220:デフォルトの名無しさん
09/03/02 09:33:25
>>218
できないから移行(挫折)したんだろ?w

221:デフォルトの名無しさん
09/03/02 09:34:43
メンバ変数ってまでに広げたら、それこそ状態量を持つオブジェクトすべて指すようになってしまうな
流石にそれは極論だと思うので、もう少し範囲を狭めて考えてみる。
「グローバル変数と同じ」という性質を「何処で誰が触っているかわからない」ということだと仮定すれば
恐らくパブリックフィールドの事を叩いてたんじゃないかなと考えている。

222:デフォルトの名無しさん
09/03/02 09:38:08
>>221
だとしても、そのオブジェクト自体がグローバルに参照されていなければ
メンバ自体がpublicでも「何処で誰が触っているかわからない」状態にはならないよね。

223:デフォルトの名無しさん
09/03/02 09:39:49
>>221
> 恐らくパブリックフィールドの事を叩いてたんじゃないかなと考えている。

じゃなくて、もっとひどい。

>>201
> 1つのクラス内の関数同士の話

↑このように、クラス、という静的な単位で困っている様子。

食べることが悪いんじゃない。
食べ過ぎることが悪いんだ。

メンバ変数が悪いんじゃない。
メンバ変数が多すぎたり、
クラス内の関数が多すぎたりでかすぎたりするのが悪いんだ。

224:デフォルトの名無しさん
09/03/02 09:55:22
そうか、全然読めてなかったよ

折角クラス内だけにスコープを止めても、そのクラス内がカオスだったら
人間が把握できない程度に複雑になる可能性があるという点ではグローバル変数と同じ
と解釈した

「とりあえずクラスにすりゃなんとかなるじゃんw」っていうような安直なOOPに対する批判なのかな?

225:デフォルトの名無しさん
09/03/02 10:02:21
逆にアンチOOPに訊きたいのは、

プログラム全体が1つのクラスになってしまうような巨大クラスは問題だ、という主張なんだよな?
まあ、それはそれでいいけど、

(1) そもそもクラスにしないで関数や手続きとして実装しても同じ問題になるし、
関数や手続きとして実装してうまくいくのなら、それをそのままクラスにしても、
それなりにうまくいくのでは?

(2) その巨大クラスのインスタンスは何個できるの?
もしインスタンスが多数できるのなら、参照関係の複雑さも多少は整理されているのでは?

ぜひ答えてほしい。

226:デフォルトの名無しさん
09/03/02 10:17:48
多少複雑さが軽減されるからといって、
把握できないぐらいのものが把握できないぐらいのものに変わっても意味ないよね。
OOPを使って複雑なものを人間が把握できる程度まで落し込めるような使い方じゃないと、
同じどころかOOAのコストの分だけ損になると思うよ。
こんな考え方でもアンチOOPになるんですか?

227:デフォルトの名無しさん
09/03/02 10:18:09
アンチはしらんが、どっちで実装しても同じならわざわざ手間のかかる
手段をとらなくていいのでは?

228:デフォルトの名無しさん
09/03/02 10:47:09
>>227
手間かけていないから巨大クラスになるんじゃねーの?

229:デフォルトの名無しさん
09/03/02 17:57:38
巨大クラスを作るってのは、オブジェクト指向が必要だとか不要だとか言う前に
構造化プログラムとは何かから始めないと駄目だと思うの


230:デフォルトの名無しさん
09/03/02 22:37:31
>>229
> 構造化プログラム
以前の問題で、
「自分が何をしなければならないか?」
の、分析ができてないんとちゃうん?

「作らんとあかん物の分析をやってない」
としか思えんのよ


231:デフォルトの名無しさん
09/03/02 22:55:58
つまりほとんどのプログラマはOO以前に構造化すら満足に出来てないと。

232:デフォルトの名無しさん
09/03/02 23:03:21
やはり構造化よりオブジェクト指向の方が頼りにされていたクライアんトとの戦いで
おれは納期に遅れてしまったんだがちょうどマネージャがわきはじめたみたいでなんとか耐えているみたいだった
おれは家にいたので急いだところがアワレにもCプログラマがくずれそうになっているっぽいのが携帯で叫んでいた
どうやらプログラマがたよりないらしく「はやくきて〜はやくきて〜」と泣き叫んでいるチームメンバーのために俺はオブジェクト指向を使って普通ならまだ出来ない時間できょうきょプログラミングすると
「もう出来たのか!」「はやい!」「きた!オブジェクトきた!」「メインプログラマきた!」「これで勝つる!」と大歓迎状態だった

233:デフォルトの名無しさん
09/03/02 23:03:41
クラス勉強し始めた初心者ですが、正直何でFunctionだけじゃダメなのか分かりません。

・Functionだけでも資産は後に再利用できる
・1ページの表示で同じクラスオブジェクトを複数作成する必要がない
・いちいちオブジェクトを生成するのが面倒

それでもオブジェクトの方が便利と言う方・・お話聞かせて頂けませんか?

234:デフォルトの名無しさん
09/03/02 23:20:41
>>232
日本語でどうぞ

235:デフォルトの名無しさん
09/03/02 23:22:06
>>233
そのコメントみてるとたぶんwebやってるんだろうけど
それくらいならオブジェクト導入してもしなくても良かろう

236:デフォルトの名無しさん
09/03/02 23:26:25
クラスが巨大になりすぎるからとかいってるやつって、
関数が巨大になりすぎたり、グローバル変数をポコポコ作ったりするやつでそ

237:デフォルトの名無しさん
09/03/02 23:27:02
>>233
メンドイ。
とりあえず憂鬱なプログラマのためのオブジェクト指向開発講座を読んで、
なじまないと感じたなら以後はオブジェクト指向言語を避けろ
オブジェクト指向言語で無理に関数だけでプログラム組んでも馴染まないしな
言語の思想にあった手法を取るのが一番

避けようのない状況ならご愁傷様

238:デフォルトの名無しさん
09/03/02 23:31:26
>>236
> 関数が巨大になりすぎたり、グローバル変数をポコポコ作ったりするやつ
が、OO したつもりになると
「クラスが巨大になりすぎるので OOって意味ねぇ!!!」
言ってるじゃね?


239:デフォルトの名無しさん
09/03/02 23:34:04
コボラーのように罵られる存在になりたくないから皆必死にOOを守ろう

240:デフォルトの名無しさん
09/03/02 23:50:04
とりあえず比較的年配の方々で、やたら「オブジェクト指向」連発する人間は
信用できない。

241:デフォルトの名無しさん
09/03/03 00:57:51
>>235, >>237
アドバイスありがとうございました。
ActionScriptもいつの間にかClassが使用され
周りの言語は、全部オブジェクト指向を取り入れて行っているような気がしてなんだか焦りますね。
そのうち、オブジェクト指向出来ない人は、ハイさようならになりそう。

「憂鬱なプログラマのためのオブジェクト指向開発講座」もちょっと読んでみることにします。

その他、効率の良いクラスの設計の仕方など、参考になる本はありますでしょうか?

242:デフォルトの名無しさん
09/03/03 01:08:43
>ActionScriptもいつの間にかClassが使用され
昔というか最初からClassだったよ
直接見えなかっただけで

243:デフォルトの名無しさん
09/03/03 04:12:48
今も昔もプロトタイプベースだよね>AS
クラスベースちっくに書いたりパフォーマンスを得るために
文法とか内部実装とか工夫しているだけであって。

244:デフォルトの名無しさん
09/03/03 06:28:52
>そのうち、オブジェクト指向出来ない人は、ハイさようならになりそう。

っつーか良く出来たフレームワークは
オブジェクト指向を特に意識しなくても
だれでも使える構成になってたりするが

245:デフォルトの名無しさん
09/03/03 06:31:19
あー使う側の立場だけ考えるとそうだけど作る側ならあれだね

246:デフォルトの名無しさん
09/03/03 11:17:55
>>242, >>243
ああ・・・そういえば、インスタンスを作成するって昔からありましたね。>AS
クラスを意識させない方向だっただけなんですね。

247:デフォルトの名無しさん
09/03/03 12:39:39
>>241
 「オブジェクト指向でなぜ作るのか」が比較的わかりやすくていい。

あとは、これとか。
URLリンク(kmaebashi.com)

これかな。俺も勉強始めたばかりなんでなんだが…。
URLリンク(www.stratagenom.com)

248:デフォルトの名無しさん
09/03/03 12:54:26
>>246
インスタンスを生成するのはクラスベースの専売特許ではない。
プロトタイプベースでもインスタンスは生成できる。

249:デフォルトの名無しさん
09/03/03 13:33:11
>>247
一個目のリンク先、わりと意欲的な文章だと思う。
OOPが分からない人々に対して、まず最初に、
インスタンスについて強調するのは大事だと思う。

250:デフォルトの名無しさん
09/03/03 16:04:15
>>246, 248
というかそもそもAS1、AS2にクラスなんてあったのか。
AS2のclass宣言はprototype云々を書く手間を省くだけの
省略記法程度のものだと思っていたんだが。

251:デフォルトの名無しさん
09/03/03 17:32:59
>>248
インスタンスの無いプログラミング言語なんて無いだろう...

252:デフォルトの名無しさん
09/03/03 17:46:58
>>251
primitive typeの値は普通インスタンスとは呼ばない。

253:デフォルトの名無しさん
09/03/03 17:52:15
え゛?

254:デフォルトの名無しさん
09/03/03 17:55:49
>>252
おいおい...

255:デフォルトの名無しさん
09/03/03 17:57:36
>>251
Cには、オブジェクトはあるがインスタンスはない。

256:デフォルトの名無しさん
09/03/03 18:05:58
>>255
インスタンスは意識してプログラムしないと碌な事がないよ
特にC言語の場合...

257:デフォルトの名無しさん
09/03/03 18:20:25
schemaとinstance、classとobject、typeとvalue、他にもあるかな。

定義無しでインスタンスという単語を使いたいのであれば、ざっくり
いって上記の組の右の単語を「インスタンス」の一言で括った程度
のものではないかと。
単語の使い方としての慣用は確かにあるけれども、きちんとした
定義無しに言語内での有無を論じられるようなものではないよ。

258:デフォルトの名無しさん
09/03/03 20:02:39
メモリ上の具体的な「オブジェクト」と、OOの「オブジェクト」は意味が違うだろ
後者は前者を内包することはあるが、一緒にして語ってる時点でおかしい

259:デフォルトの名無しさん
09/03/03 20:04:22
インスタンスとエンティティの違いについて教えてくだされ

260:デフォルトの名無しさん
09/03/03 20:11:31
classとentity

261:デフォルトの名無しさん
09/03/03 20:19:11
>>257
>きちんとした
>定義無し
だからこそ
>言語内での有無
は「言語仕様にあるか、ないか」しか言えない。
あれだ、「Javaにもポインタがある」つってる奴と一緒。

262:デフォルトの名無しさん
09/03/03 20:40:33
インスタンスって、オブジェクト指向云々に関わらず
メモリ上で実行されているプログラムそのものの事を言うもんだと思っていたが


263:デフォルトの名無しさん
09/03/03 21:23:45
エンティティってなに?

264:デフォルトの名無しさん
09/03/03 21:52:39
オブジェクト指向をコーディングだけにあてはめようとする奴と、
分析・設計からを理解してる奴が話すと
当然ながら噛み合わないな

265:デフォルトの名無しさん
09/03/03 21:58:05
分析・設計から理解してると
普及するのは自然な事だと納得できるし、受け入れやすいんだがなあ

266:デフォルトの名無しさん
09/03/03 22:06:19
北大路欣也

267:デフォルトの名無しさん
09/03/03 23:04:27
1つの機能に関するファンクションを
パッケージにできるだけでもありがたいのにな。
忌み嫌うわけが逆にわからん。

268:デフォルトの名無しさん
09/03/03 23:57:30
>>267
それはただのモジュール化との違いを説明できんのか

269:デフォルトの名無しさん
09/03/04 00:09:36
機能と状態をセットでパッケージ化できるわけで。

270:デフォルトの名無しさん
09/03/04 00:30:16
オブジェクト指向は、ウェブページだと利点を生かし切れない場合も多い気がする

271:デフォルトの名無しさん
09/03/04 00:33:19
構造化プログラミングの体質のままオブジェクト指向を導入すると、
必要とは思えないのは当たり前だ。
ジジババがネットの必要性を感じないのと同じ。

272:デフォルトの名無しさん
09/03/04 00:34:38
Webページのオブジェクト指向ってなんだ?Webプログラミングのことか?

273:デフォルトの名無しさん
09/03/04 01:03:56
>>268
検索機能なんかを考えればわかるのでは?
単純にモジュール化しても、ただの関数の集まりとしてしか扱えない上に、肝心な検索結果を保持する場所は人任せになる
クラス等を利用すれば、検索結果を中心に関数をモジュール化でき、検索結果の保存場所をどうするのか利用者が気にする必要が無くなる


274:デフォルトの名無しさん
09/03/04 01:20:04
>>273
それはただの抽象データ型でしょ
あとクラス使わないと出来ないなんてことはない。
例えば C言語のストリーム入出力だってファイルアクセスの関数を
モジュール化でき、ファイル管理データ(FILE型構造体)の保存場所を
どうするのかを利用者が気にする必要がなくなってる。

275:デフォルトの名無しさん
09/03/04 01:45:41
>>272
ホームページ作成でPHP等でオブジェクト指向を取り入れること

276:デフォルトの名無しさん
09/03/04 02:13:09
>>274
さらに付け加えれば、非標準ながら
fdopenやfmemopenによって多態性も実現できていると言える。

277:デフォルトの名無しさん
09/03/04 03:42:01
オブジェクト指向の必要性なんて、「IntelliSenceしやすくなる」で十分すぎるだろ。

278:デフォルトの名無しさん
09/03/04 03:59:45
あまりオブジェクト指向関係ないと思うよ。
型付けが静的か動的かの違いの方がでかいでしょ。

279:デフォルトの名無しさん
09/03/04 06:49:18
>>274
だよな
>>269 >>273
>>247 を読んでないよ

280:デフォルトの名無しさん
09/03/04 06:51:25
>>270
一番の原因は毎回接続しなおしてること
実際はCookieでごまかしてるが
httpのプロトコルが糞で
オブジェクト指向の普及を妨げてる

281:デフォルトの名無しさん
09/03/04 07:03:36
>>263
ぐぐれかす

282:デフォルトの名無しさん
09/03/04 07:27:57
PL上の概念としての「インスタンス」の話をしているときに分析設計での「インスタンス」を持ち出されてもw

283:デフォルトの名無しさん
09/03/04 07:35:42
いや〜、HTTPをクソ呼ばわりするのは結構蛮勇が必要だと思うな。
何に対して憤っているかよく判らないけど。ステートレスなところ?

284:デフォルトの名無しさん
09/03/04 07:40:16
>>280
ひょっとしてHTTPリクエストを出す度にsynパケットが飛んでると思ってる?

285:デフォルトの名無しさん
09/03/04 11:17:39
Cでもできる系の話は聞き飽きた。
そりゃ、できるだろうよ。
C++の最初の実装はC Frontなんだし。
大事なのは、俺様ルールでバラバラな実装をするのか、
言語仕様による統一的ルールでやるのかということだ。

286:デフォルトの名無しさん
09/03/04 12:04:27
>>274
ファイルを扱うためには、少なくともFILE型が必要である
FILE型を扱うためには、専用の関数が必要である

それらの関数をFILE型に閉じ込めておければ便利だと思わないか?
file++とか、file--とか、file + nとかで、ファイルポインタを制御し
*fileでファイルポインタの位置にアクセス出来きたりした方が便利な気がしないか?

まあ、*をオーバーロードしちゃ美味くないけどな


287:デフォルトの名無しさん
09/03/04 12:38:59
>>273 >>286は根本的にオブジェクト指向が分かっていない
コンポーネントにどういう責務を持たせるかが重要なのであって、
「ユーティリティクラスみたいなのがあれば便利だよね」、
とか言いだすのはインターフェースの切り出しができない奴の典型

288:デフォルトの名無しさん
09/03/04 12:51:26
>>287
何を言っているのか判らない...

検索オブジェクトが検索結果を持たないのが責務って事?
ファイルオブジェクトは、ファイルを扱わないのが責務って事?


289:デフォルトの名無しさん
09/03/04 13:19:31
出た! それでは、
根本的にオブジェクト指向が分かっている>>287さんに色々語ってもらいましょう。

290:デフォルトの名無しさん
09/03/04 13:39:26
phpって、元々classを使うことを前提に作られてない点がJavaなんかとは違うよね?

こういうスクリプト言語が大普及しているから、オブジェクト指向使わない・・や
必要性を感じない人が多いんだと思う。

291:デフォルトの名無しさん
09/03/04 14:29:51
emacs lispなんてもうね…

292:デフォルトの名無しさん
09/03/04 16:29:57
ひどいオブジェクト指向の例なら、Perl 5に勝てるものはいないだろ。

293:デフォルトの名無しさん
09/03/04 16:41:36
>>290
単にカジュアルプログラマへの動機付けの問題であればそれも
答えとしては十分なんだけど。
設計論に対する意見の違いもあるし、プログラマの世代差とか
属人的な要素も絡んで実際はそこそこ根深い話だと思う。

1980年代だったか月刊ASCIIでオブジェクト指向を取り上げた
記事を読んだときには今でいうちょっと前のWeb2.0とかクラウド
みたいな胡散臭さをプンプン感じた記憶がある。
「次の波はこれ!ソフトウェア危機もこれで一発解決」みたいな。

294:デフォルトの名無しさん
09/03/04 16:49:32
オブジェクト指向って別に効率的じゃないじゃん。

295:デフォルトの名無しさん
09/03/04 16:53:01
かつて、「オブジェクト指向」という単語は「再利用」という単語と強く結びついていた。
特に出版界で。

296:デフォルトの名無しさん
09/03/04 17:24:46
>>294
効率的だし再利用によってプログラミングの生産性は劇的に向上する、
と「期待されていた」んだよ。

「21世紀には社会で必要とされるプログラマ数が世界人口を超える」

そんな危機意識が語られていた時代もありました。

297:デフォルトの名無しさん
09/03/04 18:46:49
オブジェクト指向の話題では、大別すると2つの内容になる
ひとつはここにも多数存在する、言語うんぬんの話
もうひとつはオブジェクト指向根幹の分析・設計の話

オブジェクト指向の最大の利点は、
分析から設計、コーディングまでの設計外観を統一できるということ
分析や設計にオブジェクト指向を利用してこそ、
オブジェクト指向対応の言語を使うメリットがある
そういうことを理解してない奴が、言語うんぬん言いだす

一番の問題は、分析者・設計者がオブジェクト指向を利用していないくせに、
要件定義の時点でなぜかオブジェクト指向言語を採用してること

298:デフォルトの名無しさん
09/03/04 19:03:15
オブジェクト指向って一つの作業を一つ又はいくつかのオブジェクトだけを使って行えるようにする為のもんだろ。
だからある程度の汎用性を持たせられるインターフェース、実装を考えれば使いまわしができる。
そうすると長期的な生産性が上がるってことだったと思うんだが。

だから適当に作ったり下手くそな設計だと逆に使いにくくて当然。

299:デフォルトの名無しさん
09/03/04 19:03:53
>>297
> 分析から設計、コーディングまでの設計外観を統一できるということ
できねぇよ

少なくとも, 時系列のデータを扱う場合、単純に、
「お前らが言うオブジェクト設計」
を、やったら負けだと思う
関わった中では、とろくて使いもんにならんものが………

ハード屋よろしく
「ブロック図書いて、各ブロックの機能要素求めて、タイミングチャート
書いて、デッドロック要素見つける」
程度の事前検証ゐしないと、納期までにまともな動作は期待できない

ものによったら、伝達関数とかまで出てくる現場ではあるんだが


300:デフォルトの名無しさん
09/03/04 19:07:18
>>298
インターフェースの設計が分かってないだろ
ある程度の汎用性を持つインターフェース、ってなんだそりゃ?
コンポーネント間でどうしても必要な場合に、
やり取りとしてインターフェースが存在するんだぞ

301:デフォルトの名無しさん
09/03/04 19:15:23
指向とは言うけど何が指向性を持っているかが不明

302:デフォルトの名無しさん
09/03/04 20:22:50
>>300
やり取りする為以外にインターフェース存在するのかよ。
今やりたいことを達成すればいい設計にするのか、
それとも今は必要無いかもしれんけど、この先使いまわす時に必要になる事も考慮するのかって事だよ。

303:デフォルトの名無しさん
09/03/04 20:57:02
300 のインターフェースは URLリンク(e-words.jp)
298 のインターフェースは URLリンク(msugai.fc2web.com)

304:デフォルトの名無しさん
09/03/04 21:08:44
OOAとOODとOOPをごっちゃにして放言しているから収拾がつかない。

305:デフォルトの名無しさん
09/03/04 22:19:41
根本の考え方は、プログラムの生産性をより高めていこうってことで
言語の発展の流れとしてはごく当たり前で受け入れやすいと思うのに
まず「オブジェクト指向」って翻訳が悪い気がする
かといって良い言い方も思いつかないが

306:デフォルトの名無しさん
09/03/04 22:28:39
>>286
274は「Cでできるからオブジェクト指向言語なんて不要」と言っているようには見えないのだが。

307:デフォルトの名無しさん
09/03/04 23:21:31
>>302
拡張性の話とインターフェースの話を一緒にするから突っ込まれてることに気がつけよ
なんか、「JavaやってるんでOO理解してます」ってな奴が多すぎ

308:デフォルトの名無しさん
09/03/04 23:46:08
オブジェクト指向の真の意味を理解しているのは俺様だけだな、
っつーやつばかりだな。

309:デフォルトの名無しさん
09/03/05 00:55:29
てか、レベルの低いやつほど
『オブジェクト指向を馬鹿にしているやつは「Cでできるからオブジェクト指向言語なんて不要」なんて言っているから馬鹿なんだ』
なんて言うんだよな・・・
関数型言語とかもっと違う方向には目が向かないのかね、こういう輩は。
大体ソフトウェアの世界なんてまだまだ混沌としていて何が正しくて何が正しくないのか誰もわからないんだから、
あまり人が言っていることを馬鹿にしないほうがいいよ。
どうせまだ誰も正しいことなんてわかりっこないんだから。
少なくとも歴史が長い物理学よりはずっとやってることが原始的。

310:デフォルトの名無しさん
09/03/05 01:05:55
そこでわざわざ物理学を出すのはどうかと思う。
物理学に失礼すぎる。

311:デフォルトの名無しさん
09/03/05 01:37:46
>>310
そこの部分は、>>309の話の中で、彼の発言の趣旨から外れた一番どうでもいい部分。
何故そこを拾って取り上げようとするのかな? もっと全体像をとらえようよ

312:デフォルトの名無しさん
09/03/05 03:12:58
>>311
自分だってどうでもいいと思ったから取り上げた。
そんなこと蛇足にすぎない、書かないほうがよかったぞという思いを込めて。

313:デフォルトの名無しさん
09/03/05 03:23:56
>>309

>てか、レベルの低いやつほど
>『オブジェクト指向を馬鹿にしているやつは「Cでできるからオブジェクト
>指向言語なんて不要」なんて言っているから馬鹿なんだ』
>なんて言うんだよな・・・

ここと、

>関数型言語とかもっと違う方向には目が向かないのかね、こういう輩は。

ここの話の繋がりを分かりやすく教えて下さい偉い人。
俺にはさっぱりだ。

314:デフォルトの名無しさん
09/03/05 07:39:10
>>309は岡村を知らないモグリ

315:デフォルトの名無しさん
09/03/05 15:44:08
>>314
岡村って知らないんだけど、何やってる人?

316:デフォルトの名無しさん
09/03/05 16:06:06
芸人長いことやってる

317:デフォルトの名無しさん
09/03/05 19:06:56
>>241
> 「憂鬱なプログラマのためのオブジェクト指向開発講座」もちょっと読んでみることにします。

>>247
> >>241
>  「オブジェクト指向でなぜ作るのか」が比較的わかりやすくていい。

「憂鬱本」と「オブジェクト指向でなぜ作るのか」は、今となってはあんまり良くない。
URLリンク(d.hatena.ne.jp)

> あとは、これとか。
> URLリンク(kmaebashi.com)

これはオススメ。

318:デフォルトの名無しさん
09/03/05 19:36:57
カモノハシ本たけーよ。

319:デフォルトの名無しさん
09/03/05 19:40:57
オブジェクト化すると責任の所在がハッキリするよね

320:デフォルトの名無しさん
09/03/05 20:34:49
オブジェクト指向も設計実装の道具のはずなんだけど
理解が難しいのが問題では?
使いづらい道具は人は使わないですし本来道具は使いやすさが
重要だとおもうのですが

321:デフォルトの名無しさん
09/03/05 20:37:07
定義が曖昧なのも問題

322:デフォルトの名無しさん
09/03/05 20:59:59
オブジェクト指向ですら難しいという人はプログラマ向いてない。

323:デフォルトの名無しさん
09/03/05 23:34:06
オブジェクト指向の考え方は何となくわかるが、小さいプログラムだと今までのやりかたの方が簡単に組める。
どうしても必要にならないと本気で使おうと思わないんだよね。
高速に動かしたいところはやっぱりCになっちゃうし。
ま、確かに俺はプログラマ向いてないと思う。

324:デフォルトの名無しさん
09/03/06 00:13:47
オブジェクト指向は、必要なければ使わなくても良いんじゃないかな?
そういう人のために、オブジェクト指向使わなくても利用できる言語やスクリプトあるわけだし…
ま・・俺もむいてないけど、適度に出来る程度で十分な案件だけやってるw・・・全部一人でwww

325:デフォルトの名無しさん
09/03/06 00:47:20
オブジェクト指向は、必要なければ使わなくても良い

326:デフォルトの名無しさん
09/03/06 00:52:14
オブジェクト指向は、仕事に困らないのであれば使わなくても良い

327:デフォルトの名無しさん
09/03/06 01:30:28
ぶっちゃけC++やC#使えればよくて
オブジェクト指向を使う必要はない


328:デフォルトの名無しさん
09/03/06 01:33:15
まあ、stlやboost使える程度に知識があれば
厳密の意味でのオブジェクト指向なんて別にいらんよな。

329:デフォルトの名無しさん
09/03/06 01:35:16
オブジェクト指向ははったりで使う
仕事でそれ以上の意味はない

330:デフォルトの名無しさん
09/03/06 01:37:44
会議で黙らせる時に使う

331:デフォルトの名無しさん
09/03/06 02:42:27
最初にオブジェクト指向から入った人には
オブジェクト指向が普通で、そうじゃない物を使う人が変に見えるだろうな
意外とこういう人多いんじゃ無かろうか
それと、分業させるのがOOだと楽ってのもあるんだろうな


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

5392日前に更新/139 KB
担当:undef