開発環境に合わせたフレームワークの選定を
これまでの比較から分かるように、どの言語においてもWeb開発における「必要十分な機能を内包しているもの」と、「必要最低限の機能を提供するもの」があるということが分かると思います。以下にそれぞれのメリット・デメリットを表します。
フレームワークの種類 | メリット・デメリット |
---|---|
必要十分な機能を持つもの | すべての処理が1つの仕組みを用いて完結できる反面、膨大なソースの理解とサーバー負荷といった問題に直面することがありうる |
必要最低限の機能を持つもの | 軽量なうえにソースコードの学習にそれほど時間を要さないが、単体でWebに必要な機能を実装するには外部ライブラリの使用を検討したり、自分達で機能の拡張を行う必要も発生する可能性がある |
RubyにおけるWaves、PHPにおけるCake PHP、PerlにおけるMojoなどは、上記のメリットとデメリットを解決するべく開発されたフレームワークで、豊富な機能を実装しつつも軽量で開発者が導入しやすいような仕組みを模索しています。
いずれにせよ、フレームワークの選定は現状の開発工程を見直して「どんなフレームワークが必要なのか」を考えていく必要があります。既存のリソースを利用して効率を上げたいのであれば、できるだけシンプルなフレームワークを採用しカスタマイズしていくことができますし、標準装備された豊富な機能を使用して効率化を図りたいのであれば、学習時間を十分にとって流れるような開発を行うことも可能です。
では、フレームワークの導入が難しい場合、開発効率を上げ、Web開発におけるスムーズなやり取りを行うにはどんな手段が考えられるでしょうか? ロジックとデザイン、HTMLの分離を行うことができれば、デザイン上の修正があった場合、開発者は改修を行う必要がなく負荷をかなり軽減できます。
このような仕組みを実現するための方法の1つとして、「テンプレートエンジン」の採用があります。本稿で取り上げるテンプレートエンジンとは、HTMLなどで作成されたページの構成要素をテンプレートと呼ばれる雛形に記述することで、ロジック部分をデザイン部分から切り離して管理できる仕組みを提供するライブラリを指しています。
次項では、PHP/Ruby/Perlの3言語で構築する際によく使われるテンプレートエンジンの比較を行っていきます。