やっぱりテンプレートエンジンかなぁ。
今、自分でやる気があって作れそうなものといったら、テンプレートエンジンかなぁと思う。直感的にまだ良いものが作れそうだからだ。まだまだ作業効率を上げることができる環境を用意できるはずだ。開発に踏み切れないでいたのは、問題点や仕様を明確にできないでいたからなので、明確にしてみよう。IPAの未踏ソフトウェア創造事業に挑戦する気持ちで頑張ってみよう。
現在あるテンプレートエンジンの問題点
- 多くのテンプレートエンジンはページの仕様を持たない。このことはデザイン変更時の作業の効率が落ちることを意味する。
- プログラムがないとテンプレートのテストができない。デザイン終了後、テンプレートの作成に入るわけだが、プログラムの完成待ちになってしまう。
- テンプレートにロジックが入る場合がある。ロジックが入るとデザイナーはデザインしずらい。テンプレートは構造と位置を指定できれば十分だ。
- フォーム項目を認識させるのに特殊なタグが必要なものがある。これは、通常のHTMLエディタで編集しずらい。
- テンプレートのタグに識別する名前を付けるのが大変だ。
- フォーム項目はnameだけで解決できるはずなのにIDをつけなくてはならなかったりする。
- 作業分担してプログラムを作成する場合、プログラマがダミーのテンプレートをつくらなくてはならない。
解決方法
- ページ仕様を持つことでデザイン変更時の作業の効率化を行う。ページ仕様はない場合自動生成する機能をもつことで、仕様作成のコストを最小限にする。
- ページ仕様とデータからテンプレートのテストを行うことができるプログラムを用意する。ページ仕様、データはテンプレートから生成することもでき、編集することもできる。
- テンプレートにはロジックを入れず、構造と位置情報のみを入れる仕組みとする。
- フォーム項目の識別はそのままHTMLの仕様を利用する。
- テンプレートのタグに名前をつける専用エディタを用意する。
- フォーム項目はnameだけで解決する。
- プログラム出力データから、ページ仕様、テンプレートの自動生成を行う。
その他、追加項目
- ページ仕様はデータと同じような形にすることで覚えやすくする。
- ページ仕様のまとまりから、プログラムの雛型を生成する機能を作る。
- 自動テンプレート生成用の、元HTMLデータを用意することでデザインされた自動テンプレート出力を行う。
- テンプレート、ページ仕様、データ、プログラムの自動生成系のものはページ仕様を介する形で作ることですっきり作る。
- テンプレートとページ仕様の違いを検出するツール
- データとページ仕様の違いを検出するツール
- XMLに似た言語だけど、HTMLタグのみ文字列扱いされる独自XMLパーサを使うことにより、データに、HTMLタグを簡単に使うことができるようにする。あいう<br>えおといった記述を可能にする。<br/>や<br>としなくていいことが利点になるのではないかな。
一人での開発の場合
開発初期段階ではプログラムだけを書く。ページ仕様とテンプレートは自動生成される。場合によって出力は変わるのでプログラムができたら、ページ仕様とテンプレートを変更してできあがり。
一人での開発の場合2
ページ仕様をゴリゴリ書き、プログラムの雛型を自動生成し、一個一個直していく。ページ仕様も場合によって変更していく。テンプレートは自動生成に任せる。
プログラマとデザイナーに分かれての開発
プログラマが、ページ仕様を先に作る。プログラマはページ仕様に基づきプログラムのみを作成する。デザイナーはHTMLデザインをする。デザイナーはHTMLのデザインが終了後、ページ仕様に基づき、テンプレートを作成する。テンプレートを作成するときはページ仕様から自動生成されたHTMLとデータを参考に行い、テスト用プログラムを用いて作成する。最後にデザインとプログラムをあわせて終了。
デザイン変更
ページ仕様と生成HTMLを見ながらデザイン変更するだけ。