MyApp::Model::Playerというのをリクエスト毎に作ってる。
そこにquest_checker_model(MyApp::Model::Player::Quest::Checker)とquest_model(MyApp::Model::Player::Quest)が生えてる。
別のプロジェクトでは、Result(Row)にMouse::Roleでprepare_questとか生やしてたけど「お前、どこに生えとるんや」問題が顕在化したのでやめた。
# controller my $result = eval { my $checked = $player_model->quest_checker_model->check_preparable(...); # 不正なデータならここでエラー $player_model->quest_model->prepare($checked); }; if (my $e = $@) { # detach }
元々は、checkerの部分をquest_modelのprepareにいれてたけど、どんどんprepareが膨れていった。太ったcontrollerがmodelに移動しただけなの、意味がない感じがした。なので、別メソッドに分けたけど、どんどんmodelが太るのは変わらなかった。なので、もうちょっと分けようと思って、別modelにした。
こういうの、大体間違ってるのか間違ってないのか、わからないから困る。
@acidlemon コードの長さです
— ひさいち (@hisaichi5518) 2014, 2月 24