トップページ⇒tech
968コメント317KB

オブジェクト指向は戦場では必要無し

■ このスレッドは過去ログ倉庫に格納されています
0001あたたたたNGNG
オブジェクト指向はより自然なモデルに即したものではあるが、
クラスを理解する労力が大きく、目的まで達成するのに
時間がかかる。他人のソースを見るにも複雑でときほぐしにくい。
ちゃんと整備されたドキュメントがなければ粗大ゴミソース。
またオブジェクト指向が○○に優れているとかいう話も、あくまで
ちゃんと設計され、ちゃんと実装されたクラスがあるという前提での話。
実際は世の中にどれだけの糞SEや糞PGがいることか。。。
よってオブジェクト指向は戦場では使いものになりません。


0159デフォルトの名無しさんNGNG
>ライブラリ大爆発して収集つかん

ハァ?
0160デフォルトの名無しさんNGNG
>>158
ライブラリってのは、単にある機能を簡単に実現できるよう
にパッケージングしたクラスの集まりだ。

別に無理してつかわんでもいいぞ。勝手に自分でゼロベースで
シコシコ作ってれば?俺はそんな暇人じゃないのでライブラリ
使うけど。
0161 NGNG
Javaのライブラリ全部把握する暇があったら俺は自分で作るYO!
0162デフォルトの名無しさんNGNG
>>161
全部把握する必要があると思ってる奴は、それだけで
頭悪い証拠。
0163 NGNG
馬鹿だねー、全部把握しないと何が出来るか判らんじゃないか?
知らない間にライブラリで用意されてる車輪を再発明してるかもしれんのだぜ?
0164デフォルトの名無しさんNGNG
>>161
バカかお前。どこにどんな機能のクラスがあるかだけ把握しといて、
後は使う時にAPIドキュメント読みながらで十分だろうが。
0165デフォルトの名無しさんNGNG
なんかどっかで見た流れだな(w
0166 NGNG
>>160と>>162は矛盾してるんだが、同一人物か?
0167デフォルトの名無しさんNGNG
なんで全部把握する必要があるんだ?
必要に迫られたもんを把握すればいいじゃないか。
0168デフォルトの名無しさんNGNG
>158
がたこ殴りに遭ってます。
0169デフォルトの名無しさんNGNG
不毛だ・・・
0170デフォルトの名無しさんNGNG
OO的な設計からOOPLの必然性はどこから出てくるの?
おれはOOは別に否定しないがこれに関しては疑問。
当然のように考えてる人が多いからちょっと萎える。

あとOOPLでプログラミングしたときはコメントに、
メソッドに「何をする処理」というコメントの他に
クラスやインターフェイスに「何をするためのクラス」と
クラスを作ったその意義を書き込んで欲しい。
必要であるということは理由があることだからそれを的確に。
下手なクラス設計だろうがその意義を書き込んでくれれば、
あとから見たものが理解するのに役立つ。
追加のコメントにはその逸脱具合を書いて欲しい。
大事なことは最初のコメントは消してはいけないということ。

ちなみにJavaのライブラリは整理されてて名前見るだけで
だいたい推測できるからいいと思う。あれをすんなり使えない
人はC++のライブラリを直ぐに使わなくてはいけない状況を
知らない、ある意味、幸せもの。
0171デフォルトの名無しさんNGNG
>Javaのライブラリは整理されてて名前見るだけで

マジデスカ?
0172デフォルトの名無しさんNGNG
>170
おれは名前の意味以前にあの先頭大文字単語様式が気に入らん
0173 NGNG
>>164
未知のクラスが必要か必要でないか、なんで判ると思うんだ?
0174デフォルトの名無しさんNGNG
OOPLって横着しすぎて
バグ出やすいよな。
0175デフォルトの名無しさんNGNG
言語・方法論に罪はない。
0176デフォルトの名無しさんNGNG
罪はある。
従来の開発スタイルを否定し、人間を否定した。
そんなことやったのはOOだけ。
0177デフォルトの名無しさんNGNG
ごめんで済んだら警察は要らないって最初にいった人って誰ですか?
っていう質問をしたいんですけどどこで質問すればいいですかね?
0178デフォルトの名無しさんNGNG
>>176

技術は変わらないものだとでも言いたいのか?
逝け。
0179デフォルトの名無しさんNGNG
言語・方法論はただそこにあるだけ。
責任は採用したものにある。
現場がアホならアホに適した方法論を
採用すべし。
0180 NGNG
>>178
OOは技術ではなくビジネスモデルだよ。
いいかげんに気付けよ。
0181デフォルトの名無しさんNGNG
>現場がアホならアホに適した方法論を

OOのことですね。
0182デフォルトの名無しさんNGNG
>>180
ビジネスモデルってなんですか?
説明できないなら厨房とみなしていいですか?
0183デフォルトの名無しさんNGNG
OOPLってバグも伝染するから嫌なんだよな。
何人かでプロジェクト組んでやる時は管理しっかりしないと。
ハイリスク,ハイリターンだよ。
0184 NGNG
>>179
「この服はアフォには見えない服です」と言われて見えるフリをしてるアフォ
0185デフォルトの名無しさんNGNG
>>180

ちげーよ。
おまえらが要求したものを提供したまでだよ。
「もっと楽になりたい」って言ってたじゃん(W
0186デフォルトの名無しさんNGNG
>>182
新聞雑誌に提灯記事を書かせ、セミナーを開き、嘘を並べ立てて
事情を知らないnewbeeを騙して要らないものを売りつけて金を取る手法。
0187デフォルトの名無しさんNGNG
アメリカはあたりまえのように
OOなんですけど・・・
0188デフォルトの名無しさんNGNG
>>187
そうでもない。
人月の神話やデマルコの本でも読んでみれ。
0189 NGNG
OSやインタプリタはOOじゃ無理だろ。
0190 NGNG
アメリカのソース。全然OOじゃない(スプライトぐらいしか)
http://www.alien-factory.co.uk/download/Gundam_v1.0_beta1_src.zip
0191デフォルトの名無しさんNGNG
>>188

古くねーかそれ。
0192デフォルトの名無しさんNGNG
>>189
何で?
「無理」 が 「全てを OOPL で書けない」 という意味ならそうかもしれないが、
オブジェクト指向で設計して作るのは可能。

だいたいインタプリタが作れないなら Smalltalk の VM の立場がない。
0193デフォルトの名無しさんNGNG
>>189
> OSやインタプリタはOOじゃ無理だろ。
ネタだろ(w
0194デフォルトの名無しさんNGNG
>>176
> 従来の開発スタイルを否定し、人間を否定した。
それは OO コンサル屋だけだろ。

実際には OO は従来の考え方の延長線上にあって、突然、無から出てきたわけではな
い。
0195デフォルトの名無しさんNGNG
>>170
> OO的な設計からOOPLの必然性はどこから出てくるの?
OOPL じゃないと、OO で設計した結果をそのままコードに落としにくいから。
0196デフォルトの名無しさんNGNG
>>189

>OSやインタプリタはOOじゃ無理だろ。

サラシアゲ (ワラワラワラ
0197デフォルトの名無しさんNGNG
アプリに使うなら効果的
0198デフォルトの名無しさんNGNG
OOの実装ってみんなどんなことしてきたの?>OO肯定派
それを最初に書いてくれないとあんまり説得力ないな。
0199デフォルトの名無しさんNGNG
とりあえず、ポリモーフィズム勉強してから来い!!
C++でvirtual使わない奴はいってよし
0200デフォルトの名無しさんNGNG
>>198
> OOの実装
意味不明なんだが、仕事でどんなプログラムを組んできたのか聞きたいの?
0201細くNGNG
補足:ポリモーフィズム=多相性
0202デフォルトの名無しさんNGNG
>>200
そう。
一般論なんて聞き飽きたから、
個々の人の経験談を聞きたい。

まずはおれから。
立場:大規模プロジェクトでのOOは難しいため否定的
   小規模なものなら相互の理解が可能なため有効
理由:昔CORBAを使ったシステムに関わったが、
   ドキュソが大量に混じっていたため、
   一プロセス=一クラス、そしてその中に数十のメソッド
   という構成になってしまった。当初はOOらしい設計をする
   つもりだったらしいが、そんなのは全て安いお金で
   かき集めたSE、コーダーに理解されるまでもなく、
   無残にも消えた。おれもドキュソなVB房だったため、
   当然プロジェクトを潰すのに貢献。ニャハハ
0203デフォルトの名無しさんNGNG
つまりCOBOLまんせ〜ということですな?
0204デフォルトの名無しさんNGNG
>>202
そうそう、現実の世の中は優れたPGの数よりも
ドキュソ(自分含)の絶対数のほうが多いものだから、
OOのなんて理想論の話でしかない。OOの成功例として
Windowsとかいってる奴がいるけど、そのWindows開発に
今までいくらかかってると思ってるんだ? OOは手間が
かかるからコストにも響いてくるもの。
0205デフォルトの名無しさんNGNG
OOってクラスライブラリを使う分には便利だなあとか思うけど、
OO設計しろとか言われると、どうしていいか分からん。
0206デフォルトの名無しさんNGNG
>>203
それはいいたかないけどな。
なにしろ上の悲惨な体験のときはほんとにまいった。
奴ら数千行なんて関数を平気で書くんだぜ。
まったくたまんねぇよなw。
そんな奴らにOOなんてぜってー無理だよ。

とにかくプログラマってピンきりで底辺の奴らが
沢山いるのがこの業務系の世界。
理念も結構だが、実際に集められるメンバーのことを
まず考えるのが先だな。よく知らんけど、
EJBってのはドキュソをEJBコンポーネントに
閉じ込めておくための技術なのか?
だったら使えるなw。
0207デフォルトの名無しさんNGNG
>>204
いくらかかっているか知らないが、ペイできて利益が出れば成功には違いない。
0208デフォルトの名無しさんNGNG
>>204
> OOの成功例として Windowsとかいってる奴がいるけど、そのWindows開発に
> 今までいくらかかってると思ってるんだ?
それは Windows は OO で設計しなければ、もっと安上がりに実現できたはずだ、
という主張か?
0209202=206NGNG
他の奴も自慢の成功談、失敗談を書いてくれよ。
0210デフォルトの名無しさんNGNG
>>209
それは、技術板よりマ板むきのネタなんでわ?
0211 NGNG
OSやインタプリタはOOじゃ無理だつーの!

さらしあげてる奴はどうせ「クラスで書けるじゃん」とかいう馬鹿だろうが、
何をオブジェクトにできるのか挙げて見ろ。
0212デフォルトの名無しさんNGNG
Gof本すら読んだ事無いのか……
0213デフォルトの名無しさんNGNG
はっきり言ってしまうと要求がシビアなプログラムは
OOでは書かないほうがよい。
0214デフォルトの名無しさんNGNG
護符本って何ですくw??
0215デフォルトの名無しさんNGNG
>>212
あんなもんでGofなんて名乗るのは
おこがましいにも程がある!
Mao Zedongに失礼だ
0216デフォルトの名無しさんNGNG
>>211
インタプリタなら

 トークン
 字句解析機
 構文解析機
 シンボルテーブル
 構文解析結果を保持しておくツリー
 ツリー中のノード
 中間コードをネイティブコードに変換する JIT

あたりを、それぞれオブジェクトにする。
0217196NGNG
>>211
サラシアゲする必要すらなかったな (藁
とりあえずSqueakのクラスライブラリでも眺めてみろよ。
OSに必要な技術要素もインタプリタもコンパイラも
ちゃーんとOOで実装されてるから。
0218デフォルトの名無しさんNGNG
>>217
どうせ Smalltalk のソースなんて読めない、に一票。
0219 NGNG
>>216
それは処理であってオブジェクトではない。
0220デフォルトの名無しさんNGNG
OOじゃないプログラムなんて信じらんない(マジで
関数あふれかえってるし読みにくいし全体を把握しにくいし。
非OO世代の人間がOOするのは大変かもしれないけどさ、
漏れ的には非OOプログラミングなんて考えただけでめまいがする。
0221訂正NGNG
>>216
それは処理や構造であってオブジェクトではない。
0222デフォルトの名無しさんNGNG
>>219
ちとまて。オブジェクトの定義をはっきりさせてくれ。
0223 NGNG
ああ、クラス=OOだと思ってるアフォが割りこんでくるし。
どうして過去レスを読まずに次から次へと現れるのか?
スライムかお前は?
0224デフォルトの名無しさんNGNG
>>219
処理をオブジェクトにしてはいけない理由は?
ヒント: コマンドパターン
0225デフォルトの名無しさんNGNG
>>219
> トークン
> シンボルテーブル
> 構文解析結果を保持しておくツリー
> ツリー中のノード

は明らかにオブジェクトだと思うけどなぁ?
でも俺だったら>>216の書いたやつはみんなオブジェクトにすると思うな。
0226デフォルトの名無しさんNGNG
>>223
どこにいるんだ? 俺には見えないんだが。
0227デフォルトの名無しさんNGNG
>>226
たぶん>>223にだけ見えるんだよ。
人はそれを幻覚と呼ぶけどね。
0228 NGNG
>>224
処理はオブジェクト指向で言うところのオブジェクトではありません。
>>225
そこらはオブジェクトでもいいけど「トークンオブジェクト」なんて
作ってもなんに使うんだ?・・・・可変にして予約・・・・ぐらいしか

0229 NGNG
関数でもOOPは出来るよ。常識だろ。
0230デフォルトの名無しさんNGNG
>>225
JITにするかどうかは横に置いといて (藁
折も>>216に出てきてるのは全部オブジェクトにするなあ。

>>226
たぶん221のことだと思われ。
0231 NGNG
「扱う」のがオブジェクト。「扱わせる」のはオブジェクトではない
構文解析機など屁理屈じゃん。
0232デフォルトの名無しさんNGNG
OSのサービスパックなんてOOPの弊害だよな。
0233デフォルトの名無しさんNGNG
>>231
> 「扱う」のがオブジェクト。「扱わせる」のはオブジェクトではない
意味が良くわからんが、主語は何なんだ?
0234デフォルトの名無しさんNGNG
>>228
ハァ? 何だか「オブジェクト指向分析・設計 〜初級編〜」とかを
斜め読みしただけの厨房みたいな事いうヤツだなぁ 。
インタプリタみたいな「処理」が中核的概念になっているドメインでは
当然「処理」もオブジェクトとしてモデリングするにきまってるだろ。

というわけで228は読みかじった本の練習問題を3回通り解いてから
出直すように (藁
0235デフォルトの名無しさんNGNG
>>231
漏れは普通に字句解析オブジェクトや、構文解析オブジェクト(=ツリー中のノードを兼ねる)作って使ってるけどなぁ。
0236デフォルトの名無しさんNGNG
何をオブジェクトにすればいいのか分からないときは
処理を中心としてクラスを定義するよりは、データを
中心として考えた方が良さそうだよね。コンパイラの
中身なんてどうなってるのか知らないけどさ。

ちなみにこれのクラス設計はどうなの?>詳しい人
http://os.inf.tu-dresden.de/fiasco/doxy/hierarchy.html
0237 NGNG
>>234
すげえな。クラスかなんかでラップすればなんでもオブジェクトかw
0238デフォルトの名無しさんNGNG
>>237
誰がクラス型の言語で書くといったんだ? 別にプロトタイプベースの言語で書いても
良いぞ。

(っつか 237 が考えるオブジェクトの「定義」って何よ?)
0239デフォルトの名無しさんNGNG
>>237
バカ丸出しだね、君。
ラップすればオブジェクトなんじゃなくて、
「その問題領域でオブジェクトとしてモデリングするほうが
簡潔かつ的確に表現できるのであれば、オブジェクトとする」
というアタリマエな話をしているだけだよ。
サラシアゲ
0240 NGNG
>>238
「かなんか」つっとるだろ!
0241 NGNG
>>239
便利なのとオブジェクト指向かどうかとは別の話。
0242デフォルトの名無しさんNGNG
>>240
237 の定義によると

 「オブジェクト」=「かなんか」

ということ? (さっぱり分からん)
0243デフォルトの名無しさんNGNG
あー、また始まったよw
0244デフォルトの名無しさんNGNG
多分インタープリタオブジェクト指向派とそうでない派の間に、
オブジェクト指向という概念の範囲にくい違いがあると思われ。
0245デフォルトの名無しさんNGNG
>>241
で、241の「オブジェクト」および「オブジェクト指向」の定義は?
不便であるという事? (プププ
0246デフォルトの名無しさんNGNG
OSのスケジューラ、TCB、リスト処理は確実にOOではない。
OOっぽくできるのはシステムコールぐらいだな。
でも制約が厳しい奴はOOでは書かない。
0247デフォルトの名無しさんNGNG
信者の言う事は常人には理解できません。
0248デフォルトの名無しさんNGNG
お前等全員るびぃでもヴぃびーでもやってろ
0249デフォルトの名無しさんNGNG
>>244
っつーか、237=241が自分の「オブジェクト」の定義を示すまでは
厨房とそうでない者のくい違いとみなさざるを得まい。
0250デフォルトの名無しさんNGNG
GoFのINTERPRETERパターンってオブジェクト指向じゃないのかなぁ?
0251デフォルトの名無しさんNGNG
>>246
スケジューラは別に OO で設計しても良いと思うけど。

オブジェクトの定義が何かってのは人によって幅があるけど、

 問題領域を分析した結果として出てきた
 比較的独立性が強く
 内部状態を持ち
 固有の操作を備えたもの

ぐらいじゃないのかな(実際には、さらに設計段階で認識されたオブジェクトも加わる
けど)。OO と ADT の差異は、オブジェクト間の関係を、掘り下げて考察する点ね。

この定義でいけばインタプリタを実装する場合に、構文解析をひとつのオブジェクトと
して切り出すのは、自然な成り行きと思うが、どうよ?
0252デフォルトの名無しさんNGNG
>>216
中間コードそのものは?



 
0253デフォルトの名無しさんNGNG
>>251
OSのスケジューラは各処理ごとに優先度を決めて正確な時間で
確実に処理しなければいけない。
ここでスタックガンガン使うような処理は好ましくない。

OOの利点である再利用もする必要が無いのでわざわざ
不確定要素を含みパフォーマンスが落ちる手段で設計する必要が無い。
0254デフォルトの名無しさんNGNG
>>253
ヘ?OOだとスタックを浪費すると言いたい?
関数呼び出しとメッセージ送信とでスタックの使用頻度がどう変わるのか
説明キボーン。
0255デフォルトの名無しさんNGNG
>>253
> ここでスタックガンガン使うような処理は好ましくない。
> ...
> 不確定要素を含みパフォーマンスが落ちる手段で設計する必要が無い。
OO と

 スタックをがんがん使う
 不確定要素を含む
 パフォーマンスが落ちる

は、関係ないですね。
0256254NGNG
>>255
ケコーンじゃなかった、ペアプロしよう!
0257デフォルトの名無しさんNGNG
大体判った。
OO信者は口だけでロクなもん作れない。
0258デフォルトの名無しさんNGNG
>>257
当たり前。“信者”と名の付く者はふつー、そう。
今頃気付くな阿呆。
■ このスレッドは過去ログ倉庫に格納されています