• Like
L tthon
Upcoming SlideShare
Loading in...5
×

L tthon

  • 740 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
740
On Slideshare
0
From Embeds
0
Number of Embeds
11

Actions

Shares
Downloads
0
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. オレオレWAFを 正式リリースするまでの話 YAPC::Asia Tokyo 2013 LT-thon @ytnobody
  • 2. http://github.com/nephia/Nephia http://nephia.github.io/
  • 3. 今まで作者である僕自身がNephiaについて きちんと話したことがなかったので (これまでは主に@mackee_wさんや@__papix__さんが色々解説してくれたりしてました) 今日は大まかながらも自ら説明します。
  • 4. およそ14か月前 v.0.01 on github Nephia、産声をあげる。 元々はJSON APIに特化した WAFを作るつもりだった
  • 5. 13か月前くらい? @equinox79氏の手により、adre.so公開。 Nephiaを利用した最初のwebサービス http://adre.so/慶應義塾日吉キャンパス
  • 6. その後 しばらく放置
  • 7. 5ヶ月くらい前 @ichigotake氏曰く 「Nephiaそろそろ何とかしてくださいよ」
  • 8. このままでは 真綿で喉元を締め付けられる!!!
  • 9. 開発再開
  • 10. 大体3か月くらい前 Hachioji.pmの面々を巻き込み 主にセットアップまわりの機能拡張をして Shipit
  • 11. 様々なプラグインが開発されたが
  • 12. 同時にその内部構造のヒドさに 「このままでは開発続けられない」 という声が続出
  • 13. それまでのコードを凍結し 新しい構造のWAF(コードネーム:Voson)を開発。
  • 14. 3週間くらい前? github上で名前をかえた 旧Nephia => PrimalNephia Voson => Nephia
  • 15. 9/29(日) 苦肉の策の集大成として 新生Nephia Shipit予定
  • 16. なんでつくったか
  • 17. Amon2とかあるじゃない
  • 18. Amon2でも大きいと感じるケースがあった
  • 19. が、素のPlackだとだるいかもなーという
  • 20. まあそんなこといってるけど、 麻疹の一種です
  • 21. 想定する用途
  • 22. 単発JSON API 超小規模WebAPP ペライチっぽいけど動的とか ホビー用途 (昔流行ったCGIゲームのPSGI版とか?)
  • 23. 特徴
  • 24. DSLマンセー!!!!!!!!!!!!!111
  • 25. おそらく最小クラスのソースコード量 (Nephia::Coreでコード部分だけで142行)
  • 26. フック機構 (builder_chain) これによって比較的容易に拡張可能。
  • 27. フック機構 (action_chain, filter_chain) これによって比較的容易に拡張可能。
  • 28. セットアップ方式が2種類ある (今後増やせる) Nephia::Setup::Plugin::Minimal Nephia::Setup::Plugin::Normal
  • 29. Minimal セットアップ ・Routerなし ・View?なにそれ。 ・最小限のDSL(app, req, param)
  • 30. Normal セットアップ ・Router::Simple ・Text::MicroTemplate ・bootstrap, jquery ・controllerの帰り値がhashrefの場合、 JSONにしてくれる Etc. etc...
  • 31. DEMO (時間あれば)
  • 32. ベンチも取ってみたので、気になる方はどうぞ。 https://gist.github.com/ytnobody/6492083 単純な例ですが 速度だけならそんなに悪くないと思います。
  • 33. Thank you! 次回のshipitでAPIが安定するので ぜひお試しください!