パルカワ2

最近はFlutterをやっています

Result, ResultSet, Model たちの使い分け

Service層とかModel層とか時々はてブで話題になりますね。

Result

DBのデータをPerlでも扱えるようにしたもので、DBをグリグリ操作するメソッドを書いたりはしない。
columnとか、is_*とか、to_hashrefとかそういうを書く。

$player->nickname;
$player->has_chinchin;
$player->is_hisaichi;

ResultSet

データを絞るためだけに使って、ArrayRefとか返したり、updateしたりするメソッドは書かない。
=> ResultSetに書くメソッドは基本ResultSetしか返さない.

# search_rsの部分をResultSet::Playerに書く
models('RS::Player')->search_rs({...})->all;
models('RS::Player')->hoge_rs->all;

Model

DB | Web API |その他もろもろを操作する君

$player_model->gift_model->receive(...);
$player_model->coin_model->receive(...);
まとめ

という感じにしています。