Ruby on Rails 3.2.2 を使用しています。そして、次の考え(私の前の質問から生まれた)が正しいかどうか知りたいです:
サードパーティの gem はいつでも破棄される可能性があるため、(少なくとも可能かつ妥当な場合は) 使用しない傾向があります。また、Ruby on Rails フレームワークが変更された場合、アプリケーションを最新の RoR バージョンに更新する前に、それらの gem が更新されるのを待たなければならない場合があります。
Ruby on Rails 3.2.2 を使用しています。そして、次の考え(私の前の質問から生まれた)が正しいかどうか知りたいです:
サードパーティの gem はいつでも破棄される可能性があるため、(少なくとも可能かつ妥当な場合は) 使用しない傾向があります。また、Ruby on Rails フレームワークが変更された場合、アプリケーションを最新の RoR バージョンに更新する前に、それらの gem が更新されるのを待たなければならない場合があります。
あなたが不滅で、無限の時間があり、世界最高のプログラマーである完璧な世界では、製品を 1 時間でローンチするか 10 年でローンチするかに関係なく、すべてを自分でゼロからコーディングできます。他の人のコードを避ける感覚。
しかし、現実の世界では、人々はすでにあなたのために問題を解決しています。また、gem を使用すると、これらのソリューションをプラグインできます。
経験則としては、可能な場合は、特定のソリューションに対してコミュニティのお気に入り/人気のある gem を優先することです。gem を使用する人が増えれば増えるほど、gem を更新し続けることに関心を持つ人が増え、より多くの人がそれを精査してプルリクエストを送信します。実稼働環境で多くの人々によってバトルテストされた宝石は、最初の試みで思いついたものよりも優れている可能性がありますよね?
自己かゆみのある本番アプリケーションでさえ使用していない 1 人の愛好家のメンテナーに依存する gem は、リスクを見つけやすい場所です。しかし、そのような状況でも、ある日彼の宝石をフォークしなければならなくなったとしても、ゼロから始めた場合よりも先に進んでいます.
より良い傾向は、すべてをゼロから書くことを避け、代わりに同様のニーズを持つ他の人々の頭脳を活用することです.
まあ、それは、開発時間/予算の節約と市場投入までの時間の短縮と引き換えに取っているリスクです.
ジェムの 1 つが放棄された状況に陥った場合は、類似のジェムまたはフォークを調べて、それらを改善することができます。いずれにせよ、すべてを自分で開発するよりはましです。
作品に何も追加できず、何も削除できない場合にのみ、作品は完全に完成します。 –ジョセフ・ジュベール
これは、Railsプロジェクトが機能しているときに私たちが従う哲学と同じです。Gemfileにgemを追加したい場合は、基本的にそれについて議論する必要があります。そこにあるべき理由が見つからない場合は、キックアウトされます。私たちは間違いなく車輪の再発明を試みていませんが、メンテナンスが不十分な可能性のある可動部品の数を減らすことは私見の良い選択です。したがって、よく維持され確立されたRailsプラグインには「はい」と言いますが、すぐにまとめられるソリューションのように見えるものには注意してください。多くの場合、自分でパッチを維持したり、リポジトリをフォークしたりすることはないので、その特定のホイールを再発明したほうがよいかもしれません...
この哲学を捨てろ!多くの Web サイトや企業がこれを行う傾向があります。これは、「ここで発明されていない」症候群でよく知られています。特に、Twitterは大きな犯罪者です。オープン ソースは素晴らしいです。ぜひご利用ください。
たとえば、 gem を考案し、その機能を自分で実装してみてください。そのため、問題に対する独自のビジョンを定義できます。
私は便利だと思ったすべての gem を使用することを好みます。更新後にいずれかの gem が機能しない場合は、いつでもフォークしてアップグレードできます。