【オブジェクト指向プログラミングの論拠】

現在、PHPでオブジェクト指向プログラミングを取り入れようとしていますが、パターンの活用、再利用性といったメリットをあげてもクラスの記述されたファイルの読み込み(includeなどの処理)回数が多くなることや、インスタンス生成による負荷の増大で多くの処理に耐えられないのではという反論があがっています。
メソッド処理は通常の関数と比べて呼び出しが遅いとは聞いていますが、実用に耐えられないものが普及するとは考えられず、これについての反証を探しています。反証内容は、実用に耐えるということです。
webサイトでかまわないので、そういった問題について論理的に解説されているところを教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/10/31 23:50:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:KUROX No.1

回答回数3542ベストアンサー獲得回数140

ポイント23pt

論理的に反証するのは不可能です。

議論している土台自体が違うので、無駄だと思います。

実績をベースに説得するしかないと思います。

--------

PHPのフレームワーク『Ethna』徹底解説

http://labs.gree.jp/Top/Document/20060707.html

Greeが使っていると思われるフレームワーク。

中あまり詳しくみてませんが、オブジェクト指向で設計・実装されているはずです。

コアなフレームワークで、そういう実装をしてるということは、大丈夫だと

考えるのが妥当です。

で、実際gree.jpは、現在も運営されてます。

そんなに小さい規模だとも思われませんし

アクセス数も小さいとは思われません。

---------

>負荷の増大で多くの処理に耐えられないのではという反論があがっています

実際、負荷テストとかしたデータを持っていないので不明ですが、

確かに、そういう一面はあるでしょう。

オブジェクト指向プログラミングを採用する陣営は

「メソッド処理は通常の関数と比べて呼び出しが遅い」から、通常の関数コールに

書き換えるという解決手段を採用しません。この時点で、議論が不可能なのです。

この問題を解決する手法は、ほか幾らでもあります。

id:allaboutme

回答ありがとうございます

なるほど。事実は事実として、説得していくということですね

オブジェクト指向プログラミングやフレームワークを活用した巨大サービスは多いので、それを背景として話を進めてみたいと思います

2007/10/26 17:57:39
id:hamster078 No.2

回答回数587ベストアンサー獲得回数4

ポイント23pt

コンピューターの処理速度があがっているので、多少遅くても関係ないです。http://www

id:allaboutme

その通りだと思います。

2007/10/27 12:36:56
id:okinaka No.3

回答回数38ベストアンサー獲得回数1

ポイント22pt

負荷対策で「オブジェクト指向」が問題になるのが不思議です。

システム全体の設計とか仕様とか言うレベルの問題だと思います。


実際、PHPでインスタンスを生成しないことなんてないです。

include 回数が問題になるようなシステムなら、

そもそもPHPでいいのかどうかも検討する必要があります。


もし、プログラミングレベルでどうにかなるものであれば、

オブジェクト指向の良い悪いよりも、むしろ開発者がオブジェクト指向に対する

理解が有る無しが問題ではないでしょうか?

結局、効率の良いシステムを作るのに重要なのは『誰が作るか』で決まると思います。

重要なのは人であって手法じゃないです。

未経験者がオブジェクト指向を導入しても、すぐには効果は出ません。

オブジェクト指向を学んでより効率の良いシステムを作れる「人」を育てるという、

今後の発展のためという目的で説得してみるのはいかがでしょうか?


個人的には、PHPで作るシステムならオブジェクト指向にこだわる必要はないと思ってます。

小規模なシステムならそれほどこだわる必要ありません。

http://q.hatena.ne.jp/

id:allaboutme

結局のところ人ということですね。

たしかに、時期尚早という中ですすめているので、それが核心のような気がします。

ただ、具体的にどう育てて、どれくらいで減価償却ができるかという目安がないと今回の場合の反証にはならないように思えます

論法としては採用させていただきます

2007/10/28 20:59:54
id:gallu No.4

回答回数3ベストアンサー獲得回数0

ポイント22pt

がると申します。

おもったよりも活発な議論が発生しなかったので、後出し恐縮ではありますが少々書かせていただきたく。

実はすでに私の日記の方

http://d.hatena.ne.jp/gallu/20071025/p3

で書かせていただいているのですが。

組み込み系などの「よほど極端にタイトな現場」ならいざ知らず、そうでないところで「OOをやらない」メリットは、さほど多くないと考えております。

また「実用云々」に関しては。「実用に耐える」の定義次第なのでなんとも、なのですが。そこを真剣に議論するなら、まず「言語をPHPではなくJavaとかC++とかCとかにする」ところが論点になるのが妥当であるように思われます。

以上あまり参考にならない書き込みで恐縮ですが。

id:allaboutme

がるさん、回答ありがとうございます

日記も拝見させていただきました。反論が上がっているシステムはSmartyやPEARの利用も含めて提案しています。

実用の定義は、それなりのアクセスをさばけるということにしてください。アバウトですいません。

メリットデメリットを並べるとOOPのほうが優勢に見えますが、日記に書かれてるとおり「よく知らないから反対」なのかもしれません。そうなると、論理的な説明など無意味ということになりますが…

他の回答者の方もおっしゃられていますが、長期的な啓蒙ということでしょうか

2007/10/28 21:12:32

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • ………ふぅん 発端は、ここ。 http://q.hatena.ne.jp/1193237125 【オブジェクト指向プログラミングの論拠】 現在、PHPでオブジェクト指向プログラミングを取り入れようとしていますが、パターン
  • Yudoufuの日記 2007-10-27 15:34:25
    http://q.hatena.ne.jp/1193237125 現在、PHPでオブジェクト指向プログラミングを取り入れようとしていますが、パターンの活用、再利用性といったメリットをあげてもクラスの記述されたファイル
  • PHPでオブジェクト指向を使うと遅くなる、という反論を食らいましたの巻 http://q.hatena.ne.jp/1193237125 オブジェクト指向を使うくらいでパフォーマンスが落ちる、とか言うなら、そもそもPHP使
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません