GMOリサーチの人
infoQを運営している
ボードゲーム翻訳
CakeBookの翻訳
TEDの翻訳
翻訳とプログラム
CakePHP2実践入門
MVCの本質
ロジックはどこに書けばいいのか
なんちゃってテストファーストのすすめ
MVCの話
怖い話
たった2画面しかないのに2000行にのぼるController
- 依存関係が見えない
- 処理全体が密結合になってる
- 依存が多すぎてテスト書けない
checkboxの値を復元するのに
100行にわたってロジックが書いてあるview
画面変更のたびにロジックが邪魔
画面変更のたびにロジックが壊れる
Controllerの仕事を代行しているModel
意味がない
依存関係が分からない
テストが大変
「結合テストにてテストする」宣言
テストできるの?
MVCの理想
Model テストしやすく最適化
View 画面を見ながら変更したい
Controller 依存呼び出しの最適化
MVCを理解する鍵は疎結合
プログラムを分けて責任範囲を小さくしたい!!
テストのしやすさ、変更のしやすさを求めたのがMVC。
ここを見失わければ
MVCも見失わない。
Model データ処理
View 画面
Controller すべてを知っている司令塔(テストしづらい)
Modelであるべきすがた
DBなど外部依存するメソッドはシンプルに。
ロジックは外部に依存しないように
ロジックは積極的にユニットテストを書く。
どこまで画面から独立できるかが鍵。
ユニットテストのしやすさに向かって最適化。
Controller
外部依存は必ずnewせずcomponent化する(テストしやすさのため)
画面に強すぎる依存があるロジックは別メソッドか、
意味的に束ねられそうならModelに切り出す。
依存呼び出しの管理しやすさに最適化。