tokuhirom's Blog

Why I use DBIx::Skinny instead of DBIx::Class.

最近DBIx::Skinnyをプライベートでは利用しているのだが、その理由。主にDBICのここが嫌だ、的だが。

DBIC が 'me' とか名前つけるのが嫌だ。

うん。嫌だよね。

生成される SQL が無駄にながい

デフォルトのリザルトセットに criteria あたえられるやつがぶっこわれてる

名前もわすれたけど、あれ、join とかするとまともにうごかない。

コードが大仰

読む気がしない。

重くなさそうなメソッドが実は重い

"->pager" が count 文を勝手に発行しているというのが一番有名な例。
relation はってる場合とかは得にそうなんだけど、内部の実装を意識しないと、つかいものにならないというのはしんどい。

DBICのイテレータをTTにわたしたりとかしたいわけだけど、そういうことすると、デザイナーが勝手に relation の先をよんでたりして、SQL の発行回数がひどいことになったりとかする。
(DBIC のイテレータとかわたすなよ、という話はあるけど)

個人的には、「SQLを発行するメソッドは、SQLを発行しそうな名前であるべき」だとおもう。