-想

移動で車運転しているときとか、動物の檻の前で娘が動かなくなったときとかに、ふと、今日時点でMayaの何が見えてないかということを思索してみました。
その結果一つ目は、設定XMLのバリデーション。スキーマバリデーションをやりたいところですが、Mayaの設定XMLはかなり柔らかい仕様なのでどうすっかなと。パーサーのスキーマバリデーションに、TLDを見てバリデーションを行ったり、ネイティブJSTLのような独自レゾルバライブラリ添付されるライブラリ仕様よりをバリデーションを行うメカニズムを開発しようと思っていますが、目先よくわからん。
二つ目はリクエストURLから適切な設定XMLファイルやテンプレートファイルを検索する仕組みは、現在のところtemplateRootという設定+コンテキスト相対パスなのですが、ここを抽象化してXPathなどで(XPath/XPointerとは限らない)ひとつの体系に組み入れようと考えています。Jarファイルの中や/WEB-INF/classesの相対パスもありますし、逆にテンプレートファイルの一部を切り出してサービスするような仕組みも考えています。これらはAjaxのようなものへのコンテンツ提供アプローチ(XmlHttpRequestの埋め込みを行ってサービスエントリーポイントを作る、というところではない)と、Portlet対応も含みます。Mayaではフロー制御はしませんが、URLに対するコンテンツサービスは行っているので、ここをうまく作れるとエンジンの価値レベルが変ると感じてます。が、これもまだ見えん。
三つ目はクライアントサイドJavaScript記述ロジック。Tapestryの該当機能はとても強力なのですが、練りこみが惜しいところがあるのと、記述が難しくかなりのTape猛者じゃないと作れないモノなんで、そこを量産の効くEasyなものにしたいなと。が、これも仕様案が見えてない。TemplateProcessorのレベルでこの機能をサポートしないと、一般ページ、ImplicitPage、カスタムプロセッサ、すべてのレベルで汎用な仕様にならないのが難しいところです。
一方で、ふつうにピュアなHTMLを食って魔法をかけるところはできてるし、負荷テストかけてもガッチリ動くので、いま進行中の心臓手術とその他コードの整理を行う以外はプロトタイプの域を超えたかなと自負しています。