PHPで大規模なプログラムを作るには?

このQ&Aのポイント
  • PHPでは、大規模なプログラムを作成するのは難しいです。
  • 変数の宣言が必要ないため、おかしな変数も事前にチェックできません。
  • デバッグが難しくなるため、大規模なプログラムの場合は他の言語に移行することを検討しましょう。
回答を見る
  • ベストアンサー

PHPでは、あんま大きなプログラムは作れないの?

PHPでは、あんま大きなプログラムは作れないの? だって、変数の宣言が必要ないから。 変数の宣言が必要ない、ってことは、 おかしな変数があっても、コンパイラーが 事前にチェックできないってことだし。 つまりそれって、デバッグが難しくなるってことでしょう? だから、 「デバッグがめんどくなってきたな、、、」 と感じたら、それは、そろそろJavaとかに 移行しろ、っていう、神からのメッセージでしょ? 変数を使うにあたって、あらかじめ、 宣言が必要な言語であれば、 宣言の無い変数が登場した段階でエラーではじくし、 デバッグも容易になるよね。 つまりそれって、プログラムが大規模になってきたら、 そういう厳密系な言語にシフトしたほうが ストレスがたまらなくっていいってことでしょう?

  • PHP
  • 回答数4
  • ありがとう数2

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

思いっきり使い込んでいくと、限界を感じることは少なからずありますが 心配しないでも統合的な開発環境であれば十分なデバッグができます もちろんテキストエディタだけで書く環境でも文法さえ意識すれば 宣言の有無によってデバッグが左右されるのはまれだと思いますけどね たしかにJAVAはPHPより長じたところも多いし、コンセプトから言っても 大きなプロジェクトに適用できますが、きちんとカプセル化していれば 他のオブジェクト指向言語でも近しいことは可能です 費用対効果を考えればPHPがカバーする範囲はかなり広いものだと思いますが あくまでも私見ということで

その他の回答 (3)

  • mizutaki
  • ベストアンサー率33% (111/333)
回答No.4

一応PHPは簡易的に比較的初心者でもシステムが構築できるようにという配慮が強い言語なので、 大規模なシステムを構築する前提の言語ではありませんが、 Cake、Zendの影響もあり、PHP5のサポートもあって、 大規模なシステムを構築する為の技法やノウハウ、仕様がそろってきていますから そんな難しい話ではない。 Javaの用に、様々な処理のメソッド化・クラス化を進めれば、 変数の衝突という現象は大きく減らすことが出来ますし、 大量の変数名が使用されるのであれば、それに対応するためにフィルタをかけるような処理を通してもいい。 どの程度の大規模を想定しているのかは分かりませんが、 それなりの技術を持っている人であればJavaでもPHPでもPerlでもPythonでも、大規模なシステムは構築出来ます。 変数宣言やコンパイルチェックなんかよりも 何十何百にもなるクラスの品質維持や 何百何千の変数やメソッドの命名規則 のようなどこのプログラミング開発でも必要になる 小手先の技術の方が重要度が高いです。 どんな言語であろうと、 規模が大きくなってしまったら、 処理ロジックの追いかけやすさや コードの読みやすさの重要性が高くなります。

  • mpx
  • ベストアンサー率71% (149/209)
回答No.3

>> おかしな変数があっても、コンパイラーが >> 事前にチェックできないってことだし。 ずばりの機能では有りませんが、 php.ini でerror_reporting にE_STRICTも設定しておけば 怪しげな変数をある程度教えてくれます。 機能的には不足かもしれませんが、ご参考に

  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.2

 「つくれないの?」と聞かれたら、作れます。という返事になりますね。  宣言が出来なくても、自分でちゃんと規則を作り、その通りに守れば、実はたいした不便は感じないものです。しかも、最近は、統合開発環境のできがすごく良くなってますから、さらに不便は感じません。  「つくりにくいの?」と聞かれたら、やりにくい面もあるでしょう。となりますか。  そりゃ、宣言しておくだけで、コンパイラが勝手にチェックしてくれるわけですから、そぉいう意味ではやりやすい。  大規模なプログラムを組む時に、ストレスを感じるか否かは、プログラマの技術に依存するとしか答えようがないです。  いくらコンパイラが一生懸命チェックをしてくれる仕様になっていても、それをプログラムを読みやすく書きやすくするために活用できなくては意味がないんです。変数宣言しかり、例外処理しかり、関数や副手続きの書き方しかり、クラスの書き方しかり・・・  いま書いた事例をちゃんとソースを読みやすく書きやすくチェックしやすくするために活用する方法は、実はとっても難しいですよ。大規模プロジェクトを開発・デバッグするための手続き論は、それだけで専門家が研究するテーマになってますし、論文や参考書もたくさんありますしね。  そして、逆説的なんですけど、これらの機構をちゃんと使いこなせる人にとっては、実は、これらの機構が無くても代換えの手続き・規則を自分で作ることは大して難しいことではなかったりします。  こうなると、どちらかというと、言語系の得意不得意の方に目が行くことになるかな。言語によって、このあたりは結構特徴があったりしますので。特に、周辺ライブラリーのそろい方まで見ると、その傾向はますます大きくなります。  

