テンプレートエンジン

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

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

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

構成要素

編集

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

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

データモデル

編集

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

ソーステンプレート

編集

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

テンプレートエンジン

編集

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

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

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

成果ドキュメント

編集

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

用途

編集

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

編集

使

VelocityTemplate ToolkitFreeMarkerSmartyJSPeRuby

ドキュメント生成

編集

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

コード生成

編集

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

利点

編集

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

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

関連項目

編集