2

OK、いくつかの投稿を備えた見栄えの良いRailsアプリがあり、コメントや投票ができると仮定しましょう。それはオンラインであり、人々はそれを愛しています。

ここで、クライアントがやってきて、「ねえ、このアプリは良さそうですね! 同じもので、私のロゴとコメントへの投票も一緒にできますか?」と言うと想像してください。

ですから、アプリを複製して変更を加え、微調整したアプリをクライアントに配信してから、元のアプリに戻って改善を続けます。

数か月後、別のクライアントが来て、同じアプリ (現在は改善されています) を望んでいますが、コメントにも投票があります。

もちろん、そもそもアプリのクローンを作成することは賢明なアイデアではありませんでした。

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

次に、多くのクライアントがさまざまな要求された機能を備えていると想像してください。これで、この機能ではなく、この機能だけで新しいアプリを「構築」できるとしたら、それは素晴らしいことだと思います。

どうやってそれを達成しますか?

git ブランチ、または Rails Engines/Gems がそれを達成するための良い方法になると思いますが、わかりませんが、穴の写真を明確に見るのに十分なほど git や rails のスキルがないことは間違いありません。

ありがとう !

4

1 に答える 1

2

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

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

別のオプションは懸念事項かもしれません。たとえば、コメント システムを懸念事項として推定し、それを同様のニーズを持つ他のプロジェクトに移植することができます。

別の方法 (そして、おそらく私の最も嫌いなオプション) は、機能ごとにいくつかの git リポジトリを維持し、git モジュールを使用してそれらをプロジェクトに追加することです。

于 2011-09-14T16:33:52.423 に答える