Yapc::Asia 2011 rejectConf Slide
Upcoming SlideShare
Loading in...5
×
 

Yapc::Asia 2011 rejectConf Slide

on

  • 1,619 views

 

Statistics

Views

Total Views
1,619
Slideshare-icon Views on SlideShare
981
Embed Views
638

Actions

Likes
0
Downloads
1
Comments
0

4 Embeds 638

http://yapcasia.org 460
http://d.hatena.ne.jp 174
http://webcache.googleusercontent.com 3
https://www.google.co.jp 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Yapc::Asia 2011 rejectConf Slide Yapc::Asia 2011 rejectConf Slide Presentation Transcript

    • 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=&quot;hoge&quot;>
      • <TMPL_LOOP NAME=&quot;hoge&quot;>
      • <TMPL_INCLUDE NAME=&quot;hoge&quot;>
      • <TMPL_IF NAME=&quot;hoge&quot;>
      • <TMPL_UNLESS NAME=&quot;hoge&quot;>
      • <TMPL_ELSE>
    • ■ Template::Toolkit
    • ■ Template::Toolkit 592 ページ
    • ■ Template::Toolkit 592 ページ
    • ■ Template::Toolkit 592 ページ 390 ページ
    • ■ HTML::Template の基礎
      • <TMPL_VAR NAME=&quot;hoge&quot;>
      • <TMPL_LOOP NAME=&quot;hoge&quot;>
      • <TMPL_INCLUDE NAME=&quot;hoge&quot;>
      • <TMPL_IF NAME=&quot;hoge&quot;>
      • <TMPL_UNLESS NAME=&quot;hoge&quot;>
      • <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=&quot;hoge&quot;>
      • <TMPL_LOOP NAME=&quot;hoge&quot;>
      • <TMPL_INCLUDE NAME=&quot;hoge&quot;>
      • <TMPL_IF NAME=&quot;hoge&quot;>
      • <TMPL_UNLESS NAME=&quot;hoge&quot;>
      • <TMPL_ELSE>
    • ■ HTML::Template の基礎
      • <TMPL_VAR NAME=&quot;hoge&quot;>
      • <TMPL_LOOP NAME=&quot;hoge&quot;>
      • <TMPL_INCLUDE NAME=&quot;hoge&quot;>
      • <TMPL_IF NAME=&quot;hoge&quot;>
      • <TMPL_UNLESS NAME=&quot;hoge&quot;>
      • <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) を使うとても些細な理由