2

好的,假设我有一个很棒的带有一些帖子的 Rails 应用程序,可以评论和投票。它是在线的,人们喜欢它。

现在想象一个客户过来告诉我“嘿,这个应用看起来不错!我可以拥有相同的应用,但带有我的徽标和对评论的投票吗?”

好吧,我克隆应用程序,进行更改,然后将调整后的应用程序交付给客户,然后我回到原来的应用程序并继续改进它。

几个月后,另一个客户来了,也想要同样的应用程序(现在改进了),但也对评论进行了投票。

当然,我首先意识到克隆应用程序并不是一个聪明的主意。

我想知道的是,您将如何从一开始就使其变得简单、可维护和 DRY 以重用为第二个项目中的第一个客户制作的功能?

然后想象一下很多客户都有很多不同的请求功能。现在你意识到能够“构建”一个只有这个功能或这个功能的新应用程序真是太棒了,而不是这个功能,等等。

你将如何做到这一点?

我想 git 分支可能是实现这一目标的好方法,或者可能是 Rails Engines/Gems,或者我不知道,但我绝对没有足够熟练的 git 或 rails 来清楚地看到漏洞图。

谢谢 !

4

1 回答 1

2

我们公司也遇到过同样的情况,我们做了很多不同的事情来使我们的开发更加模块化。

一方面,我们使用了一些内部 gem 和 Rails 引擎。例如,我们开发了一个博客引擎,几乎每个项目都会启动它。

另一种选择可能是担忧。例如,您可以将评论系统外推到关注点,然后将其移植到具有类似需求的其他项目。

或者(也许是我最不喜欢的选项)是为每个功能维护一些 git 存储库,并使用 git 模块将它们添加到您的项目中。

于 2011-09-14T16:33:52.423 回答