ついでなのでアイデアメモ
例によってまとまってないし知識もあいかわらず不足なのだけど……
- テンプレートエンジンを関数型言語として扱う話関連で参考になりそうなエントリ
- 圏論やモナドが、どうして文書処理やXMLと関係するのですか? - 檜山正幸のキマイラ飼育記 (はてなBlog)
- どうやら圏論を勉強するべきなようだ。
- 遅延ローディングを避ける為にリレーション先を先読みすることについて
- ユーザリクエストを引数、レスポンスを値とする大きな関数と考えると、DBアクセス部分とレンダリング部分に手動で関数を分割する問題と考えられる。
- 「遅延ローディングを遅延評価で解決」はその関数分割を自動でやるということ。DBアクセスを一元化できるなら遅延評価である必要は無い。
- DB操作(関係代数)も集合に関する問題だし……一緒に扱うとしたらやっぱり圏論?
- テンプレートエンジンで出したHTMLを、出すのに使用したテンプレートを使ってパース出来ないか
- あえて言えば逆関数。こういうのも圏(略
- もちろん非可逆な変換だと元のデータは復元出来ない。if test="${x lt; 3}"などから分かるのはxが3以上かどうかだけ。←十分だ
- データ収集(Web::Scraperみたいな)的な使い方もできるし、テストを書くのにも使えそう
- 「XSLT 逆変換」でぐぐったら一杯あるなあ……
- 評価ベースのテンプレートエンジンだと良そうな点
- 変数の依存性が明確だと、レスポンスのパーシャルなキャッシングが自動で出来そう。
- 例えば、何らかのマスタ情報にのみ依存する箇所→そのマスタ情報が変わらない間はまったく同じ出力
- 簡約とか部分適用とかそういう問題っぽい………やっぱり(略
- 変数の依存性が明確だと、レスポンスのパーシャルなキャッシングが自動で出来そう。