2011-09-10 6 views
2

OK私はコメントと投票が可能なsomes Postsのすばらしい見た目のレールアプリを持っていると仮定しましょう。それはオンラインで、人々はそれを愛しています。有効な(またはそうでない)機能をビルドするためのベストプラクティスをRails?

クライアントが登場し、「このアプリはうまく見えますが、私はちょうど同じものを使用できますが、私のロゴと票はコメントにも使えますか?

私はアプリをクローンして変更してから、クライアントに調整したアプリを送ってから元のアプリに戻って改善していきます。

数ヶ月後にもう一人のクライアントが来て、同じアプリを(今は改良された)望んでいますが、コメントも投票しています。

もちろん、私は最初の場所でアプリのクローン作成が巧妙なアイデアではなかったことを知っています。

私が知りたいのは、最初から2番目のプロジェクトで最初のクライアントのために作られた機能を再利用するために、簡単で整備可能でDRYにするにはどうしたらいいですか?

次に、たくさんのクライアントには、さまざまな要求された機能がたくさんあると考えてください。今、あなたは、この機能やこの機能だけではなく、この機能だけで新しいアプリを構築することができるのはすばらしいことに気づくでしょう。

これはどのように実現しますか?

私はgitブランチがそれを達成する良い方法、あるいはRails Engines/Gems、あるいは私にはわからないと思っていますが、私は間違いなくホールピクチャを見るのに十分な熟練したレールではありません。

ありがとうございます!

答えて

2

私たちは私たちの会社で同じ状況にありました。開発をよりモジュラ化するために、さまざまなことを行ってきました。

1つは内部宝石とRailsエンジンを使用しています。たとえば、ほぼすべてのプロジェクトで起動するブログエンジンを開発しました。

別のオプションが懸念される場合があります。たとえば、コメントシステムを懸念事項に推論して、同様のニーズを持つ他のプロジェクトに移植することができます。

(そしておそらく、少なくとも私が気に入っていないオプション)は、各フィーチャでいくつかのgit reposを維持し、gitモジュールを使用してプロジェクトに追加することです。

関連する問題