2009-09-11 / YAPC::Asia 2009

2,183 views
2,061 views

Published on

「小規模WebサイトのためのCGIフレームワーク『Sabae』」という表題で発表.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,183
On SlideShare
0
From Embeds
0
Number of Embeds
126
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2009-09-11 / YAPC::Asia 2009

  1. 1. 小規模Webサイトのための CGIフレームワーク「Sabae」 LLP メガネラボ 岩田 享 IWATA Susumu / issm [email_address]
  2. 2. <ul><li>自己紹介
  3. 3. 前置き
  4. 4. Sabae の紹介
  5. 5. Sabae の概説
  6. 6. デモ
  7. 7. まとめと今後 </li></ul>アジェンダ
  8. 8. 自己紹介
  9. 9. 自己紹介 <ul><li>岩田 享 / issm
  10. 10. LLP メガネラボ @名古屋
  11. 11. 小規模な Web サイト構築
  12. 12. 思いつきの Web サービス公開 </li><ul><li>http://www.nicograph.jp/
  13. 13. http://www.dqwm.net/ </li></ul><li>Perl , JavaScript </li></ul>
  14. 14. 自己紹介 <ul><li>ずっと「 CGI 」的( but not Kentist )
  15. 15. ZIGOROu さん「 CPAN 使わないと」 @ YAPC::Asia 2008
  16. 16. モダン Perl 入門中
  17. 17. テストとか Catalyst とか Moose とか HTTP::Engine とか PSGI/Plack とか -> これから勉強>< </li></ul>
  18. 18. 前置き
  19. 19. 前置き <ul><li>メガネラボスタイル </li><ul><li>テキストエディタ(画像以外) </li></ul></ul>
  20. 20. 前置き <ul><li>更新の度に HTML ごと修正メンドイ
  21. 21. 一覧系の HTML 修正メンドイ
  22. 22. 年越しのコピーライト年修正メンドイ
  23. 23. -> CGI な動的化 </li></ul>
  24. 24. 前置き <ul><li>ページ追加の度にヘッダ・フッタコピー
  25. 25. お知らせを複数ページで表示
  26. 26. Perl と HTML とのスパイラルなソース
  27. 27. -> テンプレートの利用 </li></ul>
  28. 28. 前置き <ul><li>設定情報を共有したい
  29. 29. シンプルなフォーマット
  30. 30. わざわざパーサとか作ってられない
  31. 31. -> YAML による設定ファイル </li></ul>
  32. 32. 前置き <ul><li>Cool URL 萌え </li><ul><li>mod_rewrite 多用 </li><ul><li>.htaccess がカオス </li></ul></ul><li>ページとともに CGI ファイルが増加 -> リクエスト URL によって動作振り分け -> 単一の CGI ファイルのみ </li></ul>
  33. 33. e.t.c.
  34. 34. そんな不満を ちょっとだけなくしたい
  35. 35. メガネラボでつ [ くか ] っている フレームワーク
  36. 36. メガネ ラボでつ [ くか ] っている フレーム ワーク
  37. 37. 引用: http://www.trafficsignal.jp/~yuki_website/highway-hokuriku-7-3.htm
  38. 38. 「 Sabae 」
  39. 39. Sabae の紹介
  40. 40. Sabae の紹介 / 特徴
  41. 41. Sabae の紹介 / 特徴 <ul><li>キーワードは「アクション」
  42. 42. 名前から構成要素を自動判別 </li></ul>
  43. 43. Sabae の紹介 / 特徴 <ul><li>URL から「アクション」へのマッピング
  44. 44. ルールを YAML で定義 </li></ul>
  45. 45. Sabae の紹介 / 特徴 <ul><li>MVC っぽく分離 </li></ul>
  46. 46. Sabae の紹介 / 特徴 <ul><li>コマンドラインによるセットアップ
  47. 47. コマンドラインによる構成要素の追加 </li></ul><ul>※ ethna の影響? </ul>% sabae.pl -–setup-project hoge % sabae.pl --create-action foo_bar
  48. 48. Sabae の紹介 / 動作環境
  49. 49. Sabae の紹介 / 動作環境 <ul><li>Apache + CGI + mod_rewrite
  50. 50. CPAN モジュール追加可能 </li><ul><li>さくらの共用は OK (スタンダード) -> メガネラボの Web サイト
  51. 51. VPS </li></ul><li>Windows 上では未確認 </li></ul>
  52. 52. <ul><li>主な使用モジュール </li><ul><li>Class::Accessor::Fast </li><ul><li>たいていのクラスのベース
  53. 53. Class::Accessor::Fast::XS も </li></ul><li>YAML::Syck / JSON::Syck </li><ul><li>設定ファイル読み込み
  54. 54. Ajax レスポンス </li></ul><li>Template </li></ul></ul>Sabae の紹介 / 動作環境
  55. 55. Sabae の紹介 / 動作環境 <ul><li>lighttpd + FastCGI + mod_rewrite </li><ul><li>一部の動作のみ確認 </li></ul></ul>
  56. 56. Sabae の概説
  57. 57. Sabae の概説 / コントローラ
  58. 58. Sabae の概説 / コントローラ <ul><li>入力:リクエスト
  59. 59. 出力:レスポンス </li></ul>
  60. 60. Sabae の概説 / コントローラ
  61. 61. Sabae の概説 / URL/ アクションマッピング
  62. 62. Sabae の概説 / URL/ アクションマッピング <ul><li>対応規則を YAML ファイルで定義 </li></ul>
  63. 63. Sabae の概説 / URL/ アクションマッピング
  64. 64. Sabae の概説 / URL/ アクションマッピング
  65. 65. Sabae の概説 / URL/ アクションマッピング
  66. 66. Sabae の概説 / モデルと DI (仮)
  67. 67. Sabae の概説 / モデルと DI (仮) <ul><li>データソース操作のメソッド群
  68. 68. 「 DI 」がデータソースの入出力を仲介 -> データソースインタフェイス(仮) </li></ul>
  69. 69. Sabae の概説 / モデルと DI (仮) <ul><li>Sabae::DI::YAML -> YAML ファイルとのやりとり </li></ul>
  70. 70. Sabae の概説 / モデルと DI (仮) <ul><li>Sabae::DI::DBI -> DB とのやりとり(現状 MySQL のみ) </li></ul>
  71. 71. Sabae の概説 / モデルと DI (仮)
  72. 72. Sabae の概説 / アクション
  73. 73. Sabae の概説 / アクション <ul><li>ここにロジックを定義
  74. 74. GET メソッド, POST メソッドで分離
  75. 75. 共通の定義も可能 </li></ul>
  76. 76. Sabae の概説 / アクション
  77. 77. Sabae の概説 / アクション
  78. 78. Sabae の概説 / アクション
  79. 79. Sabae の概説 / アクション
  80. 80. Sabae の概説 / ビュー
  81. 81. Sabae の概説 / ビュー <ul><li>ビュー名から個別テンプレートを選別 -> ビュー名はアクションの出力
  82. 82. 共通テンプレート + 個別テンプレート -> 通常のページ表示に
  83. 83. 個別テンプレートを直接 -> JSON とか XML とかの出力に </li></ul>
  84. 84. Sabae の概説 / ビュー <ul><li>割り当て変数の参照 </li><ul><li>var :アクションで割り当てたもの
  85. 85. q :クエリ・フォームパラメータ
  86. 86. conf :設定関連
  87. 87. env :環境変数 </li></ul></ul>
  88. 88. Sabae の概説 / ビュー
  89. 89. Sabae の概説 / ビュー
  90. 90. デモ
  91. 91. デモ / プロジェクトの作成
  92. 92. デモ / URL/ アクションマッピングの定義
  93. 93. デモ / アクションの追加
  94. 94. デモ / アクションの編集・ テンプレートの編集
  95. 95. まとめと今後
  96. 96. まとめと今後 / まとめ <ul><li>「アクション」でページを自動構成 -> 呼ばれる各種ファイルの特定が容易
  97. 97. サイトの拡張はコマンドラインで
  98. 98. テキストエディタで更新する人向け?
  99. 99. 小規模でもメンドイ作業はメンドイ -> 少しは怠けられる(当社比) </li></ul>
  100. 100. まとめと今後 / 今後の課題 <ul><li>モデルは 1 から定義 -> よく使うような構造をひな形に!
  101. 101. フォームバリデーションとか
  102. 102. テスト&エラー処理
  103. 103. 小規模「向け」というか未考慮 -> 何らかの数値を測定したい
  104. 104. 公開サービスの再構築
  105. 105. 整理して公開 </li></ul>
  106. 106. Don't say “lazy”
  107. 107. ご静聴ありがとうございました! Coming soon...? http://sabae.meganelab.net/

×