2009年08月11日(火)
ひどい目にあった。
本日この日記のRailsのメジャーバージョンをあげてみたら、挙動不審に。
概ね動くんですが、modelに不正な値が入れられたときのエラーメッセージが 出ない。(引数の型が合わないとかなんとか)
さんざん悩んだ末に出た結論が、某プラグインがネック。
こいつは、Rails自信のメソッドを上書きしているわけで、このおかげで メジャーバージョンが上がったときに本体のソースががらっと変わってしまったため 動かなくなったと。そういうわけです。
コードの見通しとか保守製考えれば、プラグインとかが勝手にクラスメソッドを上書きしていくというのは いかがな物かなと。
もちろん未来永劫、本体のリリースにあわせてメンテしてくれるのならそれはそれでいいんですが、 ちょっと書いて飽きて、メンテされないプラグインのなんと多いことか。
ついでいうと、自分自身のプログラムを書き換えるevalなコードの多いこと。多いこと。 そういうコードに限って見てみると、ホンの数行書くだけで済むだけなのに、 なぜかevalしているものが多いわけで。どうしてそこでevalするのかと言いたい。 こういうコードが美しいと思ってるのかなぁ?
さらに言わせて貰うと、Railsの人に限らず、Rubyなプラグインとかモジュールは 呆れるほどドキュメントがないんですよね。以前から非常に気になっていたわけですが。
すくなくとも本体はいつまでも開発が進んでいくと思うから、大丈夫だと思うけど、 プラグインとかは全部自分で書いておいたほうがいい。よほど複雑なものでなければ。
本日この日記のRailsのメジャーバージョンをあげてみたら、挙動不審に。
概ね動くんですが、modelに不正な値が入れられたときのエラーメッセージが 出ない。(引数の型が合わないとかなんとか)
さんざん悩んだ末に出た結論が、某プラグインがネック。
こいつは、Rails自信のメソッドを上書きしているわけで、このおかげで メジャーバージョンが上がったときに本体のソースががらっと変わってしまったため 動かなくなったと。そういうわけです。
コードの見通しとか保守製考えれば、プラグインとかが勝手にクラスメソッドを上書きしていくというのは いかがな物かなと。
もちろん未来永劫、本体のリリースにあわせてメンテしてくれるのならそれはそれでいいんですが、 ちょっと書いて飽きて、メンテされないプラグインのなんと多いことか。
ついでいうと、自分自身のプログラムを書き換えるevalなコードの多いこと。多いこと。 そういうコードに限って見てみると、ホンの数行書くだけで済むだけなのに、 なぜかevalしているものが多いわけで。どうしてそこでevalするのかと言いたい。 こういうコードが美しいと思ってるのかなぁ?
さらに言わせて貰うと、Railsの人に限らず、Rubyなプラグインとかモジュールは 呆れるほどドキュメントがないんですよね。以前から非常に気になっていたわけですが。
すくなくとも本体はいつまでも開発が進んでいくと思うから、大丈夫だと思うけど、 プラグインとかは全部自分で書いておいたほうがいい。よほど複雑なものでなければ。

コメント一覧
Commented by kaz at 2009-08-12 02:09:28