テンプレートエンジン

ソフトウェアまたはソフトウェアコンポーネントの一つ

テンプレートエンジンテンプレートと呼ばれる雛形と、あるデータモデルで表現される入力データを合成し、成果ドキュメントを出力するソフトウェアまたはソフトウェアコンポーネントである。テンプレートおよび成果ドキュメントは複数のこともある。成果ドキュメントには様々なフォーマットのものがあり、文書ウェブページソースコードなどがその例で、ドキュメント全体ではなく、その一部を出力することもある。

テンプレートエンジンの処理フロー

構成要素

テンプレートエンジンは少なくとも以下の要素から成る。

  • 関連したデータモデル
  • 1つ以上のソーステンプレート
  • 処理系であるテンプレートエンジン
  • フォーマットされた出力である成果ドキュメント

データモデル

データモデルとしては、関係データベースXMLフラットファイルデータベース(例えばCSV)・スプレッドシートなど様々な形式のものが考えられる。複数のデータモデルに対応した柔軟なテンプレートエンジンもある。

ソーステンプレート

ソーステンプレートの記述形式(仕様)は一般的に以下のようなものがある。

テンプレートエンジン

テンプレートエンジンの役割は以下である。

  1. データモデルを受け取る
  2. ソーステンプレートに記述されたコードを処理する
  3. 処理結果をテキストファイルまたはパイプストリームに出力する

テンプレートエンジンによってはその他のオプションが設定できるものもある。

成果ドキュメント

出力である成果ドキュメントはドキュメントの全体または一部を構成する。

用途

ウェブテンプレートエンジン

ウェブテンプレートエンジンは「ウェブテンプレート」とソースデータ(典型的には関係データベースから)を処理してウェブページ(またはその一部)を生成する。ウェブアプリケーションウェブサイトの開発においてはテンプレートエンジンの使用が標準的になっており、ウェブアプリケーションフレームワークの一部に含まれていることが多い。

テンプレートエンジンには独自のテンプレート言語を採用しているものと汎用のプログラミング言語上に構築されているものがある。前者の例はVelocityTemplate Toolkit・FreeMarker・Smartyなどで、後者の例はJSPeRubyなどである。

ドキュメント生成

Javadocのようなソースコード埋め込みドキュメントからHTMLを生成するシステムもテンプレートエンジンの一種である。

コード生成

ソースコード生成は成果ドキュメントとしてソースコードを出力するテンプレートエンジン処理である。その場合のデータモデルはUML、リレーショナルデータおよびアプリケーションドメインに応じた特別なデータストアなどがある。

利点

テンプレートエンジンを利用することでいくつかの恩恵が受けられる。

  • 見た目 (View) とロジックが分離できる
    • 例えばMVCのようなモジュール化を容易にする
    • デザイナーとプログラマーなど、作業の分担ができ、チームでの開発がやりやすくなる
  • ドキュメント生成のための同じようなコードの重複が避けられる

関連項目

🔥 Top keywords: メインページ特別:検索上戸彩エドワード・S・モースXG (音楽グループ)石丸伸二秋葉原通り魔事件山田昌蓮舫木村カエラ椎名林檎井上愛一郎杉浦太陽ブルース・リー渡部峻アンチヒーロー (テレビドラマ)岡崎慎司高橋里華河合優実MY FIRST STORY無職転生 〜異世界行ったら本気だす〜クリストファー・コロンブス古畑任三郎黎智英赤間麻里子髙嶋政伸怪獣8号若葉竜也山本未來小川博Z-1 (アイドルグループ)稲葉浩志眞栄田郷敦天野鎮雄石川さゆり長谷川博己ノーマンズランド三上悠亜森内寛樹