関連するQ&A

  • phpで外部プログラムを動かす

    初心者です。基礎的なことですが教えてください。 C言語で書いたプログラムをWebサービスで使いたいと思っています。 C単体でのプログラムをサーバ側で動かしますが、Webと連動させ、Web上のフォーマット から入力した情報をphpで経由し、サーバ側のCプログラムで処理する為に、データを渡し 起動し、結果をまたWeb上に返します。 その場合の phpでデータをCに渡し、プログラムを起動して、結果をCから貰い、Web上に 返すためのやり方を教えて下さい。どんなコーディング、関数になるのでしょうか。 またWebサーバの場合はCのコンパイラは通常どんなコンパイラを使用すれば良いの でしょうか。どんなレンタルサーバ会社でも問題ないのでしょうか。 初心者なので、よろしくお願いします

    • 締切済み
    • PHP
  • PHPは何故エディタで書けるのですか

     PHP初心者です、宜しくお願いします。  Javaとかのプログラムはそれようの言語をPCにインストールしておかないと、プログラムを書くことが出来ないですが、PHPとかhtmlとかの言語は何故、エディタで書いたファイル名をphpとかhtmlとかにするとブラウザから見れる様になるのでしょうか。

    • ベストアンサー
    • PHP
  • PHPソースの解析やデバッグに使うツール

    PHPソースの解析やデバッグに使うツール c言語などのコンパイラ言語には優秀なIDEが多数ありますが 皆さんはPHPの開発をする時どのようなツールを使用しているのですか? フリーのPHPソースを解析する際、ステップ実行しながら変数の中身をウォッチ したりしながらソース解析したいのですが、VisualStadioのような便利なIDEはないのですか? そのようなツールなしにPHPソースを書くとすると無茶苦茶大変な気がするのですが 皆さんは、その困難を乗り越えてPHP開発をされているのですか? 素人な質問ですみませんが、詳しい方がいましたら教えてください。

    • ベストアンサー
    • PHP
  • C言語での変数宣言の場所

    今まで2年ほどJavaを使っていましたが、最近になってCを使う必要が出てきました。Cは大学の頃に授業で学んだ程度のレベルです。 それはさておき。 JavaやC++ではメソッド内のどの場所ででも、新たな変数を宣言して使用できますが、Cでは関数内の最初の方でしか宣言できないですよね? 先日、その事を意識せずに、Javaと同じように変数を関数の任意の場所で宣言しているようなCのソースを書き、gccでコンパイルしたところ、コンパイルが通ってしまいました。 その時のファイルは「.c」ファイルです。 このソースはC++のソースとして、コンパイラが認識してしまったのでしょうか?拡張子が「.cpp」ではなく「.c」のままでしたが、コンパイラは拡張子ではなく、ソースを読み込んでから、そのプログラムがCなのかC++なのか判断しているのでしょうか? いまいちピンと来ないので、どなたか解説お願いします。

  • Webサイトで何故PHPが圧倒的になってきているんでしょうか?何故JAVAが主流にならないのでしょうか?

    Webサイトのプログラミングにおいて、昔はCGIが圧倒的でしたが、ここ数年はPHPが圧倒的に増えてきています。 何故PHPがこんなにも採用されるのでしょうか? また、なぜJAVAでなくPHPなんでしょうか? JAVAはオブジェクト指向言語で、大規模に向いていると聞きますが、逆に、多くの中小・零細企業のサイズとなる、小規模・中規模でJAVAを使ったら良いのでは?と思ってしまいます。大は小を兼ねるではいけないのでしょうか。 宜しくお願いいたします。

  • プログラム言語について

    プログラム言語ってJava C PHP C++ (Visual)Basic C#等がありますけど どう違うんですか? それぞれの違いを教えてください

  • プログラムを学ぶ順序

    HP製作のために、プログラムを学ぼうと考えています。 今のところ作りたいのは、掲示板などサーバ上で動く仕組みですので、PHPを検討していますが、はじめて学ぶ言語として適切でしょうか? PHPだと、雛形が用意されているため、結局は、プログラムについて深く学ぶことが出来ないと聞きます。 また、CやJAVAで出来ているため、これらを学んでおくとより自由度の高い使い方が出来るとも聞きます。 そこで、C、JAVA、PHPを学ぶ順序を聞きたいのですが、どうすればよいでしょうか?

  • PHPを勉強する必要性について。

    二日連続の質問です。 度々すみません。 プログラム言語の人気をたまたま検索していて見つけました。 1位 JAVA 2位 C言語 3位 PHP でPHPは凄い勢いで浸透しているそうです。 C++も抜きました。 PHPを調べると、「HTML言語に埋め込む為のもの。」 と書いてありました。 ボクはHTML言語を知らないので、専らホームページビルダーです。 PHPの話に戻りますと「HTML言語に埋め込む為のもの。」が 何故そんなに人気があるのかが不思議です。 実際にPHPの便宜性、凄いところはどこでしょうか? ぜひ教えてください。 お返事お待ち致しております。

    • ベストアンサー
    • PHP
  • MPI プログラム

    C言語で並列計算プログラムを作りたいのですが、 MPIの導入方法が分かりません。 特別なコンパイラなどが必要なのでしょうか? 単純な質問ですが、お力添え願います。

  • 最初に使う変数のゼロクリアについて

    変数宣言をしてその変数を使用する場合、ゼロクリアというのは常識なのかも知れませんが、フォートランはデフォルトでゼロクリアになっていたと理解しています。てっきりそうだと思っていたのですが、フリーのフォートランコンパイラg95はゼロクリアになっていないみたいです。すなわちg95では変数宣言して値を明示的に与える前に使用するとゼロと思っていたのがとんでもない値になっていました。 コンパイラの仕様を読んでおくというのは数値計算を行う上で重要なことだと考えます。 前置きが長くなりました。質問ですが、コンパイラで変数宣言した時点でゼロクリアになっていないというのは言語としてはどのようなものがあるのでしょうか? 全部なのでしょうか。全部そうだと思っていた方が安全ではあると思いますが。 よろしくお願いします。

専門家に質問してみよう