理系学生日記

おまえはいつまで学生気分なのか

PoEAA: Template View

Template View パターンは、静的 HTML と同じ形で HTML を記述した上で、動的に変更するようなところにのみマーカーを埋め込むパターンです。 静的なところは WYSIWYG のエディタで記述でき、動的な部分は実際にレンダリングする際に、マーカーがプログラムの実装と連携する形でコンテンツを描画します。

この「マーカー」というのにもいくつか種類がありますが、通常はこのマーカーを 1 から作るということはありません。これを如何に効率的に使うか、また、新しいマーカーを(プラットフォームが提供する形式に沿って)作るか、ということが求められます。 一般的な例で言うと、ASP/JSP/PHP などがあります。 これらの技術にも、条件分岐やループを記述する専用のマーカーが存在していますが、これらを導入する際は、ページの側にロジックを持たせないように注意しなければなりません。ページの側にロジックを持たせると、同種のロジックが個々のページに散らばる等、望ましくない結果を招きます。

Template View の強みは、(プログラマではなく)デザイナーがページ構造を見ながら記述が可能なことです。Template View パターンが広まっている今、これが実現できているかについては多説ありますが…。 逆に、その弱みは、

  1. 容易にロジックが書けてしまうため、その後の保守が極めて難解になり得ること
  2. Web サーバと密結合することが多いため、テストがしにくい。(この点では、Transform View の方がテスト容易性がある)

となります。