Webテンプレート
Webテンプレート(ウェブテンプレート)は、ウェブデザインにおいてコンテンツと見た目を分離し、Webドキュメントを大量生産するためのツールである。Webテンプレートシステムの基本概念である。Webデザインテンプレート、ホームページテンプレートとも。
Webテンプレートはどんなタイプのウェブサイトでも使える。簡単に言えば、Webテンプレートはウェブサイト設定時のテンプレートである。
用途
[編集]Webテンプレートは個人や組織がウェブサイトを構築する際に利用できる。テンプレートを購入またはダウンロードすると、ユーザーはWebテンプレートに含まれるジェネリックな情報を置換し、その個人や組織(あるいは製品)に対応した内容にする。テンプレートは次のような場面で使える。
- ブログで、個人情報や日々の活動を表示する。
- オンラインでの商品販売
- 企業や団体に関する情報を表示する。
- 家族の歴史を表示する。
- フォトギャラリーを表示する。
- ウェブブラウザ上で演奏されるよう、MP3などの音楽ファイルを置く。
- 動画ファイルを公開する。
- オンラインでのプライベートなログイン領域を設定する。
効率的な分離
[編集]ウェブ開発経験者の共通の目標の1つは、柔軟かつメンテナンスの容易なアプリケーションを開発し広めることである。この目標を達成するために考慮すべき重要な考え方として、ビジネスロジックとプレゼンテーションロジックの分離がある[1]。開発者はこの分離を行うためにWebテンプレートシステムを何らかの形で使う[1]。
この分離を評価する際の困難さとして、その定式化された尺度が存在しないという問題がある[1]。しかし、ソフトウェア工学の領域から借用した標準的ヒューリスティックが存在する。例えば、(オブジェクト指向プログラミングの原理に基づく)「継承」、(MVC分離の原則に対応した)「テンプレートエンジンと自動プログラミング」がある[2]。各種ガイドラインの違いや、異なるガイドライン間の類似性は議論の的となっている[3]。
柔軟な表現
[編集]「効率的な分離」の背景にある主要な論理的根拠として、プレゼンテーションロジックに特化したコードとリソースにおける柔軟性を最大化する必要性がある[2]。クライアントの要求、顧客の嗜好の変化、常に新鮮な見せ方をしたいという要望などにより、Webコンテンツの見せ方はしばしば劇的に変更する必要があるが、その際に根底にある基盤にはなるべく影響を与えないのが好ましい。
「プレゼンテーション(フロントエンド)」と「ビジネスロジック(基盤)」の区別は、以下のような理由で重要である。
- プレゼンテーションのソースコード言語は他のコード資産とは違うかもしれない。
- アプリケーション製造工程は、違った時間や場所で行われる必要があるかもしれない。
- 労働者にはそれぞれ独自のスキルがあり、プレゼンテーションのスキルとビジネスロジックをコーディングするスキルは共存するとは限らない。
- コード資産は、異質なコンポーネントが分離され結合度が弱いほど、管理しやすく読みやすい[2]。
再利用可能性
[編集]Webテンプレートの潜在的利用者の全てが、その必要性に合ったシステムを設計する開発者を雇えるわけではない。さらに中には、Webを使いたくても技術を(ほとんど)持たない人もいる。そこで、複数の開発者やベンダーが技術を持たない人々のための再利用可能なWebテンプレートをリリースしている。もっとも、Webテンプレートの再利用可能性は高いスキルや技術を持った開発者にも重要である。特に単純で既製のWebソリューションを求めている人には重要と言える。
そのような既製のWebテンプレートはフリーなものもあるし、個人が容易に作成できる場合もある。しかし、特殊なWebテンプレートはオンラインで販売されている場合もある。ライセンス料を徴収する商用サイトも多数存在するが、フリーで「オープンソース」のサイトももちろん存在する。
脚注・出典
[編集]- ^ a b c Parr, Terence John (2004). Enforcing strict model-view separation in template engines. Proceedings of the 13th international conference on World Wide Web. ISBN 1-58113-844-X
- ^ a b c Paragon Corporation (2003年7月19日). “Separation of Business Logic from Presentation Logic in Web Applications”. 2009年6月13日閲覧。
- ^ MVC vs OOP
関連項目
[編集]- Cascading Style Sheets (CSS)
- テンプレート
- コンテンツ管理システム (CMS)
- ウェブデザイン