TT でもなく XSlate でもなくHTML::Template(::Pro) を使うとても些細な理由
@s_ohira
■ 自己紹介
大平 誠二 ( おおひら せいじ ) 渋谷でモバイル関連のお仕事をしていま
す twitter: @s_ohira
■ アジェンダ
使い始めた経緯や基本的な使い方など HTML::Template を使うとても些細な理由 業務で起こったとても些細な事例 まとめ
■ 使い始めた経緯
きっかけは MovableType(MT::Template) MT タグが便利そうだった http://www.movabletype.jp
■ 目的
テンプレートエンジンの導入 CMS も使えればいいな
■ 目的
テンプレートエンジンの導入 CMS も使えればいいな パフォーマンスを出せず
■ 目的
テンプレートエンジンの導入 CMS も使えればいいな パフォーマンスを出せず HTML::Template を使おう
■HTML::Template の基礎
<TMPL_VAR NAME="hoge"> <TMPL_LOOP NAME="hoge"> <TMPL_INCLUDE NAME="hoge"> <TMPL_IF NAME="hoge"> <TMPL_UNLESS NAME="hoge"> <TMPL_ELSE>
■Template::Toolkit
592 ページ
■Template::Toolkit
592 ページ
■Template::Toolkit
592 ページ 390 ページ
■Template::Toolkit
■HTML::Template の基礎
<TMPL_VAR NAME="hoge"> <TMPL_LOOP NAME="hoge"> <TMPL_INCLUDE NAME="hoge"> <TMPL_IF NAME="hoge"> <TMPL_UNLESS NAME="hoge"> <TMPL_ELSE>
長く使ってきた
なぜ、 HTML::Template なのか?
■ 使ったことのあるテンプレートエンジン
MT::Template HTML::Template Text::Template Template::Toolkit JSP FreeMarker Velocity
Tapestry Nexaweb JSF jTemplates jQueryTemplate Smarty
■ 結局、 HTML::Template に戻る
必要十分な基本機能
長く使ってきた 長く使われてきた
なぜ、 HTML::Template なのか?
■ 長く使われてきた
■ 長く使われてきた
■CPAN の検索結果
■CPAN の検索結果
検索結果 419 件
■CPAN の検索結果
■CPAN の検索結果
検索結果 143 件
■ 長く使われてきた
関連モジュールが豊富
■ 長く使われてきた
関連モジュールが豊富 シンプルなビルトイン 豊富な拡張性
長く使ってきた 長く使われてきた ポータビリティ
なぜ、 HTML::Template なのか?
■ ポータビリティ
多くの言語に移植されている
■ ポータビリティ
多くの言語に移植されている Java PHP JavaScript Ruby Python
■ ポータビリティ
多くの言語に移植されている Java PHP JavaScript Ruby Python
リソースが流用できる
長く使ってきた 長く使われてきた ポータビリティ VIEW の本番化の権限
なぜ、 HTML::Template なのか?
■ VIEW の本番化の権限
SIer の仕事 コードフリーズ
■ VIEW の本番化の権限
SIer の仕事 コードフリーズ B2B から B2C VIEW のデプロイが頻繁
■ 実務で遭遇した事例 1
期間コントロールの失敗
■ 実務で遭遇した事例 1
DB の登録内容 /SQL プログラム側の定数 / 変数 設定ファイル
期間コントロールの失敗
■ 実務で遭遇した事例 1
原因が増える
DB の登録内容 /SQL プログラム側の定数 / 変数 設定ファイル テンプレート変数 ☚NEW!!
期間コントロールの失敗
■ 実務で遭遇した事例 2
原因は IF 文 ELSE 節が存在しない デフォルトを設定する
画面が真っ白
■ 実務で遭遇した事例 3
サイドメニューの配列
プログラム側で設定されていないテンプレート変数
■ 実務で遭遇した事例 3
サイドメニューの配列 見つからない
プログラム側で設定されていないテンプレート変数
■ 実務で遭遇した事例 3
サイドメニューの配列 見つからない 別のテンプレートで設定された変数 プログラムで管理していない変数 複雑化
プログラム側で設定されていないテンプレート変数
■ 実務で遭遇した事例 4
サービス退会が出来なくなった 月額課金 退会ページに行けない
■ 実務で遭遇した事例 4
サービス退会が出来なくなった 月額課金 退会ページに行けない 退会画面に遷移させるパラメタ VIEW のコピペミス
■ 実務で遭遇した事例 4
サービス退会が出来なくなった 月額課金 退会ページに行けない 退会画面に遷移させるパラメタ VIEW のコピペミス 単純な HTML の問題
■ 実務で遭遇した事例
大半がデバッグ不足
修正頻度の高さ 急いで作ったケース ロジックの追加 知らないうちに本番化 テストコードが困難
■ 多機能なテンプレートエンジン
プログラム修正同然のことも可能
■ 多機能なテンプレートエンジン
プログラム修正同然のことも可能
chmod 0777
■ HTML::Template の基礎
<TMPL_VAR NAME="hoge"> <TMPL_LOOP NAME="hoge"> <TMPL_INCLUDE NAME="hoge"> <TMPL_IF NAME="hoge"> <TMPL_UNLESS NAME="hoge"> <TMPL_ELSE>
■ HTML::Template の基礎
<TMPL_VAR NAME="hoge"> <TMPL_LOOP NAME="hoge"> <TMPL_INCLUDE NAME="hoge"> <TMPL_IF NAME="hoge"> <TMPL_UNLESS NAME="hoge"> <TMPL_ELSE>
■ HTML::Template
シンプルなテンプレートエンジン
■ CPAN の検索結果
検索結果 419 件
■ 多様な拡張性
必要になったら拡張モジュールを使う HTML::Template::Set HTML::Template::EXPR and more…
■ 多様な拡張性
必要になったら拡張モジュールを使う HTML::Template::Set HTML::Template::EXPR and more…
最初から最大の権限を与えない
■ 多様な拡張性
必要になったら拡張モジュールを使う HTML::Template::Set HTML::Template::EXPR and more…
最初から最大の権限を与えない 必要になってから与えることは可能
■ 必要十分な要素
VAR IF LOOP
■ なぜテンプレートエンジンを使うのか?
ロジックとデザインの分離
■ なぜテンプレートエンジンを使うのか?
ロジックとデザインの分離 出来てる?
■ デザインの分離
テンプレートに閉じ込めただけ デザインがロジックに混入していないか?
■ なぜテンプレートエンジンを使うのか?
ロジックとデザインの分離 出来てる?
■ まとめ
シンプルでも必要十分 デザインにロジックを混入させない 後から拡張するという選択肢
■ まとめ
シンプルでも必要十分 デザインにロジックを混入させない 後から拡張するという選択肢 でも、便利なものはやっぱり使いたい! 選択肢を狭めるためのものではありませ
ん!
ありがとうございました!
TT でもなく XSlate でもなくHTML::Template(::Pro) を使うとても些細な理由
Recommended