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

Like this? Share it with your network

Share

Yapc::Asia 2011 rejectConf Slide

on

  • 1,665 views

 

Statistics

Views

Total Views
1,665
Views on SlideShare
1,015
Embed Views
650

Actions

Likes
0
Downloads
1
Comments
0

4 Embeds 650

http://yapcasia.org 471
http://d.hatena.ne.jp 175
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 Presentation Transcript

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