• ベストアンサー

PHPで開発効率をあげる方法。

初めまして、ラブ・ザ・ゲームといいます。 初めて質問するのですが、独学でPHPを勉強しています。 自作のプログラムを作ったり、オブジェクト指向がなんとなくわかってきた・・・と思います。 そこで、みなさんが実践している開発効率を上げる方法を教えてください。 私は、どのプログラムでも使う基本のデータと、個々のプログラムで使用するデータを分けたいのですが、こういう方法が正しいのかが、わかりません。 多くのプログラム使う、 『No,oya,res(ツリー構造のため),名前、タイトル、コメント、日付、IP』 で、データをまとめる、サブルーチンなりクラスにします。 それを追加・変更サブルーチンや、クラスの継承で、 『No,oya,res(ツリー構造のため),名前、タイトル、コメント、日付、IP』 に、『アドレス、画像』 を付け加えたいのです。 こうすれば、バグや修正するときに、楽だと思うのですが。 この方法は、どうでしょうか? サブルーチンなのでしょうか? オブジェクト指向は、データ中心だと読んだので、こういう方法は少し地が浮きもするのですが。 クラス・オブジェクト指向でも可能なのでしょうか? また、ほかに、開発効率を挙げる方法がありましたら、お教えください。

noname#33452
noname#33452
  • PHP
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.2

効率的な開発と言うのは多方面から検討する必要があります。 そして、古今東西の開発者がずっと頭を痛めていることでも あります。 早く作れる→開発ステップ数を少なくする→ライブラリを準備する という手法が最も一般的でしょう。この場合、ライブラリが 如何に汎用的であるかが問題です。しかし、汎用的であれば あるほど、ライブラリとしての充実度は小さくなるのも事実 です。では、ある条件を想定してライブラリを作るか。この 場合は、当たれば大きいが、その条件が変わってしまえばゴ ミとなり、何のための効率化か分かりません。非効率化と言 えます。 今度は別の面を見てみましょう。それはエラーの減少です。 早く出来てもエラーが多いのでは話になりません、実は汎用 化はエラー招きやすいのです。つまり、想定する条件が多す ぎて考慮抜けによるバグが潜在しやすいのです。その結果、 工数を掛けて直すと、そのライブラリを使っている他のプロ グラムに影響を与えて、泥沼化することが多いですね。 よく使われるライブラリ程、効率化を妨げる例は枚挙に暇が ありません。 結局、長いソフトウェアの歴史の中で唯一革命と言っても差 し支えない技術がオブジェクト指向です。ハードウェアの革 命は沢山ありますが、ソフトウェアは革命と言われるものが ないですね。このオブジェクト指向の基本的な概念を忠実に 守って開発することが効率的と言えるように思えます。 そして、世の中の姿をクラス化出来れば、それは汎用的なラ イブラリと言えましょう。まあ、世の中がかなり早く変化す るのでライブラリとしての寿命も怪しいですが。 まだまだ、テストが簡単になることとか、色々な観点があり ますが、もう草臥れたのでお終いです。

noname#33452
質問者

お礼

>実は汎用化はエラー招きやすいのです。 は、分かる気がします。 定番の処理なら分かるのですが、少し特殊だけどたまに使うものだと、「こんなの予想してなかった。」というのが、一度ありました。 しかも、新しいパターンで修正すると、前のパターンにあわなくなってしまうので、結局、統一する事は出来ませんでした。 やはり、デザインパターンや基本が大事という事ですか。 ありがとうございます。

その他の回答 (1)

noname#39970
noname#39970
回答No.1

機能群や関係のようなものを表した設計図のようなものを作り整理したらどうだろう。 どれでも使うようなものは core library として纏める ライブラリとは要するにサブルーチンの塊 どれでも使うようなデータは master DB として纏める マスターって言うくらいだからそのデータが基準

noname#33452
質問者

お礼

データ自体も分けてしまうという事ですか。 データーベースを考えると、テーブルでまとめる事を考えてしまうと。 ライブラリーは実践しています。 すぐに忘れてしまう質なので、書き込みや定番の処理は、すでに分けてあります。 ありがとうございます。

