結局OOpが役に立たないのはなぜ?
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/04/14(水) 01:14:080685デフォルトの名無しさん
2010/08/29(日) 12:57:05少なくとも日本じゃ絶対数少ないし。
これまた関係ないけど、物理屋や数学屋が、「量子論の本質」とか「関数論の本質」
って言ったらオカルトなのかねw
0686デフォルトの名無しさん
2010/08/29(日) 13:07:420687デフォルトの名無しさん
2010/08/29(日) 13:24:12一生思ってろw
0688デフォルトの名無しさん
2010/08/29(日) 13:50:45継承や多態性なんて最初の一時間で理解すべき最低限の概念だ。
足し算と引き算ができるようになりました、程度の意味しかない。
0689デフォルトの名無しさん
2010/08/29(日) 13:53:26どーだかなぁー。
下手な継承、山ほどみるどー。
むしろ、OOPへの不満は、下手な継承から始まってるとすら思う。
0690デフォルトの名無しさん
2010/08/29(日) 14:01:08そこで、足し算と引き算の上手な使い方を学習できるテンプレが「デザインパターン」だろ。
デザパタが提唱するパターンがどういう原理に基づいているかを考えれば、
継承や多態性なんて、単なる設計の道具、螺子や釘に過ぎないことが分かるはずだ。
それを理解できて、ようやく入門卒業ってとこじゃないか。
0691デフォルトの名無しさん
2010/08/29(日) 14:11:13おーけーおーけー。
言ってる意味は分かった。同意したい。
継承やポリモをいかにして使うかなんて、
上手に教えてくれる教材がないもんな。
いや、ないかどうかは言い切れないが、
デザパタは十分役に立つと思う。
さらに、少なくともデザパタを経由するくらいの状態にないと、
OOPのメリットなんざ少ないと思うんだろうなとも思う。
よくわかってねー状態で、「ポリモなんざ複雑なだけ」
「カプセル化って面倒だなぁ」とか思ってる状態では。
0692デフォルトの名無しさん
2010/08/29(日) 14:36:14Smalltalkをそんなふうに馬鹿にするものでもないよ。ある程度突っ込んで使ってみれば、OOPを含めて
いろんな概念がゲシュタルト崩壊おこすことうけあい。案外、理解できてなかったんだなーってけっこう笑える。
デザパタやGUIみたいに古いものだけでなく、TraitsやClassboxみたいに新しいものも生み出して、現在進行形で
多くの言語や環境に影響を与え続ける存在って他にはない希有なものだと思うし。SqueakとかVisualWorksとかで
実装がどうなっているのかちょっと調べて納得できる程度の軽いスキルは身につけておいて損はないと思う。
0693デフォルトの名無しさん
2010/08/29(日) 14:36:28良い人から辞めちゃうよね
んでもって、腹黒い人とか、他人を動とも思わない人とか、
図々しい人とか、・・・そんなのばかりがテコでも動かないぜって
感じで居座り続ける・・・
会社って、こうやってダメになっていくんだと思う
それはそのまんま居座り族・牛耳り族が社会をダメにしていくって
ことなんだ。。。
0694デフォルトの名無しさん
2010/08/29(日) 14:41:160695デフォルトの名無しさん
2010/08/29(日) 15:00:38開放閉鎖原則、みたいなキーワードには当然辿り着いているはずだ。
>>671は、つまり、そういうことだ。
さらに言えば、それらの原則を精査すれば、その目的が「開発の効率化(笑」などではなく、
コードの柔軟性や保守性に焦点を置いていることにも気づくはずなんだけどな。
(オブジェクト指向とアジャイル開発がしばしばセットで語られる理由もそこにある)
0696デフォルトの名無しさん
2010/08/29(日) 15:36:24わかります
0697デフォルトの名無しさん
2010/08/29(日) 16:07:58コードの柔軟性や保守性は開発の効率化につながるんじゃないの?
0698デフォルトの名無しさん
2010/08/29(日) 16:09:56どういう(;^ω^)?
0699デフォルトの名無しさん
2010/08/29(日) 16:36:37ポリモーフィズムなんていらないって思えるよね
0700デフォルトの名無しさん
2010/08/29(日) 16:54:22型を強く意識するようなOOPだとそれはないわw
もちろん多態やギェネリクスは便利だけどね。
0701デフォルトの名無しさん
2010/08/29(日) 17:24:240702デフォルトの名無しさん
2010/08/29(日) 17:41:190703デフォルトの名無しさん
2010/08/29(日) 17:44:49結果としてね。けど、それは「ソフトウェアは常に変化が要求される」という前提があってこそ。
一次開発しか考えてないなら恩恵は少ない。むしろ効率が下がる場合だってあるだろう。
0704デフォルトの名無しさん
2010/08/29(日) 17:48:560705デフォルトの名無しさん
2010/08/29(日) 17:50:22これはひどいなw
0706デフォルトの名無しさん
2010/08/29(日) 18:12:40どこがひどいのか具体的に批判して。
0707デフォルトの名無しさん
2010/08/29(日) 18:20:170708デフォルトの名無しさん
2010/08/29(日) 18:26:55C++やJavaが開発効率を更に上げたのだろうか。
0709デフォルトの名無しさん
2010/08/29(日) 18:27:54A.君の誤読。そんなことは一言も言ってない。
0710デフォルトの名無しさん
2010/08/29(日) 18:31:58>その目的が「開発の効率化(笑」などではなく、
>コードの柔軟性や保守性に焦点を置いていることにも気づくはずなんだけどな。
0711デフォルトの名無しさん
2010/08/29(日) 18:33:24こうですね
0712デフォルトの名無しさん
2010/08/29(日) 18:43:43少なくとも他人のコードをコントロールすべがないと話にならないね。
お前らアホだからだめなんだよじゃプロジェクトは終わらない。
0713デフォルトの名無しさん
2010/08/29(日) 19:14:39>>703
0714デフォルトの名無しさん
2010/08/29(日) 19:18:32いやその見識が浅いって言ってるんだが
0715デフォルトの名無しさん
2010/08/29(日) 19:18:36とりあえず、勉強する気が全くない奴をプログラマ扱いしてる現状は何とかすべき。
バズワードに飛びついてる奴の方が、「○○はバズワード(笑」とか言って冷笑してる奴より100倍マシ。
0716デフォルトの名無しさん
2010/08/29(日) 19:19:42メリット以前に。
0717デフォルトの名無しさん
2010/08/29(日) 19:21:40ソフトのメンテナンスを考慮しないという前提なら、設計とか抽象化とか考えずに
スパゲッティーを垂れ流した方が「開発効率」は高い場合もあるだろ。その程度の話だよ。
0718デフォルトの名無しさん
2010/08/29(日) 19:21:50お前に何とかできないのだけはわかった
0719デフォルトの名無しさん
2010/08/29(日) 19:23:240720デフォルトの名無しさん
2010/08/29(日) 19:26:38Railsかぶせて
元のRubyと似ても似つかない言語にしておいて
Rubyが普及したって喜んでるんだぜ?
他に無いだろこんなOO言語
0721デフォルトの名無しさん
2010/08/29(日) 19:30:14スイスイ、ストレス無くいけるんだけど、
あとから読むとソースが読みにくい。
一方、Javaはやや冗長だけど、
後から読むとき、テラ読みやすい。
何年たってもすぐ思い出す。
やっぱ結局、型が旨いんだろうな。
0722デフォルトの名無しさん
2010/08/29(日) 19:32:50不満があるなら具体的に反論してくれ。
0723デフォルトの名無しさん
2010/08/29(日) 19:35:41>>710
俺はそこ、対立項目でなく「並立するけど焦点ではない」と読んだのだが。
>>698
その上2行ってことじゃね。
0724デフォルトの名無しさん
2010/08/29(日) 19:40:20>「開発効率」は高い場合もある
は無視できる理由にならないだろ。実際アジャイルなんて口にしている以上
リファクタリングが開発に影響しないというスタンスは矛盾に近い。
>>723
対立ではなく排他に近いかな。軽視。
0725デフォルトの名無しさん
2010/08/29(日) 19:40:511.底辺プログラマを全員クビにする。自称プログラマの採用を禁止する
2.単価が上がる
3.優秀な奴がプログラマへの道を志すようになる
4.プロジェクトメンバーの質が上がる
5.ヘブン状態
0726デフォルトの名無しさん
2010/08/29(日) 19:41:542.残った連中でデスマ
3.ヘブン状態
0727デフォルトの名無しさん
2010/08/29(日) 19:43:06あなたに企画書には実現性が感じられない
0728デフォルトの名無しさん
2010/08/29(日) 19:43:32開発効率が高い方が良い、なんてのは大前提じゃないの。
それを軽視するエンジニアが存在するとは思えん。
俺が言いたいのは、「OOの目的は開発効率の向上です」なる言明は、
目的と手段とその結果を履き違えてるってこと。別に開発効率を軽視したりはしていない。
0729デフォルトの名無しさん
2010/08/29(日) 19:44:25は?大前提は目的外なの?意味不明。
0730デフォルトの名無しさん
2010/08/29(日) 19:48:00「OOの目的は開発効率の向上です」と、断言できないことこそが問題。
OOPか、お前の力量か、どっちかが問題。
0731デフォルトの名無しさん
2010/08/29(日) 19:49:48俺のは「OOを採用したらむしろ開発効率が下がった、期待はずれだ!」的なありがちな意見への反論だからな。
確かに目の前の一次開発しか見てないなら「開発効率」は下がるだろうけど、OOのような手法の主眼はそこじゃねぇだろう、と。
0732デフォルトの名無しさん
2010/08/29(日) 19:50:03誰に何言ってるのかやっぱり意味不明。
0733デフォルトの名無しさん
2010/08/29(日) 19:51:22最初からなぜそういえないのかね。
では保守性とやらは現場で本当に上がっているか?
それはOOpのどんな技術によるものと考えているか?
0734デフォルトの名無しさん
2010/08/29(日) 19:53:54あとは適当な実装を手本としてコピペ実装してもらわんと効率悪いぞ。
0735デフォルトの名無しさん
2010/08/29(日) 19:56:21しかし>>731で言われているように開発効率が下がっていることが多々ある現実
0736デフォルトの名無しさん
2010/08/29(日) 19:59:41下手にやれば下がる。保守性も下がる。
普通にやっても下がる。
上手くやれば下がらない。
0737デフォルトの名無しさん
2010/08/29(日) 19:59:44それは多分世にあふれている型ベースのOOをあまり理解してないからかねえ。
深く継承しすぎて変更時のコストが大変なことになってるとか。
0738デフォルトの名無しさん
2010/08/29(日) 20:00:400739デフォルトの名無しさん
2010/08/29(日) 20:01:26最初から言って・・・まぁ伝わったからいいや。
まぁ、教科書的な言い方をすれば、
「責務ベースで設計して各モジュールを最小化することにより、役割が明確になり保守性が高まる」
か。あと、OOpはそれを実現するための道具に過ぎない。
0740デフォルトの名無しさん
2010/08/29(日) 20:01:500741デフォルトの名無しさん
2010/08/29(日) 20:03:04OOpでモジュール化を促進している技術要素はなんですか?
0742デフォルトの名無しさん
2010/08/29(日) 20:03:34「継承(IS A)より委譲(HAS A)」は、
まともにデザパタを勉強してれば当然身についてるはずなんだけどねぇ。
0743デフォルトの名無しさん
2010/08/29(日) 20:04:33お前の読みが甘いってことだろ
0744デフォルトの名無しさん
2010/08/29(日) 20:05:03得意満面ピックアップしたC++およびハゲが全部悪い。
0745デフォルトの名無しさん
2010/08/29(日) 20:11:11どれも重要だが、特に重要なものを一つ上げるなら、静的型言語ならインタフェース。
動的型は詳しくないが、やはりmix-inになるのか。
0746デフォルトの名無しさん
2010/08/29(日) 20:14:01っ『人月の神話』
0747デフォルトの名無しさん
2010/08/29(日) 20:14:49>どれも重要だが
これがOOpの問題のひとつ。
あらゆる技術を俺の理解にあわせてくれってチームで言っても実現しない。
0748デフォルトの名無しさん
2010/08/29(日) 20:15:29だな。
0749デフォルトの名無しさん
2010/08/29(日) 20:18:14意味がよく分からなかったのでもっと具体的に。
0750デフォルトの名無しさん
2010/08/29(日) 20:18:47お前が望むオブジェクト指向とやらはチーム全員で共有されていますか?
0751デフォルトの名無しさん
2010/08/29(日) 20:21:37共有されてるも何も、まともな関連書は腐るほど出版されてるんだから、
各人がきちんと勉強すればいいだけじゃないの?
0752デフォルトの名無しさん
2010/08/29(日) 20:22:01例えばC++でプロジェクト進めてても設計は多種多様。
基本設計がフォーマット化されてなく
一子相伝のようにできるやつベースのシステムのときにはじめてある程度機能する。
これも従順なスタッフのときのみで俺OOpばかりだとすごいことになる。
これは確立された技術なんだろうか。
0753デフォルトの名無しさん
2010/08/29(日) 20:23:16その回答でどのくらい納得されるんだろうね。
このスレで散々OOpを定義しろってレスが出てきてるのに
勉強しろで君と理解共有できる人間がどのくらいいると思うの?
0754デフォルトの名無しさん
2010/08/29(日) 20:25:19これはどういう違いなんだろう。
0755デフォルトの名無しさん
2010/08/29(日) 21:02:47いいからGoF本読んどけって。
0756デフォルトの名無しさん
2010/08/29(日) 21:06:51構造化プログラミングの定義で議論が起こらない理由:
1.エドガー・ダイクストラ提唱のものしかない
2.定義は一度聞いただけで暗記できるほどシンプル
3.構造化プログラミング言語は初心者にも定義通りのコードを強制する
オブジェクト指向プログラミングの原則で議論が起こる理由:
1.複数の流派が存在する
2.さまざまな原則が積み上げられてきた
3.オブジェクト指向言語には初心者に原則通りのコードを強制する力がない
0757デフォルトの名無しさん
2010/08/29(日) 21:07:52そういう返しは意味ないから。
みんなにGoF読んどけっていっとけばプロジェクトうまくいくんなら
世の中のソフト開発どこも問題起きない。
0758デフォルトの名無しさん
2010/08/29(日) 21:11:28とくに
>3.オブジェクト指向言語には初心者に原則通りのコードを強制する力がない
がなぜできないのか研究されてないのかな
JavaもすべてにstaticつければCのようにかけるもんな。
0759デフォルトの名無しさん
2010/08/29(日) 21:14:27IDEとか静的解析ツールを併用すればいいんじゃない。
0760デフォルトの名無しさん
2010/08/29(日) 21:18:41具体的にどのツールでなにすれば何が強制出来てどんな効果があるんだよ。
0761デフォルトの名無しさん
2010/08/29(日) 21:24:22各種リファクタリングツールとかcheckstyleとか、色々あるだろ。
まぁ、限界があるのはそうかもな。
構造化はコーディングスタイルの強制でまともになる部分が大きいけど、
OOは基本的に設計手法なわけで、OO「P」の部分で強制するのは難しい。
だから、よくあるパターンとしては、上級者がフレームワークを作って、
初心者にはフレームワークを使ってコードを書かせるとかあるよね。
0762デフォルトの名無しさん
2010/08/29(日) 21:29:53結局難しいじゃんw。
フレームワークは俺もそう思うけど結局フレームワークは各人によってまちまち。
これはOOpって技法の優位性とは違うと思う。
0763デフォルトの名無しさん
2010/08/29(日) 21:40:01「俗流」でないオブジェクト指向を理解する一番の早道はやっぱりGoF本を読んで
研究することだと思うが。「丸暗記」じゃなくてね。
0764デフォルトの名無しさん
2010/08/29(日) 21:42:25いやそんな開発現場構築できてるんならその方法本にすればベストセラーになりますよ。ってこと。
オタク知識開陳なら意味ないよ。
0765デフォルトの名無しさん
2010/08/29(日) 21:43:030766デフォルトの名無しさん
2010/08/29(日) 21:44:330767デフォルトの名無しさん
2010/08/29(日) 21:46:21作ったフレームワークの設計を強制できるのはOOP言語の利点とは言えるんじゃない。
というか、決まった手順を踏めば誰でも良いオブジェクト指向フレームワークが書ける、
というものを期待しているのだとしたら、それはお門違いじゃないか?
教科書的な部分で提供できるのは、共通の語彙とベスト・プラクティスの提供まで。
(デザパタも、効用の一つは「パターンについての共通語彙の提供だ」というのはよく言われる)
それ以上は、それこそ「勉強しろ」「経験を積め」としか言いようがない。
0768デフォルトの名無しさん
2010/08/29(日) 21:47:55結局どこかにある天国を見つけられないのはお前のせいってことだね。
詐欺商法と何が違うんだろうね。
0769デフォルトの名無しさん
2010/08/29(日) 21:48:310770デフォルトの名無しさん
2010/08/29(日) 21:49:39今のOOp言語は強制力ないね。
いくらでも逸脱可能。
0771デフォルトの名無しさん
2010/08/29(日) 21:50:180772デフォルトの名無しさん
2010/08/29(日) 21:50:250773デフォルトの名無しさん
2010/08/29(日) 21:51:36お前はプログラム組まずにアプリ使っとけよ。
0774デフォルトの名無しさん
2010/08/29(日) 21:52:11そして開発室から誰もいなくなった。
0775デフォルトの名無しさん
2010/08/29(日) 21:53:29エンジニアなのに天国とか探しちゃう男の人って・・・。
0776デフォルトの名無しさん
2010/08/29(日) 21:55:40自分に言い訳してるみたいだなw、○○がないから使えないとか。
0777デフォルトの名無しさん
2010/08/29(日) 22:00:480778デフォルトの名無しさん
2010/08/29(日) 22:01:48そうじゃない。現場で実効性があるのかってこと。
妄信している奴のほうが信用できない・
0779デフォルトの名無しさん
2010/08/29(日) 22:06:50少なくとも、オープンソース・ソフトウェアとかを見る限り、大半のプロジェクトで
OOやデザパタの語彙が採用されているのは確か。
いわゆる「システム開発」の現場で導入が進まなかったり失敗したりしてるのは、
オブジェクト指向という理念自身の問題ではないと思うよ。
0780デフォルトの名無しさん
2010/08/29(日) 22:17:25オープンソースはそれそのものに競争原理が効いているから
リーダーの能力の高いものは成功しやすいよね。
採用例が多いというのはメリットがあるからだというのはそりゃそうなんだろう。
>いわゆる「システム開発」の現場で導入が進まなかったり失敗したりしてるのは、
>オブジェクト指向という理念自身の問題ではないと思うよ。
ということも可能だが
オブジェクト指向を導入することにより「システム開発」の現場が改善できるわけではない。
ともいえるよね。
OOpの適用範囲を過大評価してることが多いからすごい気になる。
デメリットになってることも良くあるし。
0781デフォルトの名無しさん
2010/08/29(日) 22:25:50それは「××」という新しい方法論(××にはOOでもアジャイルでもTDDでも好きなものを)を
うまく取り入れられない組織運営とかプロジェクトマネジメントの問題だよね、はっきり言って。
オブジェクト指向のメリット・デメリットとはあまり関係がないな。というより、全く別の話。
0782デフォルトの名無しさん
2010/08/29(日) 22:28:25オブジェクト指向のコンセプトが理解しづらい面があるからじゃないか?
C言語導入しました、Java導入しましたレベルじゃないと難しい。
しかも誰がウィザードかっていうのが非常に判断しにくい。
0783デフォルトの名無しさん
2010/08/29(日) 22:40:27いや童貞言語の場合はmixinよりダックタイピングのが重要かと
と言うか、インターフェースに相当する部分をダックタイピングでやってる
でも動的言語でもインターフェースは有効だと思うんだがな
巷の動的言語ったインターフェース無いんだよなあ
0784デフォルトの名無しさん
2010/08/29(日) 22:48:56否定はしない。けど、ある程度の勉強はやっぱり必要なんじゃないかね。
■ このスレッドは過去ログ倉庫に格納されています