229 Views
February 26, 24
スライド概要
2012/09/19 に Hokkaido.pm Casual#5 で発表したスライドです。
I like 🚌 and ☕
札幌でテンプレート 株式会社fonfun 尾形 鉄次 (OGATA Tetsuji) Twitter: @xtetsuji 2012/09/19 Hokkaido.pm Casual#5
自己紹介
自己紹介 • 尾形 鉄次 (OGATA Tetsuji) • Twitter: @xtetsuji • Blog: http://post.tetsuji.jp/ • 得意技: mod_perl • Perl歴9年だけど知識が偏っているので、 今になって色々勉強しています><
自己紹介 • Hokkaido.pmには、#5から毎回(#7まで)出席 • Hokkaido.pm Casual は今回 #5 が初参加 • 大学(1997年)から上京、就職後もずっと東 京 • 実家が帯広で今回帰省ついでに寄りました • Hokkaido.pm は私の故郷です!
所属紹介 • 株式会社fonfun(フォンファン) http://www.fonfun.co.jp/ • 主力製品:リモートメール http://rmail.jp/
Casualの雰囲気がよく 分からないので緩く やらせてもらいます
今回のテーマ: テンプレート入門
Perlのテンプレート • 入社当時の2003年からPerl使っていた→ 当時は簡単なログ処理程度のスキル • 2004年頃からウェブ開発を任された • まさかプログラマになるとは… • ウェブ開発言語はもちろんPerl
Perlのテンプレート • 2004年使ったのは社内で作られた社内 独自のテンプレートエンジン • 事実上マニュアル無し(´Д⊂ヽ • 新規のサイトでの使用はあまり考え られた設計ではなかった
Perlのテンプレート • 2005年頃から開発者は自分一人で新規 開発を行っていくことになった • まだWAF全盛の時代ではなかったの で、最初は見よう見まねで普通のPerl CGI (not mod_perl) • HTML::Template を採用
HTML::Template
HTML::Template • Perlに昔からあるテンプレートエンジン • 他の高性能なテンプレートエンジンが 後発で出てきた今も良く使われている • 構文がHTMLっぽいのでそれ以外で使う と違和感があるかも程度
HTML::Template
HTML::Template • HTML::Templateは1999年のリリース後の 早い段階でテンプレートキャッシュを 搭載していた (mod_perl永続環境等で) • キャッシュ→CPU(I/O)節約 • 非キャッシュ→メモリ節約
HTML::Template • 規模の大きいウェブアプリケーション の場合、テンプレートファイルの読み 込みにコストがかかるケースでは キャッシュが有効 • 前述の自社テンプレートエンジンも キャッシュをサポートしています
設定ファイルとか • 一部分だけが違うだけの大量の設定 ファイルを一括生成する場合 • 最近はこの手のデプロイツールも隆盛 • Perlではないもののシンプルなコマンド ラインツールのm4が流用できるかも
m4
m4 • 元々はC言語等のプリプロセッサ • 古い古いツールなので、build-essentialな 環境が入っていれば入っているはず • 真面目に使おうとすると大変だけど、 表面的に使うだけでも面白い
m4
# 仮想的な設定ファイル - some.conf.m4
hostname: __HOSTNAME__
username: someuser
# ...以下略
#!/bin/bash
for hostname in sv{01..99} ; do
m4 -D __HOSTNAME__=$hostname \
some.conf.m4 > some.conf.$hostname
done
m4 • C言語のプリプロセッサ等として高度に 利用されるm4だけど、こんな至極単純 な作業用途に使ってもOKでしょう • Perlじゃないけど、道具は適材適所 • モダンな設定ファイルデプロイツール もウォッチしたいですね
他のテンプレートの 使い心地はどうだろう • 様々なテンプレートエンジンがある • HTML::Template • Template-Toolkit (TT) • Text::Xslate …等々 • 時代によって流行りは様々
他のテンプレートの 使い心地はどうだろう • ポストモダンなWAFとセットになって いたりするテンプレートエンジン等、 みなさんのオススメや最近の流行りを 聞いてみたいです • Text::Xslateとか名前だけ知っているだけ で実際に使ったこと無い怠け者です
ご清聴 ありがとうございました