Index > PHPとJavaServletとの比較(小規模ウェブサイト/ウェブアプリ構築の場合)
Wed, July 9, 2008

PHPとJavaServletとの比較(小規模ウェブサイト/ウェブアプリ構築の場合)

ながらくJavaとServletを使ってウェブアプリケーションを構築してきたのだが、 ついにPHPを使って開発をすることになった。

以前から、PHPは良さそうだと思って、オライリー関係の本を買って眺めたり、 小さなコードをPHPで書いてきたのだが、ある程度まとまったウェブサイトをPHPで 構築するのは今回がはじめて。

実際に構築していると、PHPは驚くほど簡単で痛みが少ないことがわかった。 (オライリ─本のPHP5入門にも pain free と書いてあった...)

  1. PHPはウェブ構築用に特化しているためJavaのような汎用言語と違って、覚えることが少なく、ウェブ構築時の問題解決が簡単(たいていの問題にストレートな解決策が用意されている)
  2. PHPは(フレームワークを使わない場合)HTML中に直接PHPコードを入れていくため、ロジックとビューの分離ができない。

以前は、 HTML中にコードを入れるのは保守の点で劣っていると考え、 Javaでウェブサイトを構築する場合でも、 JSPは使用しないで、 Servletでロジックを書いて、テンプレートでHTMLを生成するというやり方が よいと思っていたこともあった。

しかし、最近ではビューをCSSとJavaScriptでコントロールすることが多くなってきているので、 サーバ側で生成するHTMLの役割は、ほとんどビューというより{u:モデルが中心}になり、 ビューを作り出すのは、(クライアントサイドの)JavaScriptで行うようにつくる。 このような作り方であれば、HTML中にPHPコードが混じることに問題を感じない。

むしろ、HTMLの一部をPHPで作り出していくことで非常にはやく開発できる。 小規模なウェブアプリケーションでは、保守すべきコード量も少ないので、 このスピードがはやいというのはかなりのメリットが大きいと思う。 (デザイナーさんとの協調作業や複数人での制作の面ではやはり問題になるとは思いますが)

さらにモデルとかビューとかの話とは関係ないが、 HTML中に埋め込んでいるJavaScriptについては、このJavaScriptコードを PHPを使って、実行時にダイナミックに生成することができる。 これがかなり重宝する。 もしPHPなしでJavaScriptだけで(DOMを駆使して)コーディングしようとすると すごいやっかいなコードをPHPで生成してしまうことで、 シンプルにすることもできる。

もちろん、こういった強力さというのは諸刃の剣で、使いようによっては ひどいことになりますが。

ロジックとビューの分離

ある程度以上の規模のウェブ構築では、 PHPのフレームワークを使うので、たぶん ロジックとビューの分離が問題なくできるのだ思いますが。

 Twitter
follow me on Twitter
 Categories