あるエントリで、
「Skinny Controller, Fat Model」が最良ではない
とありました。*1
確かにControllerのユニットテストは
最近のフレームワークを使えば簡単にできますが、
Requestパラメータの記述やSessionにデータを突っ込む処理のように
実際に対象メソッドを呼び出すまでの準備が結構面倒で
テストを記述する時間が取れないことも多々あります。
それに比べてModel部分*2であれば、比較的楽に準備が済むので
テストを早く実行することができます。
テストできるからいいだろう、ってControllerが肥大化すると
Smart UIになっちゃう。
やっぱり「Skinny Controller, Fat Model」が最良だと思うんだけどなー。
Modelが肥大化するかもしけれないけど、Modelの中のレイヤーを分ければいい気がする。
他のプロジェクトで再利用なんて都合のいい事でなく、
保守をする上でも変更しやすいロジック/テストクラスになるんじゃないかなー。