カテゴリー

最新の記事

最近のコメント

最近のトラックバック

月別アーカイブ

ブログ検索

RSSフィード

ブロとも申請フォーム

この人とブロともになる

スポンサーサイト

スポンサー広告
--.--.--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ベンチャーブログのランキングに参加しています。
下のバナーをクリックして応援していただけると嬉しいです。
にほんブログ村 ベンチャーブログへ

PHPフレームワークもどき「PnF」(1)~はじめに

PHP
2008.11.24
PHPでWebアプリケーションを作成している時、コードが思った以上に複雑になり、修正や変更が億劫になった経験はありませんか。特にひとつの画面が複数の機能要素で構成されている場合には、複雑さの管理が厄介ではないでしょうか。

Webアプリケーションでは「画面」がひとつの単位になっており、アプリケーション機能を「画面遷移」で分離することで、複雑さをコントロールできます。しかしユーザビリティを高めるために、ひとつ画面に数多くの機能要素を盛り込みたい場合には、画面遷移による機能分割というアプローチは使えません。それではどうしたらいいのでしょうか。この問いに対する答えとして作成したのが「フレームワークもどきPnF」です。

PnFでは画面全体を複数の構成要素(ビューコンポーネント)に分割し、それぞれを個別に開発できるようにしています。ひとつのビューコンポーネントはひとつのオブジェクト(クラス)として定義され、そのクラスの中でビューとコントロールが分離されています。ビューコンポーネント同士は相互に連携でき、全体としてひとつのアプリケーションを構成できます。これによって画面全体を意識せずに、複雑な構成のWebアプリケーションを開発できるようになるわけです。

PnFはPHPの使用を開始してわずか4ヶ月という、いわば「PHPの素人」が、2週間程度で作成したものです。そのためまだ十分に練れていない部分や、バグが残っている部分、機能的に不足している部分が数多く残っています。しかし私自身が実際に使った感想を言えば、複雑な画面構成のWebアプリケーションの開発生産性やメンテナンス性を、飛躍的に高められるポテンシャルを持っているのではないかと感じています。

PnFを使用したWebアプリケーション開発には、次のようなメリットがあります。

(1)画面構成要素(ビューコンポーネント)毎にコードをまとめ、それらを分離して管理できるため、「分割して統治せよ」の原則を貫きやすくなります。

(2)多くの画面構成要素に共通する機能をPnFのコア部分に実装できるので、バグの発生を抑制しやすくなります。例えばセキュリティ確保のために必要な「POST/GET変数のフィルタリング」はコア部分に実装しています。

(3)継続性のある処理を記述しやすくなります。SESSION変数を使用した変数の保存を、SESSION変数を使っていることをそれほど意識せずに、行えるようにしているからです。

(4)PnF自体がPHPで記述されており、それが実行時に呼び出される構成になっているため、PHPが動く環境さえあれば実装できます。他のランタイム等は必要ありません。なお対応するPHPのバージョンは「5.1.6」です。

Webアプリケーションの複数の機能を「画面遷移で切り替えて」提供する場合には、PnFは必要ないと思います。しかし複数の機能要素をひとつの画面にまとめて提供する場合には、それなりの威力を発揮するはずです。しかし短時間で作成したものなので、まだいろいろな問題が残っているでしょう。またひょっとすると、すでに同様のフレームワークが存在しいるかもしれません。つまり「車輪の再発明」になっている可能性も否定できないのです。

それでも今回このPnFを公開する気になったのは、外部からの評価を受けたいと考えたからです。もし何らかの価値(あるいは価値につながる可能性)があれば、この考え方をさらに押し進めていくかもしれません。逆にこれが「車輪の再発明」または「意味のないこと」だということがわかれば、さっさと手を引くことになるでしょう。

もちろん公開作業にもそれなりの手間がかかるので、何段階かに分けて公開を進めていく計画です。まずは簡単なサンプルアプリケーションを作成し、そのコードがどのように記述されているのかを、このブログ上で紹介します。もしこれに対して何らかの反応があれば、さらに詳しい紹介を行うつもりです。思わしい反応がなければ、公開作業を中断します。

なお「PnF」という名前には、特に大きな意味はありません。「PnF is Not a Framework」の略だと思ってください。GNUの「GNU is Not Unix」みたいですが、PnFの方は「フレームワークに遼か及ばず」といったニュアンスです。最初のPは「パーツ指向」みたいなものだと考えてください。Nを小文字にしたのは「Proprioceptive Neuromuscular Facilitation(固有受容性神経筋促通法)」と混同しないようにするためです。読み方は「ピンフ」ということで。

もし説明内容に疑問が生じた場合には、各エントリーにコメントを付けて、質問してください。助言なども歓迎します。それではよろしくお願いします。
スポンサーサイト

ベンチャーブログのランキングに参加しています。
下のバナーをクリックして応援していただけると嬉しいです。
にほんブログ村 ベンチャーブログへ

FC2Ad

相続 会社設立

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。