Piece Frameworkによるブログアプリケーションの作成

第1回 フレームワークとは?

この記事を読むのに必要な時間:およそ 1.5 分

Piece Frameworkは,本質的な開発の実践のためのアプリケーションフレームワークです。Piece Frameworkは単一のフレームワークではなく,ステートフルでセキュアなWebアプリケーションフレームワークPiece_Unity,オブジェクトリレーショナルマッピングフレームワークPiece_ORM,バリデーションフレームワークPiece_Right,Webフローエンジンと継続サーバ Piece_Flow,といった特定の領域に焦点を合わせた独立した小さなフレームワークで構成されています。Piece Frameworkは,現在のところPHP4及びPHP5をサポートしています。

連載第1回目となる今回は,フレームワークの本質を知り,フレームワークを使用するメリットとデメリットを理解して頂こうと思います。

フレームワークの定義

frameworkという単語は「骨組み,枠組み」(ランダムハウス英語辞典)といった意味を持ちます。

「オブジェクト指向における再利用のためのデザインパターン」の著者で,JUnit, Eclipseの開発者としても知られているErich Gamma氏は2005年のインタビュー「Erich Gamma on Flexibility and Reuse」で,フレームワークを下記のように定義しています。

  • フレームワークは設計の蒸留に取り組む。
  • フレームワークは問題解決のための重要な抽象概念を特定する。
  • フレームワークはクラスによって抽象概念を表現し,抽象概念間に関係を定義する。
  • フレームワークはハリウッドの法則と呼ばれるものを使う。

上記の定義はいずれもフレームワークの本質を端的に示しているといえます。フレームワークを使うことそれ自体が,先人の設計の再利用を行っているといえるのです。

3つの再利用のレベルとフレームワーク

Erich Gamma氏は,先述のインタビューで3つの再利用のレベルを指摘しています。

  1. クラス
  2. デザインパターン
  3. フレームワーク

クラスは最も小さな再利用のレベルです。単一のクラスやいくつかのクラスの組み合わせ,そしてクラスライブラリがそれにあたります。

デザインパターンは,クラスよりも大きな再利用のレベルです。設計のアイデアやコンセプトがそれにあたります。

フレームワークは最も大きな再利用のレベルです。このレベルでは,特定のアプリケーション領域の抽象概念そのものが再利用されます。

Webアプリケーションフレームワークとは?

では,Piece Frameworkが提供するようなWebアプリケーションフレームワークとは何でしょうか?

これまでの説明に従うと,Webアプリケーションフレームワークとは,何らかのWebアプリケーションを構成するコードから,他のWebアプリケーションを作成するにあたって再利用可能な抽象概念を抽出し,それらに関係を定義したものといえるでしょう。

フレームワーク使用のメリット

フレームワークを使用するメリットは,最も大きなレベルの再利用によって,先人の知見を最大限に活用できることにあります。

しかし,新規にフレームワークを構築することは,リスクが大きく多大な投資となります。既存のフレームワークを使うと,フレームワーク構築リスクを取らず,構築するよりも少ない投資でフレームワークのメリットを享受できます。

フレームワーク使用のデメリット

フレームワークを使用するデメリットは,フレームワークを使うアプリケーションの安定性が,フレームワークの安定性に左右されやすいことです。

また,フレームワーク利用者が「フレームワーク病(frameworkitis)」にかかってしまいがちである,ということも挙げられます。

フレームワーク病とは?

フレームワークを使用したアプリケーションの拡張は,フレームワークが提供する拡張の仕組みに従った形で行う必要があります。その拡張の仕組みが複雑であればあるほど,アプリケーションの拡張にかかるコストが大きくなってしまいます。拡張の仕組みが複雑なフレームワークでは,ほんの少しの拡張であったとしても,拡張コードそのものを書く時間よりも,その仕組みに従った形にすることに,より多くの時間が掛かってしまうことになりかねません。これが「フレームワーク病」の症状なのです。

コンテンツ管理システム(CMS)といわれるものがあります。これは,多くの場合フレームワークを内包し,フレームワークよりもさらに大きな再利用の仕組みを提供するはずのものです。しかし,多くのCMSがこれまで成功を収めていないという事実は,フレームワーク病の存在を示唆しているといえるでしょう。

フレームワーク病の予防

単一の大きなフレームワークを使うよりも,より小さく焦点の合った多くのフレームワークを使うことが,フレームワーク病の予防につながります。

大きなフレームワークは概して拡張の仕組みが複雑であり,学習曲線も大きくなります。このことはアプリケーションの保守をより難しくします。小さなフレームワークを使うことで,これらの問題を未然に防ぐことができるのです。

おわりに

以上で,フレームワークの本質と,フレームワークを使用するメリットとデメリットを示しました。Piece Frameworkは,特定の領域に焦点を合わせた独立した小さなフレームワークを提供することで,開発者に対するフレームワーク使用のデメリットを最小にし,フレームワーク使用のメリットを最大にすることを目標に開発されています。

次回は,Piece Frameworkの概要を示します。

参考文献
  • オブジェクト指向における再利用のためのデザインパターン ISBN978-4797311129
  • Leading-Edge Java Erich Gamma on Flexibility and Reuse A Conversation with Erich Gamma, Part II by Bill Venners May 30, 2005
    http://www.artima.com/lejava/articles/reuse.html

著者プロフィール

久保敦啓(くぼあつひろ)

Piece Frameworkのアーキテクト及びプログラマー。PEARのNet_UserAgent_Mobileの開発者でもある。今春に株式会社アイテマンを設立。

URLhttp://iteman.typepad.jp/

コメント

コメントの記入