ファットコントローラ撲滅運動

42
@secret_hamuhamu フフフフフフフフフフフフフフ

Transcript of ファットコントローラ撲滅運動

Page 1: ファットコントローラ撲滅運動

@secret_hamuhamu

ファットコントローラ撲滅運動

Page 2: ファットコントローラ撲滅運動

自己紹介

名前:大橋勇希 コードネーム : はむ (@secret_hamuhamu)

Page 3: ファットコントローラ撲滅運動

今回のテーマ

Page 4: ファットコントローラ撲滅運動
Page 5: ファットコントローラ撲滅運動

ドン!

Page 6: ファットコントローラ撲滅運動

ファットコントローラ!!!

Page 7: ファットコントローラ撲滅運動

MVCのおさらい

Page 8: ファットコントローラ撲滅運動

Model View Controllermodel

アプリケーションデータ、ビジネスルール、ロジック、関数

wikipedia参照

Page 9: ファットコントローラ撲滅運動

Model View Controllerview

任意の情報表現 (HTML)

wikipedia参照

Page 10: ファットコントローラ撲滅運動

Model View Controllercontroller

入力を受け取りmodelと viewへの命令に変換する

wikipedia参照

Page 11: ファットコントローラ撲滅運動

controller

model view

呼び出す方向

Page 12: ファットコントローラ撲滅運動

ファットコントローラ

modelと controllerの境目が混じっている

Page 13: ファットコントローラ撲滅運動

とにかくながい

Page 14: ファットコントローラ撲滅運動

アクションメソッドが太りすぎだぶ〜

Page 15: ファットコントローラ撲滅運動

なるべく controllerは薄くしたい

Page 16: ファットコントローラ撲滅運動

fat controller

skinny controller

Page 17: ファットコントローラ撲滅運動

どうすればいいか?

Page 18: ファットコントローラ撲滅運動

108 あるポイントの内、3つ紹介

Page 19: ファットコントローラ撲滅運動

1つ目

Page 20: ファットコントローラ撲滅運動

controller内で、実装したビジネスロジックを除去

Page 21: ファットコントローラ撲滅運動

controller内で、実装されたビジネスロジック

Page 22: ファットコントローラ撲滅運動

クラス化しmodelに移す

Page 23: ファットコントローラ撲滅運動

2つ目

Page 24: ファットコントローラ撲滅運動

controllerとmodelのやりとりを減らす

Page 25: ファットコントローラ撲滅運動

controller 〇〇model

シーケンス図

Page 26: ファットコントローラ撲滅運動

controller 〇〇model

シーケンス図

controllerが何度も〇〇modelに尋ねている

Page 27: ファットコントローラ撲滅運動

controller 〇〇model

シーケンス図

本来、modelでやるべきビジネスロジックがcontrollerに混ざっている

Page 28: ファットコントローラ撲滅運動

Tell, Don't Ask

Page 29: ファットコントローラ撲滅運動

何度も controllerがmodelに尋ねる (Ask)のではなく命じる (Tell)

Page 30: ファットコントローラ撲滅運動

controller 〇〇model

シーケンス図

Page 31: ファットコントローラ撲滅運動

controller 〇〇model

シーケンス図

controllerは、命じるのみ

Page 32: ファットコントローラ撲滅運動

controller 〇〇model

シーケンス図

ビジネスロジックを考えなくて済み関心事が分離された

Page 33: ファットコントローラ撲滅運動

3つ目

Page 34: ファットコントローラ撲滅運動

窓口を作る

Page 35: ファットコントローラ撲滅運動
Page 36: ファットコントローラ撲滅運動

複数のクラスを呼び出し順番通りにメソッドを実行している

Page 37: ファットコントローラ撲滅運動

Facadeパターン

Page 38: ファットコントローラ撲滅運動

Facadeという窓口を用意してあげる

Page 39: ファットコントローラ撲滅運動

controllerは、どういう順番でクラスが呼び出されているのか知らなくてよい

Page 40: ファットコントローラ撲滅運動

fatから

Page 41: ファットコントローラ撲滅運動

skinnyへ

Page 42: ファットコントローラ撲滅運動

ご清聴ありがとうございました