ファットコントローラ撲滅運動
-
Upload
ohasi-yuki -
Category
Engineering
-
view
4.255 -
download
0
Transcript of ファットコントローラ撲滅運動
![Page 1: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/1.jpg)
@secret_hamuhamu
ファットコントローラ撲滅運動
![Page 2: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/2.jpg)
自己紹介
名前:大橋勇希 コードネーム : はむ (@secret_hamuhamu)
![Page 3: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/3.jpg)
今回のテーマ
![Page 4: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/4.jpg)
![Page 5: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/5.jpg)
ドン!
![Page 6: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/6.jpg)
ファットコントローラ!!!
![Page 7: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/7.jpg)
MVCのおさらい
![Page 8: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/8.jpg)
Model View Controllermodel
アプリケーションデータ、ビジネスルール、ロジック、関数
wikipedia参照
![Page 9: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/9.jpg)
Model View Controllerview
任意の情報表現 (HTML)
wikipedia参照
![Page 10: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/10.jpg)
Model View Controllercontroller
入力を受け取りmodelと viewへの命令に変換する
wikipedia参照
![Page 11: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/11.jpg)
controller
model view
呼び出す方向
![Page 12: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/12.jpg)
ファットコントローラ
modelと controllerの境目が混じっている
![Page 13: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/13.jpg)
とにかくながい
![Page 14: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/14.jpg)
アクションメソッドが太りすぎだぶ〜
![Page 15: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/15.jpg)
なるべく controllerは薄くしたい
![Page 16: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/16.jpg)
fat controller
skinny controller
![Page 17: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/17.jpg)
どうすればいいか?
![Page 18: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/18.jpg)
108 あるポイントの内、3つ紹介
![Page 19: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/19.jpg)
1つ目
![Page 20: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/20.jpg)
controller内で、実装したビジネスロジックを除去
![Page 21: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/21.jpg)
controller内で、実装されたビジネスロジック
![Page 22: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/22.jpg)
クラス化しmodelに移す
![Page 23: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/23.jpg)
2つ目
![Page 24: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/24.jpg)
controllerとmodelのやりとりを減らす
![Page 25: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/25.jpg)
controller 〇〇model
シーケンス図
![Page 26: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/26.jpg)
controller 〇〇model
シーケンス図
controllerが何度も〇〇modelに尋ねている
![Page 27: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/27.jpg)
controller 〇〇model
シーケンス図
本来、modelでやるべきビジネスロジックがcontrollerに混ざっている
![Page 28: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/28.jpg)
Tell, Don't Ask
![Page 29: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/29.jpg)
何度も controllerがmodelに尋ねる (Ask)のではなく命じる (Tell)
![Page 30: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/30.jpg)
controller 〇〇model
シーケンス図
![Page 31: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/31.jpg)
controller 〇〇model
シーケンス図
controllerは、命じるのみ
![Page 32: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/32.jpg)
controller 〇〇model
シーケンス図
ビジネスロジックを考えなくて済み関心事が分離された
![Page 33: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/33.jpg)
3つ目
![Page 34: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/34.jpg)
窓口を作る
![Page 35: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/35.jpg)
![Page 36: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/36.jpg)
複数のクラスを呼び出し順番通りにメソッドを実行している
![Page 37: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/37.jpg)
Facadeパターン
![Page 38: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/38.jpg)
Facadeという窓口を用意してあげる
![Page 39: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/39.jpg)
controllerは、どういう順番でクラスが呼び出されているのか知らなくてよい
![Page 40: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/40.jpg)
fatから
![Page 41: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/41.jpg)
skinnyへ
![Page 42: ファットコントローラ撲滅運動](https://reader035.fdocument.pub/reader035/viewer/2022070514/587e4a5d1a28abeb1a8b4e95/html5/thumbnails/42.jpg)
ご清聴ありがとうございました