札幌でテンプレート #hokkaidopm

231 Views

February 26, 24

スライド概要

2012/09/19 に Hokkaido.pm Casual#5 で発表したスライドです。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

札幌でテンプレート 株式会社fonfun 尾形 鉄次 (OGATA Tetsuji) Twitter: @xtetsuji 2012/09/19 Hokkaido.pm Casual#5

2.

自己紹介

3.

自己紹介 • 尾形 鉄次 (OGATA Tetsuji) • Twitter: @xtetsuji • Blog: http://post.tetsuji.jp/ • 得意技: mod_perl • Perl歴9年だけど知識が偏っているので、 今になって色々勉強しています><

4.

自己紹介 • Hokkaido.pmには、#5から毎回(#7まで)出席 • Hokkaido.pm Casual は今回 #5 が初参加 • 大学(1997年)から上京、就職後もずっと東 京 • 実家が帯広で今回帰省ついでに寄りました • Hokkaido.pm は私の故郷です!

5.

所属紹介 • 株式会社fonfun(フォンファン) http://www.fonfun.co.jp/ • 主力製品:リモートメール http://rmail.jp/

6.

Casualの雰囲気がよく 分からないので緩く やらせてもらいます

7.

今回のテーマ: テンプレート入門

8.

Perlのテンプレート • 入社当時の2003年からPerl使っていた→ 当時は簡単なログ処理程度のスキル • 2004年頃からウェブ開発を任された • まさかプログラマになるとは… • ウェブ開発言語はもちろんPerl

9.

Perlのテンプレート • 2004年使ったのは社内で作られた社内 独自のテンプレートエンジン • 事実上マニュアル無し(´Д⊂ヽ • 新規のサイトでの使用はあまり考え られた設計ではなかった

10.

Perlのテンプレート • 2005年頃から開発者は自分一人で新規 開発を行っていくことになった • まだWAF全盛の時代ではなかったの で、最初は見よう見まねで普通のPerl CGI (not mod_perl) • HTML::Template を採用

11.

HTML::Template

12.

HTML::Template • Perlに昔からあるテンプレートエンジン • 他の高性能なテンプレートエンジンが 後発で出てきた今も良く使われている • 構文がHTMLっぽいのでそれ以外で使う と違和感があるかも程度

13.

HTML::Template

14.

HTML::Template • HTML::Templateは1999年のリリース後の 早い段階でテンプレートキャッシュを 搭載していた (mod_perl永続環境等で) • キャッシュ→CPU(I/O)節約 • 非キャッシュ→メモリ節約

15.

HTML::Template • 規模の大きいウェブアプリケーション の場合、テンプレートファイルの読み 込みにコストがかかるケースでは キャッシュが有効 • 前述の自社テンプレートエンジンも キャッシュをサポートしています

16.

設定ファイルとか • 一部分だけが違うだけの大量の設定 ファイルを一括生成する場合 • 最近はこの手のデプロイツールも隆盛 • Perlではないもののシンプルなコマンド ラインツールのm4が流用できるかも

20.

m4 • 元々はC言語等のプリプロセッサ • 古い古いツールなので、build-essentialな 環境が入っていれば入っているはず • 真面目に使おうとすると大変だけど、 表面的に使うだけでも面白い

21.
[beta]
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

22.

m4 • C言語のプリプロセッサ等として高度に 利用されるm4だけど、こんな至極単純 な作業用途に使ってもOKでしょう • Perlじゃないけど、道具は適材適所 • モダンな設定ファイルデプロイツール もウォッチしたいですね

23.

他のテンプレートの 使い心地はどうだろう • 様々なテンプレートエンジンがある • HTML::Template • Template-Toolkit (TT) • Text::Xslate …等々 • 時代によって流行りは様々

24.

他のテンプレートの 使い心地はどうだろう • ポストモダンなWAFとセットになって いたりするテンプレートエンジン等、 みなさんのオススメや最近の流行りを 聞いてみたいです • Text::Xslateとか名前だけ知っているだけ で実際に使ったこと無い怠け者です

25.

ご清聴 ありがとうございました