Hatena::Groupcatalyst

dann@catalyst このページをアンテナに追加 RSSフィード

2008-03-06

DBにしか入れないデータでも、DBICのモデルにロジックを置くのは悪なのか? - その2

01:15 |  DBにしか入れないデータでも、DBICのモデルにロジックを置くのは悪なのか? - その2 - dann@catalyst を含むブックマーク はてなブックマーク -  DBにしか入れないデータでも、DBICのモデルにロジックを置くのは悪なのか? - その2 - dann@catalyst  DBにしか入れないデータでも、DBICのモデルにロジックを置くのは悪なのか? - その2 - dann@catalyst のブックマークコメント

DBにしか入れないデータでも、DBICのモデルにロジックを置くのは悪なのか?」の記事のcharsbarさんのコメントを読んでみて、そんなに自分が考えていた仮定もそんなに間違いではないかもしれないなと思いました。

以下、id:charsbarさんのコメントです。

モデルそのものに押し込むのは正しいけど、Catalystのモデルに押し込んでしまうとCLIなどで使い回すときに不便だから避けた方が無難ということになってきている、ということかと

DBICのモデルにロジックを書くのは間違いではないけれど、「Catalystのモデル」にロジックを書いてしまうと、「Catalystのモデル」はフレームワークに依存してしまうから、CLIなどなどで使いまわすときに不便なので避けたほうがよい

という話なんだと理解しました。これで大分すっきりしました。DBICのモデルという書き方だと少し誤解を招くかもしれませんが、多分理解は間違ってないんじゃないかなぁと。id:miyagawaさんが書かれている話も、Modelを「Catalystのモデル」と置き換えてよむと、すんなり読めます。

Model に直接メソッドを書いて Controller から呼び出すのも別に悪くはないとおもうけどイベント処理とかいろんなところからメソッド呼んだりするので共通化できるメリットがあるし、 Web コンテキスト関係なくテストできるのでユニットテストも書きやすくなる。

これで、細かい点でどう実装するのか検討する点はありますが、大体どう作っていったほうがよいのかというのは分かった気がします。たった1日で疑問に思っていたことの大部分が解決してしまった!Blogって素晴らしいなぁ。

こういうときには機能しないよっていう話があったら、それも是非聞いてみたいですね。そういう話はとても貴重だと思うので、色んな人の話を聞いてみたいなと。

# これって、Virtual CatalystCon!

# そもそも、解釈がぜんぜんちげーってことだったら、是非教えてください。

トラックバック - http://catalyst.g.hatena.ne.jp/dann/20080306