Your SlideShare is downloading. ×
0
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
2009-09-11 / YAPC::Asia 2009
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

2009-09-11 / YAPC::Asia 2009

1,944

Published on

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

「小規模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
1,944
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×