ウィルキンソンの炭酸が抜けていく。

webクリエイターのイロハ

フレームワーク研究

たとえばPHPフレームワークとは?

 

フレームワークは一言で表すと、アプリケーションの土台」と言えます

。データベースへの接続、認証機構の実装、データの登録・編集・削除ページの作成など、どんなWebアプリケーションにも必須の機能があります。これらの開発を毎回1から行うことは非常に効率が悪いことです。フレームワークはこれらの機能を一つにまとめ、その組み合わせ方も提供します。言わば、コードの規格書とも言えるでしょう。

フレームワークは、プレゼンテーション層とビジネスロジック層の分離、コントロールの標準化、標準的な処理(フォームの生成や値の取得など)の自動化など、Webアプリケーション構築に有用な機能を提供します。スキームが固まるため、セキュリティ対策にも効果があります。

フレームワークは、今後ますますPHP開発に不可欠なものになると考えられていますが、フレームワーク使用法のマスター方法、数多くあるフレームワークの中からどれを選択するかなどさまざまな問題があるのも事実です。

 

フレームワークは下記のようなシステム開発における問題に対して有用です。

  • 多くのプログラマが開発に関わり、各人のコードがバラバラになってしまう
  • コードの再利用性が低い
  • セキュリティ脆弱性などのセキュリティが不安
  • 開発のスピードが上がらない

つまり、フレームワークはアプリケーション開発の問題に対処するための下記のような特徴を持ちます。

  • 命名規則やディレクトリ構成などの規則が統一されており、大規模な開発に向いている
  • コードの再利用性が高いため、効率的な開発を行える
  • 開発に制約を設けることで、セキュリティ・保守性が高まる

大規模プロジェクトには多くの開発者が関与します。このようなケースでは開発者同士のスクリプトの差異の問題から、一定の品質を保つことが難しくなります。このような問題がバグ発生率の増加、スクリプトの複雑化に繋がり、開発期間の延長の原因となっています。

フレームワークはコーディングのルールや実装方法を均一化するため、このような開発期間の延長の原因を取り除きます。更に、均一化されたスクリプトにより、保守・メンテナンス性も向上します。

 

このようにフレームワークを使用する上で非常に便利と言われるフレームワークにも下記のように留意すべき点があります。

拡張の問題

拡張の問題とは、枠組を外れた機能の実装が困難となるケースがある点です。つまり、アプリケーションを拡張する際に、フレームワークが提供する仕組みに沿った形で行う必要がでてくるのですが、拡張の仕組みが複雑なフレームワーク、あるいは拡張しようとしている機能が複雑だと、それを実装するために逆に開発日数がかかってしまい、より多くのコストが必要になる場合があります。

習得期間

フレームワークは習得し始めてから数週間~1ヶ月は、全く新しい言語を使用しているような感覚になると言われています。これは手順、規約など、そのフレームワークに即して習得しなければならず、たとえば、データベースの命名、クラス、ファイルの配置など、さまざまなルールを覚えなくてはいけません。フレームワークに慣れてしまえば難しいことはないのですが、それまでは苦労することがあるかもしれません。

デファクトスタンダードの不在と開発の停止

現在さまざまなPHPフレームワークが公開されていますが、その中で特出したもの、デファクトスタンダードがありません。また、中には途中で開発が停止してしまうフレームワークもあります。