#catalyst-jaで質問してきた
perlのえらい人が集まる#catalyst-jaで質問してきた。
ここからどうでもいい話( ・∀・)
そもそも#catalyst-jaって何
freenode上に存在するcatalystな人が集まるチャンネル。catalystについて調べてるうちに知った。
最初はfreenodeという単語すら知らなかったので、ググってたどり着いたはいいけど、このチャンネル、perlのえらい人ばっかりいる。
初めてjoinしたときはビビってすぐ落ちた。
このチャンネル、ググっても様子が分からなかったので、とりあえずサーバマシンでircクライアント立ち上げて入りっぱなしにしてみた。
その後、長いこと放置してログを見てみるも、全然発言が発生しない。
どう見ても初心者お断りな雰囲気でガクブル。
catalystのネタや小話や質問が毎日飛び交ってるのを想像してた。
どうでもいいがある日一度質問したら華麗にスルーされて泣いたのは秘密だ。
これは質問の仕方が悪い。
すみません、モダンperl入門のcatalystでモデル分離をやってるところで質問があるのですが、どなたかいらっしゃいますか?
いや、人が居るのか居ないのかすら分からなかったから誰か居たら訊こうと思って…
という事があった、と神に話したら
「先に質問書けばよかったのに」
と指摘された。確かに。俺のコミュ力の無さが残念すぎる。
こういう場未経験なんだーとか言い訳してみるテスト。多分、考えてから発言しろって返される。
考えた末がアレって言ったら、多分、それは残念だって言われて終わる。
ここからありがたい話( ・∀・)
明確な質問の仕方をしてみた
小心者なのでスルー体験が結構トラウマ的になる。が、性懲りも無くまた質問してみた。
ただし学習して質問形式を変えた。
すいません、Catalyst::Model::Adaptor系を使ってる人に質問なんですが、例えば1件searchしたいとき、それだけのためにモデルにそういうメ
ソッドを実装しますか?それともコントローラで$c->model('DBIC::Hoge')->searchしますか?
vkgtaroさんが反応してくれた。以前のコメントといい、感謝。
ここから長々と質問しまくる俺。
vkgtaroさんをはじめ、他の方からも答えてもらった。
以下、備忘録、兼、アウトプットのための、俺の質問と頂いた答え。
- 全APIにDBICのCRUDなメソッド(searchなど)を書くのはどうなのか?
- そのテーブルを包括したモデルを作っているのであれば、それでもいいのでは
- コントローラで直にsearch呼んでもいいのでは
- わざわざsearchのラップ書くのは面倒だし
- コントローラにロジックを書くのが悪いのは分かるが、どこまでがロジックになるのか。例えば、1件searchするだけの処理もロジックとなり、コントローラに書くのは悪いのか?
- 人による
- (vkgtaroさん)個人的にはテストをすべきか否か、で考える
- 自分が書いたロジックのテストならともかく、DBIx::Class::ResultSet::searchのテストまでする必要はない
- その1件searchの前後の処理が重要なら、そこをまとめて一つのAPIとして、テストすればいい
- sessionとstashはよくコントローラで使うが、これもロジックをコントローラに書いてるから悪いことになるか?
↓変換
というわけで
#catalyst-jaで答えてくれた皆さん、ありがとうございました。