究極にして至高のWAF

Preview:

DESCRIPTION

勢いだけで作った 参考文献: やはりお前らのMVCは間違っている http://www.slideshare.net/MugeSo/mvc-14469802

Citation preview

究極にして至高のWAF

第1次 MVC大戦 @hoto17296

モヒカン野郎の 登場です

今までに触ったWAF •  (自作フレームワーク) •  CakePHP •  FuelPHP •  Symfony •  Sinatra •  Ruby on Rails •  Amon2

やはり

お前らのMVCは

間違って いる

まずは

そもそもが

おまえは

MVC ではない

Teng

Text::Xslate

Dispatcher

Controllerっぽいナニカ

Viewっぽいナニカ

?????

Amon2 初見のイメージ

Teng

人人人人人人人人< Tengじゃ、   >< Tengの仕業じゃ!>YYYYYYYY////<_ノ ヽ_ノ\///// (○) ッ(○) |//| (( ノ ヽ ))+|//| + ))Г ̄|(( |//|+ U |WWW| U |//∧   |WWW|  //////\__`ーイ_////

Modelではない

Teng::Iterator Teng::Row

Modelっぽい扱いに されているのが

紛らわしすぎ

Teng

Text::Xslate

Dispatcher

なにも考えずに Amon2 を使った場合

Teng

Text::Xslate

Dispatcher

なにも考えずに Amon2 を使った場合

Fat Dispatcher!

Teng

Text::Xslate Dispatcher

なにも考えずに Amon2 を使った場合

Fat Dispatcher!

Fat Dispatcher!

Teng

Text::Xslate Dispatcher

なにも考えずに Amon2 を使った場合

Fat Dispatcher!

Fat Dispatcher!

Fat Dispatcher!

すぐに Dispatcher を太らす

そもそも

なぜ MVC は MVC というのか

Model > View > Controller

軽量WAFで似非MVCをしたときに 陥りがちなミス

Controller > View > Model

正しい Amon2 の使用例

Teng

Text::Xslate

Dispatcher

自作 Model

RDB Redis とか

ビジネスロジックは 自分でなんとかする

これができない もしくは

ここまでやってもまだ太る ような規模なら

Rails を使おう

まずはこちらを ご覧ください

Model

View

Controller

FuelPHP のアーキテクチャ

ViewModel

???

Model

View

Controller

更新処理と取得処理の分離

ViewModel 更新処理

取得処理

名前がとても紛らわしい

ViewModel

名前がとても紛らわしい

MVVMC?

MVVM? ※ まった

くの別物

紛らわしいから改名します!!!!!

ViewModel ↓ (1.7.2以降) Presenter

名前がとても紛らわしい(2)

MVPC?

MVP? ※ まった

くの別物

FuelPHP まとめ

紛らわしい

ActiveModel

ActionController

Ruby on Rails のアーキテクチャ

ActionView

ActiveRecord

RDB Redis とか

ありがちなDisられポイント

•  柔軟性がない •  ActiveRecord が宇宙 •  学習コストが高い

柔軟性がない?

そんなことはない

設定より規約

•  単純にするが柔軟性は失わせない

•  「いつも通りではない場合」のみ 設定を記述する – 変態的なルーティング

– NoSQL 余裕

– レスポンスフォーマットもなんでもアリ

ActiveRecord が宇宙?

はい

ActiveRecord とは

•  「レコード1行につき1オブジェクト」 •  デザインパターン – Ruby だけのものではない

ActiveRecord は宇宙だが

コードは読める

何も恐れることはない

( ◠‿◠ )

学習コストが高い?

はい

逆に訊くが

軽量WAFは学習コストが 低いのだろうか?

軽量WAFは学習コストが低い?

•  「それっぽいものを作れるように  なるまで」はとても速い

•  「正しく使えるようになるまで」は  同じように時間がかかる

•  積み上がる負の遺産

「はじめからみんな正しく  使えればいいのでは?」

無理

「自由なWAF」 とは

「そう書くべきでないコードでも 動いてしまう」 ということ

「チームのルールとか運用方針を  ちゃんと決めれば大丈夫だし!」

┓(́ー`)┏

「だいたいいつも通り」 なのになぜ

何度も同じレールを敷く 必要があるのか

先人たちが積み上げてきた

“王道“ がここにある Ra i l

Recommended