SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
オレオレ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が安定するので
ぜひお試しください!

Mais conteúdo relacionado

Destaque (20)

Osnovi na pravoto
Osnovi na pravotoOsnovi na pravoto
Osnovi na pravoto
 
LU DF SP - 2010. gada JBS
LU DF SP - 2010. gada JBSLU DF SP - 2010. gada JBS
LU DF SP - 2010. gada JBS
 
Water
WaterWater
Water
 
tie-dyeing
tie-dyeingtie-dyeing
tie-dyeing
 
Regular and irregular verbs
Regular and irregular verbsRegular and irregular verbs
Regular and irregular verbs
 
Tilwin vassefieldday
Tilwin vassefielddayTilwin vassefieldday
Tilwin vassefieldday
 
Bab 1
Bab 1Bab 1
Bab 1
 
Family tree
Family tree Family tree
Family tree
 
CASA ALEGRE TERRASSA
CASA ALEGRE TERRASSACASA ALEGRE TERRASSA
CASA ALEGRE TERRASSA
 
Pluraliti dan masyarakat
Pluraliti dan masyarakatPluraliti dan masyarakat
Pluraliti dan masyarakat
 
[STP] "수미칩"
[STP] "수미칩"[STP] "수미칩"
[STP] "수미칩"
 
Lectionline ii domenica di avvento 7 dicembre
Lectionline ii domenica di avvento 7 dicembreLectionline ii domenica di avvento 7 dicembre
Lectionline ii domenica di avvento 7 dicembre
 
We talc
We talcWe talc
We talc
 
Step by stop
Step by stopStep by stop
Step by stop
 
Rep lesson
Rep lessonRep lesson
Rep lesson
 
TRABAJO FINAL
TRABAJO FINALTRABAJO FINAL
TRABAJO FINAL
 
mobile application in rubber cultivation
mobile application in rubber cultivationmobile application in rubber cultivation
mobile application in rubber cultivation
 
AFO in missione - Seconda parte
AFO in missione - Seconda parteAFO in missione - Seconda parte
AFO in missione - Seconda parte
 
Portfolio katrulina a price
Portfolio katrulina a pricePortfolio katrulina a price
Portfolio katrulina a price
 
Film's Cool presentation Digital Strategy
Film's Cool presentation Digital StrategyFilm's Cool presentation Digital Strategy
Film's Cool presentation Digital Strategy
 

Mais de azuma satoshi

finally (not finally)
finally (not finally)finally (not finally)
finally (not finally)azuma satoshi
 
時を駆けるINSERT.pptx
時を駆けるINSERT.pptx時を駆けるINSERT.pptx
時を駆けるINSERT.pptxazuma satoshi
 
できる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャできる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャazuma satoshi
 
印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1
印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1
印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1azuma satoshi
 
Perlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobodyPerlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobodyazuma satoshi
 
Perlbeginnes 9 opening
Perlbeginnes 9 openingPerlbeginnes 9 opening
Perlbeginnes 9 openingazuma satoshi
 
Perlbeginners proposal
Perlbeginners proposalPerlbeginners proposal
Perlbeginners proposalazuma satoshi
 
入れ子構造を分解する
入れ子構造を分解する入れ子構造を分解する
入れ子構造を分解するazuma satoshi
 
YAPC::Asia 2012 CPANに恩返ししよう
YAPC::Asia 2012 CPANに恩返ししようYAPC::Asia 2012 CPANに恩返ししよう
YAPC::Asia 2012 CPANに恩返ししようazuma satoshi
 
ライブコーディング(?)で学ぶPerlオブジェクト指向
ライブコーディング(?)で学ぶPerlオブジェクト指向ライブコーディング(?)で学ぶPerlオブジェクト指向
ライブコーディング(?)で学ぶPerlオブジェクト指向azuma satoshi
 
Perlbeginnes 4 keynote
Perlbeginnes 4 keynotePerlbeginnes 4 keynote
Perlbeginnes 4 keynoteazuma satoshi
 
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話azuma satoshi
 
Perlbeginners 3 opening talk
Perlbeginners 3 opening talkPerlbeginners 3 opening talk
Perlbeginners 3 opening talkazuma satoshi
 
Perlbeginnes 2 keynote
Perlbeginnes 2 keynotePerlbeginnes 2 keynote
Perlbeginnes 2 keynoteazuma satoshi
 
Perl Beginners #1 keynote
Perl Beginners #1 keynotePerl Beginners #1 keynote
Perl Beginners #1 keynoteazuma satoshi
 
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向azuma satoshi
 

Mais de azuma satoshi (20)

finally (not finally)
finally (not finally)finally (not finally)
finally (not finally)
 
時を駆けるINSERT.pptx
時を駆けるINSERT.pptx時を駆けるINSERT.pptx
時を駆けるINSERT.pptx
 
できる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャできる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャ
 
印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1
印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1
印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1
 
Perlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobodyPerlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobody
 
Perlbeginnes 9 opening
Perlbeginnes 9 openingPerlbeginnes 9 opening
Perlbeginnes 9 opening
 
Perlbeginners proposal
Perlbeginners proposalPerlbeginners proposal
Perlbeginners proposal
 
Chibapm01 lt
Chibapm01 ltChibapm01 lt
Chibapm01 lt
 
入れ子構造を分解する
入れ子構造を分解する入れ子構造を分解する
入れ子構造を分解する
 
YAPC::Asia 2012 CPANに恩返ししよう
YAPC::Asia 2012 CPANに恩返ししようYAPC::Asia 2012 CPANに恩返ししよう
YAPC::Asia 2012 CPANに恩返ししよう
 
ライブコーディング(?)で学ぶPerlオブジェクト指向
ライブコーディング(?)で学ぶPerlオブジェクト指向ライブコーディング(?)で学ぶPerlオブジェクト指向
ライブコーディング(?)で学ぶPerlオブジェクト指向
 
Perlbeginnes 4 keynote
Perlbeginnes 4 keynotePerlbeginnes 4 keynote
Perlbeginnes 4 keynote
 
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
 
Perlbeginners 3 opening talk
Perlbeginners 3 opening talkPerlbeginners 3 opening talk
Perlbeginners 3 opening talk
 
PSGIへの誘い
PSGIへの誘いPSGIへの誘い
PSGIへの誘い
 
Perlbeginnes 2 keynote
Perlbeginnes 2 keynotePerlbeginnes 2 keynote
Perlbeginnes 2 keynote
 
Hachiojipm 14 LT
Hachiojipm 14 LTHachiojipm 14 LT
Hachiojipm 14 LT
 
Perl Beginners #1 keynote
Perl Beginners #1 keynotePerl Beginners #1 keynote
Perl Beginners #1 keynote
 
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
 
Hachioji.pm #13 LT
Hachioji.pm #13 LTHachioji.pm #13 LT
Hachioji.pm #13 LT
 

L tthon