タイトルイメージ 本文へジャンプ
 

Struts


1.フレームワークとは~その1

プログラムを組んでいると,同じようなコードを繰り返し記述している部分が必ず見つかる。すると,以下のような問題にぶつかる。

  • 生産性が悪い
     同じコードを何度も正確にタイピング
  • 保守性が悪い
     あるコードにバグが見つかったら,それを流用してる部分をソースコードから探し出し,すべて修正しなければならない。
  • 開発者のクセ
     開発者によって,ソースコードの構造がバラバラ

 この問題を解決すべく,構造化手法では,繰り返し記述するコード部分をいわゆるサブルーチン(関数)化して再利用する,という手法を取った(下図)。



図1:構造化手法における再利用

 上図のようにすることで,生産性や保守性がある程度高まってきた。

 しかし,メインルーチンにおけるサブルーチンの呼び出し順序や利用の仕方は,やはり開発者によって違いが出てくる。
 つまり,メインルーチンの品質は開発者の力量に依存するのだ。
 そして,アプリケーション全体の品質はメインルーチンによって決まるといっても過言ではない。

 いくらサブルーチンが,百戦錬磨の開発者が作成した品質の高いものでも,それを利用するメインルーチンを作る開発者が初心者レベルでは,アプリケーション全体の品質は悪くなる。

 では,どうすれば開発者による品質のばらつきを減少できるだろうか?
 オブジェクト指向では,その回答の一つとして「アプリケーションフレームワーク」というものが提案されている。

 上記で説明した,構造化手法での再利用の対象はサブルーチンであったが,アプリケーションフレームワークでの再利用の対象はメインルーチンである(下図)。



図2:オブジェクト指向におけるフレームワークを使った再利用

 つまり,アプリケーション全体の品質をほぼ決めるメインルーチンはすでに完成しており,あとは,メインルーチンが呼び出すサブルーチン部分のみ作成すればよい。

 上記のメインルーチン部分を経験豊富なベテラン開発者が作成しておけば,経験の浅い新人開発者がサブルーチンを作ったとしても,ある程度の品質は保証できる。
 つまり,経験の浅い開発者がベテラン開発者の経験を再利用できるわけだ。

 再利用の対象であるメインルーチン部分を製品化したものが,「フレームワーク」ということになる。


E-mail To:溝口泰成