やっぱりテンプレートエンジンかなぁ。

今、自分でやる気があって作れそうなものといったら、テンプレートエンジンかなぁと思う。直感的にまだ良いものが作れそうだからだ。まだまだ作業効率を上げることができる環境を用意できるはずだ。開発に踏み切れないでいたのは、問題点や仕様を明確にできないでいたからなので、明確にしてみよう。IPA未踏ソフトウェア創造事業に挑戦する気持ちで頑張ってみよう。

現在あるテンプレートエンジンの問題点

  • 多くのテンプレートエンジンはページの仕様を持たない。このことはデザイン変更時の作業の効率が落ちることを意味する。
  • プログラムがないとテンプレートのテストができない。デザイン終了後、テンプレートの作成に入るわけだが、プログラムの完成待ちになってしまう。
  • テンプレートにロジックが入る場合がある。ロジックが入るとデザイナーはデザインしずらい。テンプレートは構造と位置を指定できれば十分だ。
  • フォーム項目を認識させるのに特殊なタグが必要なものがある。これは、通常のHTMLエディタで編集しずらい。
  • テンプレートのタグに識別する名前を付けるのが大変だ。
  • フォーム項目はnameだけで解決できるはずなのにIDをつけなくてはならなかったりする。
  • 作業分担してプログラムを作成する場合、プログラマがダミーのテンプレートをつくらなくてはならない。

解決方法

  • ページ仕様を持つことでデザイン変更時の作業の効率化を行う。ページ仕様はない場合自動生成する機能をもつことで、仕様作成のコストを最小限にする。
  • ページ仕様とデータからテンプレートのテストを行うことができるプログラムを用意する。ページ仕様、データはテンプレートから生成することもでき、編集することもできる。
  • テンプレートにはロジックを入れず、構造と位置情報のみを入れる仕組みとする。
  • フォーム項目の識別はそのままHTMLの仕様を利用する。
  • テンプレートのタグに名前をつける専用エディタを用意する。
  • フォーム項目はnameだけで解決する。
  • プログラム出力データから、ページ仕様、テンプレートの自動生成を行う。

その他、追加項目

  • ページ仕様はデータと同じような形にすることで覚えやすくする。
  • ページ仕様のまとまりから、プログラムの雛型を生成する機能を作る。
  • 自動テンプレート生成用の、元HTMLデータを用意することでデザインされた自動テンプレート出力を行う。
  • テンプレート、ページ仕様、データ、プログラムの自動生成系のものはページ仕様を介する形で作ることですっきり作る。
  • テンプレートとページ仕様の違いを検出するツール
  • データとページ仕様の違いを検出するツール
  • XMLに似た言語だけど、HTMLタグのみ文字列扱いされる独自XMLパーサを使うことにより、データに、HTMLタグを簡単に使うことができるようにする。あいう<br>えおといった記述を可能にする。<br/>や&lt;br&gt;としなくていいことが利点になるのではないかな。

一人での開発の場合

開発初期段階ではプログラムだけを書く。ページ仕様とテンプレートは自動生成される。場合によって出力は変わるのでプログラムができたら、ページ仕様とテンプレートを変更してできあがり。

一人での開発の場合2

ページ仕様をゴリゴリ書き、プログラムの雛型を自動生成し、一個一個直していく。ページ仕様も場合によって変更していく。テンプレートは自動生成に任せる。

プログラマとデザイナーに分かれての開発

プログラマが、ページ仕様を先に作る。プログラマはページ仕様に基づきプログラムのみを作成する。デザイナーはHTMLデザインをする。デザイナーはHTMLのデザインが終了後、ページ仕様に基づき、テンプレートを作成する。テンプレートを作成するときはページ仕様から自動生成されたHTMLとデータを参考に行い、テスト用プログラムを用いて作成する。最後にデザインとプログラムをあわせて終了。

デザイン変更

ページ仕様と生成HTMLを見ながらデザイン変更するだけ。