Struts
プログラムを組んでいると,同じようなコードを繰り返し記述している部分が必ず見つかる。すると,以下のような問題にぶつかる。
- 生産性が悪い
同じコードを何度も正確にタイピング
- 保守性が悪い
あるコードにバグが見つかったら,それを流用してる部分をソースコードから探し出し,すべて修正しなければならない。
- 開発者のクセ
開発者によって,ソースコードの構造がバラバラ
この問題を解決すべく,構造化手法では,繰り返し記述するコード部分をいわゆるサブルーチン(関数)化して再利用する,という手法を取った(下図)。
図1:構造化手法における再利用
上図のようにすることで,生産性や保守性がある程度高まってきた。
しかし,メインルーチンにおけるサブルーチンの呼び出し順序や利用の仕方は,やはり開発者によって違いが出てくる。 つまり,メインルーチンの品質は開発者の力量に依存するのだ。 そして,アプリケーション全体の品質はメインルーチンによって決まるといっても過言ではない。
いくらサブルーチンが,百戦錬磨の開発者が作成した品質の高いものでも,それを利用するメインルーチンを作る開発者が初心者レベルでは,アプリケーション全体の品質は悪くなる。
では,どうすれば開発者による品質のばらつきを減少できるだろうか? オブジェクト指向では,その回答の一つとして「アプリケーションフレームワーク」というものが提案されている。
上記で説明した,構造化手法での再利用の対象はサブルーチンであったが,アプリケーションフレームワークでの再利用の対象はメインルーチンである(下図)。
図2:オブジェクト指向におけるフレームワークを使った再利用
つまり,アプリケーション全体の品質をほぼ決めるメインルーチンはすでに完成しており,あとは,メインルーチンが呼び出すサブルーチン部分のみ作成すればよい。
上記のメインルーチン部分を経験豊富なベテラン開発者が作成しておけば,経験の浅い新人開発者がサブルーチンを作ったとしても,ある程度の品質は保証できる。 つまり,経験の浅い開発者がベテラン開発者の経験を再利用できるわけだ。
再利用の対象であるメインルーチン部分を製品化したものが,「フレームワーク」ということになる。
E-mail To:溝口泰成
|