テンプレートエンジンとは?
状態:-
閲覧数:2,453
投稿日:2009-07-09
更新日:2017-10-21
英語表記
・Template Engine
テンプレートと呼ばれるHTMLのひな形を元にプログラムで加工し、画面に出力するためのライブラリ
・プログラムのファイルの中で、テンプレートを読み込んで解析し、そのテンプレートに任意の値を当てはめて、出力すること
・テンプレートと呼ばれる雛形と、あるデータモデルで表現される入力データを合成し、成果ドキュメントを出力するソフトウェアまたはソフトウェアコンポーネント
・テンプレートおよび成果ドキュメントは複数のこともある
HTML と プログラム が疎結合になる
疎結合とは?
・細分化された個々のコンポーネント同士の結びつきが比較的緩やかで、独立性が強い状態のこと
特殊な文法を理解する必要が生じる
・そのテンプレートエンジン専用の特殊な文法で記述しなければいけない
HTML が汚れてしまうので、確認がしづらくなる
・HTML に異物が混じるので、コーディング時に HTML 単体をブラウザ表示しての確認がしづらくなる
ライブラリへの依存
・ライブラリの導入が必要だが、テンプレートエンジンには流行り廃りがあるため、不安定な土台に依存する危険がある
PHP
・Blade
・twig
・Smarty
JavaScript
・JsRender
・Underscore.js
・Handlebars
・Transparency
Node.js
・EJS
Ruby, JavaScript, Python, Erlang,node.js, PHP, Perl, Perl6,Objective-C, Java, C#/.NET,Android, C++, Go, Luaなど
・Mustache
・Template Engine
テンプレートと呼ばれるHTMLのひな形を元にプログラムで加工し、画面に出力するためのライブラリ
・プログラムのファイルの中で、テンプレートを読み込んで解析し、そのテンプレートに任意の値を当てはめて、出力すること
・テンプレートと呼ばれる雛形と、あるデータモデルで表現される入力データを合成し、成果ドキュメントを出力するソフトウェアまたはソフトウェアコンポーネント
・テンプレートおよび成果ドキュメントは複数のこともある
導入メリット
HTML と プログラム が疎結合になる
疎結合とは?
・細分化された個々のコンポーネント同士の結びつきが比較的緩やかで、独立性が強い状態のこと
導入デメリット
特殊な文法を理解する必要が生じる
・そのテンプレートエンジン専用の特殊な文法で記述しなければいけない
HTML が汚れてしまうので、確認がしづらくなる
・HTML に異物が混じるので、コーディング時に HTML 単体をブラウザ表示しての確認がしづらくなる
ライブラリへの依存
・ライブラリの導入が必要だが、テンプレートエンジンには流行り廃りがあるため、不安定な土台に依存する危険がある
テンプレートエンジンライブラリ
PHP
・Blade
・twig
・Smarty
JavaScript
・JsRender
・Underscore.js
・Handlebars
・Transparency
Node.js
・EJS
Ruby, JavaScript, Python, Erlang,node.js, PHP, Perl, Perl6,Objective-C, Java, C#/.NET,Android, C++, Go, Luaなど
・Mustache