NanoA
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

NanoA

  • 14,828 views
Uploaded on

Introduction of NanoA, a minimalist web application framework written in perl

Introduction of NanoA, a minimalist web application framework written in perl

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
14,828
On Slideshare
14,028
From Embeds
800
Number of Embeds
3

Actions

Shares
Downloads
3
Comments
0
Likes
2

Embeds 800

http://labs.cybozu.co.jp 790
http://webcache.googleusercontent.com 7
http://www.slideshare.net 3

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. NanoA a minimalist approach to WAF Cybozu Labs, Inc. Kazuho Oku
  • 2. 自己紹介
    • サイボウズ・ラボ所属
    • ラボで作ったもの
      • Japanize, Pathtraq, Q4M, …
    • 使用言語
      • C/C++, Perl, JavaScript, …
      • 半分はミドルウェア屋さん
      • パートタイム Perl デベロッパ
      • パートタイム WebApp デベロッパ
  • 3. 今日の Perl WAF は複雑 ( のようだ )
    • プロ向けのツールとして発展してきた経緯
    • 屋上屋を重ねすぎ
    • 覚えることが多すぎる
      • 情報がどこにあるかわからない
    • パートタイムデベロッパーにはつらい
      • ミドルウェア屋さんとか
      • 研究屋さんとか
      • 自営業の方とか
  • 4. WAF の余計な要素
    • ディスパッチテーブル
      • ファイルパスを使えばいいじゃん
    • テンプレートのエスケープ指示
      • テンプレートエンジンで自動処理できるはず
    • コントローラとテンプレートの分離
      • We ♥ PHP!
    • 設定ファイル
      • Convention over Configuration
  • 5. WAF の余計な要素 (2)
    • mod_perl ( fastcgi) が必須
      • CGI でも動いてほしい
      • CGI で十分なケースも多い
        • 例 : Japanize
    • CPAN モジュールへの依存
      • インストールが面倒
      • 環境依存は悪
  • 6. NanoA の特徴
    • インストーラ
    • ディスパッチテーブルレス
    • コンポーネント指向
    • View と Controller が可換
    • フォーム生成/バリデータが付属
    • CGI で ( も ) 高速
    • Simple but Powerful
    • モジュールは MENTA と共有
  • 7. インストーラ
    • CGI 1ファイルのみ
    • 自己展開して suEXEC 環境なら自動設定
    • デモ
  • 8. コンポーネント指向
    • サービス開発時はアプレット「だけ」書く
    • 設定は複数のアプレットで共有
      • 例 : ユーザー管理コンポーネント , 設定コンポーネント , …
      • という風にしたいけどコンポーネント書いてない
    • UI の制限がない XOOPS
  • 9. View と Controller が可換
    • View と Controller が同一の API をもつ
    • PHP スタイルのコーディングも可能
      • ちょっとしたアプリケーションには便利
    • 双方向にインクルード可能
      • View から Controller を呼び出したり
      • Controller から View を呼び出したり
    • デモ
  • 10. フォーム生成/バリデータ
    • 基本的な項目が指定可能
      • required, min_length, max_length, regexp, email, # of choices, …
    • CSRF 対策が組み込み
  • 11. NanoA のディレクトリ構成
    • app/MyApp/start.pm を書くだけで動きます
    • nanoa/
    •   nanoa.cgi
    •   app/
    •    app1/
    •     start.pm        -- app1 のトップページ
    •    app2/
    •     config.pm       -- app2 の全体設定
    •     start.pm        -- app2 のトップページ
    •     controller1.pm    -- 別のコントローラ
    •     template/       -- テンプレートディレクトリ
    •      start.mt
    •      controller.mt
  • 12. 例 : 掲示板
    • http: //kazuho .31tools. com/nanoa/nanoa . cgi/tinybbs/
  • 13. NanoA の今後
    • たぶん MENTA よりも思想性重視
      • 機能的な部分は MENTA を svn externals
    • 自作サービスでは使うつもり
      • Japanize?
    • アプレット開発者絶賛募集中
      • nanoa/trunk/app 下に置いてほしい
      • Nanoa と一緒に配布します
    • NanoA をよろしくお願いします