4

私と私のチームは、再利用可能なスクリプトをいくつか作成し始めています。独自のアプリと特定のサーバー環境で動作する場合にのみ、組織内で再利用できます。そのため、rubyforge や github などにはあまり適していません。

私の質問は、すべてのユーザーが最新かつ最高のスクリプトを使用していることを確認するためのベスト プラクティスは何ですか? これらのスクリプトはほとんど 1 つのサーバーで実行しますが、他のサーバーに拡張する必要がある場合があります。

それらをgemにバンドルして、プライベートgemサーバーを開始する必要がありますか?

または、共通の共有可能な lib ディレクトリのような単純なもの。おそらく、SCM からダウンロード/更新するスクリプトが必要ですか?

他のアイデア?

ありがとう....

4

3 に答える 3

2

これは、コードを変更したい人の数 (あなたのチームのみ、または他の誰かも)、またはこれにどれだけのお金があるかなど、いくつかの要因によって異なります。

個人的には、build+gem サーバーを作成します。このサーバーでは、バージョン管理システム (git や svn など、プロジェクトで作業している人数によって異なります) を使用してスクリプトをアップロードし、cron ジョブを作成して、自動的に生成します。一般的な間隔でソースから gem を取得し、それらを異なるバージョンとして保存します。こうすることで、アプリケーションの gem を格納する信頼できるサーバーを常に確保でき、何かが壊れた場合でもいつでも以前のバージョンを取得できます。スクリプトによって、「appserv-edge」や「appserv-stable」などの個別の gem バージョン名が作成される場合があります。

お金に余裕がある場合は、github のクローズド ソース オプションもチェックしてみてください。ただし、非オープンソース プログラム用の gem ビルドおよびホスティング機能があるかどうかはわかりません。

于 2009-06-16T08:44:01.740 に答える
1

私はプライベートgemserverを作成しましたが、それはとても簡単です。唯一注意が必要なのは、ユーザーにgemをアップロードする方法を決定することです。個人的には、PHPアップロードフォームを使用して、既存のgemをマスクしていないことを確認します。

于 2009-06-16T18:59:19.130 に答える
1

私のオフィスでは、共有スクリプトとライブラリの一部に少しハイブリッドなアプローチを使用しています。それらをすべて gem にバンドルしますが、gem サーバーを使用するのではなく、ソース管理に保管し、必要に応じて (newgem を使用して) gem をビルドし、ローカルにインストールします。

このアプローチの欠点は、gem をインストールするのに 1 つではなく 2 つのコマンドが必要なことですが、デプロイに Capistrano を使用しているため、qa および本番環境ではこれが大幅に軽減されます。

利点は、非常にシンプルであり、gem に変更が必要な作業をしている場合、開発では編集/ビルド/デプロイのサイクルが非常に短いことです。私は現在、多くの一般的な機能を共有 gem に取り込んでいるので、その側面を本当に高く評価しています。

于 2009-06-16T20:55:32.373 に答える