テンプレートエンジンNight というイベントで Text::Xslate を使ってテンプレートの静的解析とリファクタリングを行った知見について発表した。
テンプレートエンジンを使ってこういうことができる、というような内容から、テンプレートエンジン作った・作ってますというような内容まで、トークの内容に幅があっておもしろかった。
トークで話さなかったこと
使っている変数の宣言コメントはどうやって抽出するのか
正規表現です。
変数として定義することも考えられるし、実際にそうすることも考えてみた。
[% SET INHERITED_VARS = ['post'] %]
しかし既にあるコメントによる宣言を書き換える手間や、現状を把握したいという目的からは逸れてしまうことから見送った。
テンプレートのモジュール化 (分割) の指針
早すぎた抽象化という問題がある (あった) ということは認識しているし、今が最高の状態だと思っているわけではない。
既存のテンプレートのコードを書き換える前に現状を把握するために静的解析を行おう、というモチベーションがあってトークの内容に繋がる、というかんじです。