オブジェクト指向は戦場では必要無し その3
■ このスレッドは過去ログ倉庫に格納されています
0001うつつつつ
NGNG引き続きOO厨とアンチOO厨の血で知を笑う戦いきぼ。
その1 http://pc.2ch.net/test/read.cgi/tech/1011997945/
その2 http://pc.2ch.net/test/read.cgi/tech/1013266554/
0133デフォルトの名無しさん
NGNG想像がつくわけで(w
0134デフォルトの名無しさん
NGNG内部イテレータとかを簡潔に書きたいんだろう。
こういうのはコールバックを除けば構文の問題なんだよね。
0135デフォルトの名無しさん
NGNGここまでの流れからすると、少なくとも「 」はそういう主張はしてないと
思うが。
ま、それはさておき、内部イテレータとかを簡潔に書きたければ、
コールバックのためには関数を作らなければならずしかも関数のネストが
できないCに比べれば、無名クラスでクロージャもどきができるJavaの方が
簡潔じゃないかな。
0136
NGNGことが多かったな。
(イテレータはあんまり使わない。)
0137
NGNG関数ー関数ポインタの方が再利用率が高かった。
分割単位が小さければ小さい程応用範囲が広いのが原因だと思う。
0138デフォルトの名無しさん
NGNGKusakabe 並みの面の皮の厚さだな(w
0139 デフォルトの名無しさん
NGNG普通によく分からないのだが…
0140デフォルトの名無しさん
NGNGKusakabeタンは衝撃だったよね。
0141デフォルトの名無しさん
NGNG> たとえば?
カプセル化=情報隠蔽
メソッド≒関数
クラス⊃構造体
0142デフォルトの名無しさん
NGNGそれを見ると日本人にとってはいいニュースに聞こえるね。
怪しい漢語からカタカナ語への切り替えにちょうどいいタイミングだったと思われ。
でも多態とか新たな似非中国語を産んだか…。
0143デフォルトの名無しさん
NGNG馬鹿が己の経験論を自身たっぷり述べるほど、傍で
見ていて間抜けな話はないと思う。
0144
NGNGまた、反論があるなら論理的に願います。
0145
NGNG0146デフォルトの名無しさん
NGNGC++ の実装に依存してる考えだね
0147デフォルトの名無しさん
NGNGきっと C++ やって OOP やった気になってるんでしょう。
0148デフォルトの名無しさん
NGNG0149デフォルトの名無しさん
NGNG0150デフォルトの名無しさん
NGNGここは、そんな痛々しい「 」を眺めて愉しむスレです。
素直に間違ってたといえば良いのに、いい加減な知識にいい加減な言い繕いを
重ねてるから遊び道具にされちゃうんだよね(w
0151デフォルトの名無しさん
NGNG「 」は明らかな間違いを延々と主張していながら、その間違いを認めてすら
いないわけだからね。
しかもいまだに関数ポインタがどうのこうのと言い続けている。
粘着もここまで来ると、おもちゃにするより、正直、寒いな。
2ちゃんならどうでもいいけど、たとえばこんな奴と電車で乗り合わせたり
したときのことを想像するとね…
0152デフォルトの名無しさん
NGNG隠すのが主目的ではないから。
どこかにも書いてあったが透明カプセルだってある。
0153131
NGNGそもそもOOの普及以前には「情報隠蔽」という概念はあまり一般的ではなかったと
思うんだが。
とはいえ、OOでなくても(たとえばCとか使っても)大規模なプログラムなら
なんらかの方法で情報隠蔽を図るから、情報隠蔽は別にOOに特有の概念では
ないわな。
>メソッド≒関数
>クラス⊃構造体
このふたつについては、少なくとも「似て非なるもの」なんだから、別の名前を
割り当ててもいいんじゃなかろうか。
とはいえ、たかが「メソッド呼び出し」を、「メッセージ送出」と呼ぶのはやめて
欲しいが。このスレにいるアンチOOは、そういうわけのわからない言い回しに
翻弄されてアンチになっちゃったような気がする。
てなわけで、アンチOO連中もかわいそうな被害者なんだから、あんまりいじめ
ないでいてあげようよ。(w
もちろん、「 」は例外でいいけど。
0154131
NGNG>C++ の実装に依存してる考えだね
かもしれんが、そう考えて何か不都合が?
Smalltalkerを相手にするのに比べたら、C++のスタンスはずっと
「実利的」だと思うがな。
C++の仕様を全部理解しようと思うと大変だけど、OOの「サワリ」を
つかむには C → C++という流れはむしろ悪くないと思う。
0155131じゃなかった
NGNGそれはそれとして、
>>139
C++(STL)やJavaのイテレータは使用者側が++したりnext()呼んだりするけれど、
これが「外部イテレータ」。「内部イテレータ」ってのは、使用者側はそういう
ところに手を出せず、逆に、イテレータによって決められた処理が駆動される
ことになる。Rubyのイテレータはこっち。
で、こういうのを、CやJavaで実現しようとすると、関数ポインタなり
インタフェースなりを使うことになる(要はコールバックだからね)。
0156デフォルトの名無しさん
NGNGJavaがそう定義しちゃったみたいだから、我慢してるけど。
0157デフォルトの名無しさん
NGNG内部イテレータは、C++ だと
関数オブジェクトを for_each などの traverse アルゴリズムに渡す
というのが近いのかな。
0158155=135
NGNGですな。あとはVisitorパターンとか。
# 「Javaの格言」にちょっとだけ説明がある。
んで、そういうときに、Javaだと無名クラスが使えるから、わざわざ
外に関数を定義しなければならないCより簡潔なんじゃない? というのが
>>135 の意図。
0159デフォルトの名無しさん
NGNG話が逸れるけど、C++ で無名関数オブジェクトを定義できるようにするライブラリを
書いてる人がいるみたい。boost.org の ML で Review Request が出てた。
(Boost Lambda Library, 略称 BLL だそーだ)
0160デフォルトの名無しさん
NGNG同意。
OOの利点で語られることの殆どはOOをサポートしない環境でも
結構頻繁に使われるよね。
Netscapeなんて構造体のメンバにに関数ポインタを入れといて
メソッド的な使い方する方法を多用してたし、
これだって一種の多態だね。
別にOOの概念全部を必ず使わないとならないわでないのだから
そこは設計次第でしょ。
OOならできてOOでないとできないことなんて無いんだから・・・
0161デフォルトの名無しさん
NGNGageちまった。
スマソ
0162デフォルトの名無しさん
NGNG> OOならできてOOでないとできないことなんて無いんだから・・・
まぁそうだが、OO で設計したら素直に OOPL 使え、とは思うけど。
インターフェースの多重継承なんかは、OOPL の力を借りないとやってられん
でしょ(関数呼び出しのたびに this 相当のポインタの offset を再計算、とか自
前でやってたら死ぬ)
0163160
NGNG確かに多重継承はOOPL使ったほうが合理的だと思う。
できる/できない
で語ったのはちと良くなかった
っていうか
Cで多重継承(と似たようなこと)をやるのが痛い
それこそOOのためにコードを書かされる
0164デフォルトの名無しさん
NGNG(使えるなら)OOPL使えばいいよね。
でも、犬::鳴く、猫::鳴く 的な説明でOOを語る奴はやっぱうざいし。
打ち合わせのときなどに、「その設計はOO的じゃないですよ」なんて
言う奴って結構いないか?
0165デフォルトの名無しさん
NGNG「その設計はOO的じゃないですよ」って言う奴はたいてい設計出来ない奴だから無視するのが吉
「こういう設計を提案します」って言う奴を信用しろ
0166デフォルトの名無しさん
NGNG縛りの法則なんてプログラム出来なくたって覚えられる。
だがそんな状態の人が出来ることはせいぜい設計時のダメ出しぐらいで、
代替案なんてありゃしないから邪魔なだけなんだよな。
0167デフォルトの名無しさん
NGNG> 結局オブジェクト指向ってプログラマがTechに走らないようにする縛りなんだな。
そうなの?
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNGそれにしても、オブジェクト指向を導入すればトリッキーなコードがなくなるかと
言えば、全然関係ないと思うけど。とくに C++ なんかはキャスト使えばなんでも
アリアリだし、
private なメンバにアクセスしたい
→ friend にしちゃえ (まだマシ)
→ 継承しちゃえ(ダメダメ)
→ #define private public (最悪)
とかあるわけだし。
0170デフォルトの名無しさん
NGNGトリッキーなコードを書いたらペアプロでダメだしされるだろう。
0171糞
NGNG宮本 武蔵4
p48
無知はいつでも、有知よりも優越する。相手の知識を、テンと
して無視し去ってしまう場合に、無知が絶対につよい。生半可
な有知は誇る無知へ向かって、施すに術(すべ)がないという格
好になってしまう。
0172デフォルトの名無しさん
NGNG知らないほうがいいっていうことかな?
関係ないけど、有知って言葉を辞書で調べたら
「有知無知三十里」って言葉が出てきた。
0173デフォルトの名無しさん
NGNGムチムチ (;´Д`)ハァハァ
0174デフォルトの名無しさん
NGNG無知はDQNと言っているらしい。
0175
NGNGsage誘導してるのがいるなー。
てことでage!
0176デフォルトの名無しさん
NGNG名スレと思うならほっとけYO
0177戦場では役に立たないと武蔵様も・・・
NGNGが武蔵には、間髪のまに、処する方法が立っていた。
兵法によらず、すべての理は、それを理論するのは平常の事で、
実際にあたる場合は、いつも瞬間の決断を要するのであるから、
それは理論立てて考えてすることではない、ひとつの「勘」であった。
平常の理論は「勘」の繊維をなしてはいるが、その知性は緩慢であるから、
事実の急場には間に合わない知性であり、ために、敗れることが往々にある。
--------------------------------------------------------------
(吉川英治 宮元武蔵 吉川英治文庫 8巻96ページより引用)
0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNG理論だけでは戦場には役に立たない。
戦場には”勘”というのが重要。
その”勘”を養うには繊維となっている理論が重要であるが
それだけではまだ足りない。
つまり、戦場で勝つには”勘”を作っている理論とそれ以外(実践?)を
身に付けろってこと。
ちなみに、文章をよく読むと分かるが、平常の理論は事実の急場には間に
合わないと書いてあるが役に立たないとは書いてないので勘違いしないように。
0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNG『知恵』と『道理』、そして人としての『道』があって初めて心は空となる…」宮本武蔵
0183デフォルトの名無しさん
NGNG板違いなような、デムパなような…
0184デフォルトの名無しさん
NGNGやっぱ理論の重要さを分かっているんだね。
さすが武蔵。
0185デフォルトの名無しさん
NGNGこのスレは
悲惨な「 」を晒すスレ
なんだけど、本人はわかってないと見える (w
で、関数ポインタはどうなったのかね?
0186デフォルトの名無しさん
NGNGファイル分け >>>>>>> クラス
なんて、わけのわからない主張してたんだよな。
もともと直交している概念を比較してどうするよ。
思うに「 」って、根本的に「インスタンス」がわかってないんじゃないかな。
こいつは(恐ろしいことに)携帯Javaのプログラマだそうだが、こいつの書く
プログラムはstaticの塊なんじゃないかと想像してみる。
0187デフォルトの名無しさん
NGNGどうせ妄想でしょ(w
0188デフォルトの名無しさん
NGNG>>186を見る限りとんでもないアフォだと見受けられる。
つーか、携帯ってi-modeだろ?
あれはOOなんて言ってたらメモリが足りないだろ。
8ビットマイコンのBASICプログラムみたいな感覚じゃないのか?
0189デフォルトの名無しさん
NGNG> あれはOOなんて言ってたらメモリが足りないだろ。
OO だと消費メモリが増えるという根拠は?
0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNG変数はstaticにしといた方がメモりを食わないとか。
0192デフォルトの名無しさん
NGNGもちろん、代表的な Java VM に関する論文とか Inside the C++ Object Model
ぐらいは読んでますが。
0193デフォルトの名無しさん
NGNGそれで?
0194デフォルトの名無しさん
NGNG繰り返しになるけど
> あれはOOなんて言ってたらメモリが足りないだろ
は根拠がない、もしくは何か勘違いしてると思ったので、根拠を聞いてみた。
0195デフォルトの名無しさん
NGNG俺は勘違いしてるか?
0196デフォルトの名無しさん
NGNG- メモリが足りない
- OO だからメモリが足りない
言ってることが別ってことでしょ。
0197デフォルトの名無しさん
NGNG下らんことでつっかかるな。
そんなん説明するのはめんどくさい。
0198デフォルトの名無しさん
NGNG何でもいいけど。
0199デフォルトの名無しさん
NGNGそオブジェクト指向は基本的に、おぶ
つまり、途中で出た話のように OO言語を有効に使っていてもOOではないのと同じで
言語の機能は最大に利用しなければいけないけど、注目点は違うという事だ
0200デフォルトの名無しさん
NGNG日本語で書いてくれよ
0201199
NGNGまあそんな書き直すほどの事じゃないけど
ようするに、
それよりも優先すべき事があるんだから
そっちをoriented 出来ないって単純な話だよ
0202デフォルトの名無しさん
NGNG> あれ? 文字化けしてる?
うん。
> そオブジェクト指向は基本的に、おぶ
> つまり、
こんな感じになってるので、何が「つまり」なのか謎。
> それよりも優先すべき事があるんだから
優先も何も、そもそも OO とメモリ使用効率が相反するのかって話じゃなかったの?
0203
NGNG空のクラス1個宣言するだけで700バイト消費するんで使えません。
10K以内に納めるテクニック
http://www.atmarkit.co.jp/fmobile/rensai/doja07/doja07.html
プログラムの基本は「非オブジェクト指向」で
0204デフォルトの名無しさん
NGNG意味が無いことなんだよな。
0205デフォルトの名無しさん
NGNGなにから話がつながって「結局」なのか謎だが。
まぁ数千行程度の小規模なプログラムなら OO だろうが手続き型だろうが、設計
なんざしなくても作れるっつー気はするけど。
0206デフォルトの名無しさん
NGNG0207
NGNGOOPLでは最初にちゃんと見通しを立てて設計しておかないと、
小規模でも行き詰まります。
0208デフォルトの名無しさん
NGNGOO じゃなくて OOPL なのか?
0209デフォルトの名無しさん
NGNG0210
NGNG0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNG俺、数千行どころか数万行でも最初に設計なしに作れるよ。 と言ったらどうする?
もちろんユーザから必要な帳簿のイメージのFAXは貰うけどさ
使うのは主にDelphiかVC++で、つまりはOOPLだけど
別にオブジェクト指向してるわけじゃない。
0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNGでも世の中のプログラマの70%は、一生OOを理解できない
脳みその持ち主だと思う。
0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNG0218
NGNG0219デフォルトの名無しさん
NGNG0220旅の始まりの人
NGNGパラメータとして実行時に動的に決めるものとの設計時の
切り分けがよく分かりません。後々後悔する事が多いっす。
完成してみたら、存在意義のない間抜けなクラスがあったり
無茶なパラメタライズがあったり。
どうやって設計段階で判断するんでしょうか?
0221デフォルトの名無しさん
NGNG設計とコーティングは。
そしてリファクタリングを繰り返す。
そうしないと良いプログラムはできない
0222旅の始まりの人
NGNG変更管理が面倒くさくないですか?
下位レイヤを変更したりすると、上位でそれ使ってるところを
みんな修正する羽目になるし。
0223とあるダメ社員
NGNGC言語ばかり使用していて、やっとOOの勉強を始めたばかりですので幼稚な
質問かもしれません。
|212 名前:デフォルトの名無しさん :02/02/28 23:32
|>>207
|俺、数千行どころか数万行でも最初に設計なしに作れるよ。 と言ったらどうする?
|もちろんユーザから必要な帳簿のイメージのFAXは貰うけどさ
まじめなお話で数千行(数万って…凄いなぁ)もあるプログラムを設計書も作成しな
いで、作れるというのは信じ難いです。
ま、白髪三千丈の類の冗談なんでしょうけど。
ちょうど220の人が書いているようにクラスを考えてみたりする必要もあるわけで
すよね、OOなら。
まして、合計で数千もの手続きを経なければならない機能を作り上げるのに、どうし
たら設計が手軽ですむのか、ちょっと教えて欲しいです。
個別のノウハウとか、そういうものを書いてみてください、といっている訳ではな
くて一般論で構わないので。
どうして、こういう物凄い発言が出来るのか知りたいのです。
0224デフォルトの名無しさん
NGNGその労力を極力軽減するのが OO だ。
ということらしいぞ。
0225デフォルトの名無しさん
NGNG212は1行もコード書いたことない妄想野郎だからさ
0226
NGNGDBからデータ拾ってきて表示して変更してセーブするだけで、
画面数がやたらに多いのだと軽く逝くけどね・・・。
0228デフォルトの名無しさん
NGNG(・∀・)イイ!!
0229デフォルトの名無しさん
NGNG固定概念を取り払えよ
0230旅の始まりの人
NGNGそういうのは、1画面分の処理を通せば、後はコピペ(OOPなら実装継承?)
でちょいちょいと変更したのをいっぱい作っていけばいいだけですもんね。
私も、そういうのは設計なしで3万行というのを今書いてるところですよ。
コアだけちゃんと作れば、後は単調な作業が続くんですよねー。
0232とあるダメ社員
NGNGうーん。どうにもよくわからないです。もうちょっと教えて欲しいです。
|そういうのは、1画面分の処理を通せば、後はコピペ(OOPなら実装継承?)
|でちょいちょいと変更したのをいっぱい作っていけばいいだけですもんね。
|私も、そういうのは設計なしで3万行というのを今書いてるところですよ。
あの、そういう作り方って、本当にやってらっしゃるのですか?。
似たような処理ばかりで、トータル3万行も?
継承したら、3万行にもなるわけないような気がするのですが、素人の考えなのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています