1. はじめに
昨今のWebアプリケーション開発では低コスト、短期間でありつつも高品質であることが求められており、開発効率を改善が命題となっています。その方法の一つとしてフレームワークを導入が取りざたされています。
この連載では数あるフレームワークの中でも使い勝手のよいphp用フレームワーク「Mojavi」の紹介と、Mojaviを使った開発を掲示板など小規模なアプリケーションを作成を通して学んでゆくことを目的としています。第一回目では、なぜフレームワークが必要なのか、Mojaviにはどのような特徴、機能があるのかについて解説します。
Mojaviの日本語ドキュメントはまだまだ少ないのでこの連載が日本でのMojavi利用者の増加につながれば幸いと存じます。
2. phpは優秀・・・だけれども?
phpは非常に優秀な言語です。ライブラリは豊富にそろっており、手早くWebアプリケーションを作成できるのはもちろん、習得も非常に簡単。それでいてYahoo!が採用するなどの実績も十分に積まれ、今となっては飛ぶ鳥を落とすような勢いのある人気言語となりました。
しかしそんなphpでも開発するアプリケーションの規模が大きくなってくるといろいろと問題が発生してきます。通常、規模が大きいアプリケーションでは、一人で全ての分野をフォローするのは難しく、プログラマーやデザイナーなど役割を分けて複数人のチームで開発します。そのアプリケーションを小規模のアプリケーション開発のようにHTMLドキュメントにデザイン(HTMLタグなど)とロジック(phpスクリプト)を一つのファイルにまとめた形で開発しようとすると、一つのファイルをプログラマーとデザイナーの二人で編集する状態になってしまい、双方が自分の仕事に集中しにくくなってしまいます。それでは効率が悪いのでデザインとロジックを分離できるような設計や実装方法が求められます。
また、認証やセッション管理などの機能は他の開発者に関係することもあるため、実装方法や利用方法を他の開発者と合わせなければなりません。それだけでなくこれらの機能は頻繁に使用するものなので何度も同じコードを書くことになってしまい効率が悪くなってしまいます、ですのでこれもデザインとロジックの分離と同様に効率化を図りたいところです。
これら例のように、大規模アプリケーションを開発する場合には、いくつかの方針を持って設計や実装を行っていく必要があります。しかしながら、これらを0から考えていくとなると時間がかかるだけでなく、優秀な設計者を必要とするなど多大なコストがかかります。
コストを抑えつつ、開発期間を短くすることが求められる昨今のWebアプリケーションではこれらの問題の解決が必須といえるのです。
3. 処方箋:フレームワーク
そこでよく用いられる解決法がWebアプリケーション・フレームワークの導入です。フレームワークには出入力や画面遷移を始めとし、デザインとロジックの分離機構や、認証やセッションの管理、などの基本的な機能を提供するアプリケーションの土台や枠組みといえるもので、導入すればよく使う機能を開発者が実装する必要が無くなり楽ができ、設計者も詳細な部分まで設計をする必要がなくなり設計の難易度は下がり時間もかからなくなります。それだけでなく、よく利用する機能のためのコードがあちこちに散乱することもなくなりソースコードの見通しと開発効率の改善が見込めます。
また開発者はフレームワークの機能を使うことで自然とフレームワーク、すなわち枠組みの中に収まるため、設計とは違った実装方針への強制力があります。このため同じような処理をするならば誰が作っても同じようなコードになるため品質の一定化も見込むことができます。
昨今のWebアプリケーション開発は低コストで素早い納入が求められつつも規模は肥大化する一方です。フレームワークを使わずに挑むのはもはや無謀といえるでしょう。
4.php用フレームワーク
おそらく、もっとも使われているWebアプリケーション開発のためのフレームワークはJava用フレームワーク「Struts」とWindowsプラットフォーム向けフレームワーク「ASP.NET」でしょう。双方ともに優秀なフレームワークで、Javaで開発するならばStruts、Windowsプラットフォーム向けに開発するならばASP.NETというのはもはや定番となっており随所で採用されています。しかしphpとなるとまだ決め手となるフレームワークがないのが実状です。
今のところ国内で有力とされているphp用フレームワークは「phrame」です。phrameはStrutsを強く意識しておりphp版Strutsと考えても差し支えはありません(正確には設計思想が非常に似ているというだけですが)。しかしStrutsはphpでも最適解なのか?というとphpとJavaは違うわけですから疑問が残るわけです。そこで注目を集めているのがphp用フレームワーク「Mojavi」です。
>>次のページへ
|