Upload
yuki-ishikawa
View
1.691
Download
1
Embed Size (px)
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