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

L tthon

794

Published on

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

  • Be the first to like this

No Downloads
Views
Total Views
794
On Slideshare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "L tthon"

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

    Clipping is a handy way to collect important slides you want to go back to later.

×