関連するQ&A

  • PHPでオブジェクト指向開発してますか?

    実務でPHPでオブジェクト指向開発しているプログラマ(もしくは案件・企業)の割合ってどのくらいのものでしょうか? 当然、外部からPEAR等のクラスをひっぱってきたり、フレームワークを使用することはあると思いますが、設計レベルでオブジェクト指向開発をすることは、どのくらいの割合でありますでしょうか? つまり、interfaceやimplements、abstractといった単語を、仕事で使ったことがあるPHPプログラマはどのくらいいるのでしょうか? それとも、そもそもインターフェースや抽象クラス等は、ライブラリの開発者のためのものであって、一般のプログラマはむしろ使わないほうがいいのでしょうか? 周りに、PHPプログラマを本職でやってる人がいないので、ご意見を伺いたいです。

    • ベストアンサー
    • PHP
  • オブジェクト指向に関して。

    Javaの解説本を読んでオブジェクト指向プログラミングという物があることをしりました。その本には「オブジェクトはデータとそのデータを扱うための機能を持っている。この機能はメソッドと呼ぶ。クラスは設計図のような物で変数とメソッドから構成されている。設計図を実際に形にした物がインスタンスである。」と書いてありました。私はオブジェクト=クラスのような感じがしたのですが、実際のところオブジェクト=クラスでいいのでしょうか?  また、友人に話したところ、オブジェクト指向はサブルーチンに似ているといっていました。私はプログラミングの知識が全くないのでサブルーチンという物が何なのかわからないのですが、サブルーチンとオブジェクト指向の考え方は違うような気がするのです。友人に説明して納得させるにはどうしたら良いのでしょうか? ぜひ、力を課してください。

  • POA,DOA,OOA(開発アプローチ)

    情報の勉強超初心者です。 教科書に システム開発においてシステム化の対象となる業務を分析する 必要があり、代表的アプローチ方法が3つあり (プロセス指向アプローチ、データ思考アプローチ、オブジェクト指向アプローチ) 最後のオブジェクト指向の概念をあらわす代表的な用語が カプセル化、インヘリタンス、ポリモルフィズムとあります。 それぞれの説明を読むと書いてあることはわかるのですが システム開発に 携わったことがないので いまいち感覚がつかめません。 下記質問です。 1.カプセル化、インヘリタンス、ポリモルフィズムなどの用語は 開発者の間で日常的に使われることば、もしくは 日常的に 使っているのでしょうか。それぞれの定義が カプセル化(データと手続きをオブジェクトとして一体化) インヘリタンス(上位クラスで定義したデータや手続きを下位クラスでそのまま利用できること) ポロモルフィズム(同じメッセージを送っても受け取るオブジェクトによって振る舞いが異なることをいう)などなど 実体験もなく 理解力もないのでいろいろ ネットで調べても くつの上からかくような感じで頭にはいってきません。 2。もしできれば少しかみくだいてもしくはたとえなど使って どなたかわかりやすく もう少しイメージがわくように ご説明いただけますと幸いです。 よろしくお願いします。

  • phpのオブジェクト指向でつまづきました・・・

    phpのプログラムをオブジェクト指向で書こうと思ったのですが、クラス間のデータのやり取りのあたりでつまづきました。 クラスはそれぞれ 1.設定用 2.データの読み書き用 3.入出力用 4.データ処理用 5.メイン です。 オブジェクト指向で書く前よりはコードも見やすくなったのですが、例えば4のデータ処理のところからは1、2、3の全てのプロパティを参照していたりして、なんだか複雑に。 オブジェクト指向で検索するとwikipediaには プログラムを構成するコードとデータのうちコードについては手続きや関数といった仕組みを基礎に整理され、その構成単位をブラックボックス とすることで再利用性を向上し、部品化を推進する仕組みが提唱され構造化プログラミング (structured programming) として1967年にエドガー・ダイクストラ (Edsger Wybe Dijkstra) らによってまとめあげられた と書いてありました。これだと関数を種類ごとにまとめただけであまり部品化はされておらず、前と変わらないような気がしてしまって・・・ 例えば設定用のクラスはのプロパティほとんどすべての所で値が必要になるのですが、毎回newを使うのは気が引けるので、クラスの外で new でインスタンス化して必要なところから毎回 global で呼び出したりしているんですが・・・使い方が間違っている気がするのですが、そういったことを解説しているサイトが見当たらなかったため、全く分からない状態です。そもそもこの場合、設定用の値はクラスにまとめるべきなのかどうか・・・。 書く時は$クラスー>メンバ変数 とか $クラスー>メンバ関数 のように書くので今何をしているのかが分かりやすく、それは便利だと思うのですが。 すみません。自分でも上手く説明できずによくわからない文章になってしまいましたが、結局の所オブジェクトがどんな物でどんな書き方をすれば良いかが分かっていないのだと思います。そういった所を分かりやすく教えてください。お願いします。

    • ベストアンサー
    • PHP
  • ASP.NETで開発するのですが、オブジェクト指向の考え方が・・・

    今度、仕事でASP.NET(VB.NET)で開発することになりました。 勉強の意味も含めて、前に知り合いがASP.NETで開発した ソースをファイルを見せてもらったのですが、 やはりクラス(オブジェクト)のところで挫折してしまいました。 ASP.NETではサーバオブジェクトやら色々と新しいことを 覚えなければいけないですが、 まずはオブジェクト指向について勉強したいと思っています。 皆さんが知っている本・サイトでオブジェクト指向について 詳しく書かれているのがありましたら、ご紹介ください。

  • オブジェクト指向の開発の成功事例

     プレゼンテーションの授業でオブジェクト指向言語について調べています。  オブジェクト指向言語の再利用により生産性が向上するのは分かったのですが、それによる具体的な成功事例の資料はありますでしょうか? また、ほかのプログラミング言語と比べてどの程度開発効率が向上するのかの資料があればお教えください。 よろしくお願いします。

  • 「手続き」と「オブジェクト」一人開発で有利なのは?

    人工知能を用いたソフト・3DCGソフト・音声編集ソフト等のソフトウェアを一人で開発する際に「手続き型・構造化」と「オブジェクト指向」どちらの手法を使えば有利でしょうか? 短期間でラクにできるとしたら、どちらの手法が有利でしょうか? 私自身の考えとして、オブジェクト指向を用いると、ifやswitch等の条件分岐を削減出来て、コードの記述も省力化できると思うので「オブジェクト指向」のほうが有利だと思いますが・・・ 回答のほうお願いします。

  • ツリーコントロールとツリー構造のデータとのリンク

    ツリーコントロールとツリー構造のデータとのリンク 私が開発しているソフトウェアは、データ構造として ツリー構造を使っています。このツリー構造のデータ を表示するためにツリーコントロールを使って いますが、データとツリーコントロールのリンクする 方法として良い方法を探しています。 ここでいう「リンク」とは、例えば ツリー構造のデータにデータの追加や削除が おこなわれた場合、該当するツリーコントロールの データも追加と削除をおこなう。ことです。 現時点では、ツリー構造のデータにデータの追加や 削除がおこなわれたら、ツリーコントロールに SendMessageを送ってツリーコントロール側の データの追加や削除をおこなっています。この場合、 ツリー構造のデータのクラスに、GUIのクラスの ポインタを保持しています(ツリーコントロール へのSendMessageのためにCWnd*を保持している)。 データにGUIに関わるコードが存在するので、 GUIに依存しない方法に変えたいのですが、みなさんは このような場合はどうしていますか? ちなみに現時点では、Design PatternのObserver Patternを採用してみようと思っています。 他に良い方法があれば教えてください。 よろしくお願いします。 開発環境:VC++6.0, MFC

  • Java:クラスをたくさん使ったプログラミング?

    Java言語勉強中のものです。 Eclipseをつかっています。 初心者ですので、易しい言葉でご回答いただければ幸いです。 Javaの基礎についてひととおり勉強しました。 オブジェクト指向についても、だいたい・・なんとなくは理解できていると思います。 ただ、自分で作成するときに、 うまくオブジェクト指向を取り入れたプログラミングができません。 なんだかあっちこっちのものを呼び出してきてとてもややこしいです。 クラスがたくさんつかわれているプログラムは、 ほかの人がつくったプログラムをなんとかがんばって読む、というのが精一杯です。 自分ではとても思いつかない構造ばかりです。 あっちこっちからよんできているので、図やらリストやらを書いて 本当に「なんとか」理解できた、というレベルです。 クラスが5個以上になると正直もう嫌だってなります。。実用レベルにはまだまだ至っていません。 本当の意味でオブジェクト指向を理解できていないのかもしれません。 どうすればそういった、オブジェクト指向をとりいれたプログラムが書けるようになるのでしょうか? いろんなプログラムを見る、数をこなすことでしょうか? 何かおすすめの参考書や、 「こういう考え方をすれば・・・」というものがありましたら教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • オブジェクト指向Perlの勉強の仕方について

    今までPerlで掲示板などを自作した事があるのですが、オブジェクト指向をまったく取り入れていません。 オブジェクト指向でないPerlプログラミングについてはおおよそ理解しているつもりなのですが、 オブジェクト指向Perlについては全く理解できていません。 書籍を探しても、Perlについての書籍は大抵が初心者向けのものか、私にとっては難解なもの(オライリーなど)ばかりで、ちょうどいい程度の書籍が見当たらないのですが、 何かオススメの書籍がありましたらご紹介ください。 ---参考:私が理解している範囲--- 1.Perlプログラミングの基礎 変数、配列、ハッシュなどのデータ型 ループやサブルーチン、ライブラリなどの構造 2.オブジェクト指向について MacromediaFlashのActionScriptがある程度 理解できていますので、 「オブジェクト指向とは何か」 は多少理解しているつもりでいます。 (錯覚かもしれませんが) 3.目的 PerlMagickなどのパッケージを利用したいのだが、 利用方法がわからないため ------------------ 以上、身勝手な質問で恐縮ですが、 よろしくお願いします。

    • ベストアンサー
    • Perl

専門家に質問してみよう