好吧让我们假设我有一个很棒的外观应用程序和一些帖子,可以评论和投票。它在线,人们喜欢它。
现在想象一个客户出现并告诉我“嘿,这个应用程序看起来不错!我可以拥有相同的一个,但我的标识和投票也在评论上吗?”
好吧,我克隆应用程序,进行更改,然后我将调整后的应用程序交付给客户端,然后我回到原始应用程序并继续使其更好。
一对夫妇在几个月后又来了另一位客户,也想要相同的应用程序(现已改进),但也有评论投票。
当然,我意识到克隆应用程序首先并不是一个聪明的主意。
我想知道的是,您如何从一开始就将第二个项目中第一个客户的功能重用为简单,可维护和干燥?
然后想象很多客户都有许多不同的请求功能。现在你意识到能够用这个功能或者这个功能“构建”一个新的应用程序真是太棒了,但不是这个,等等。
你将如何实现这一目标?
我想git branches可能是实现这一目标的好方法,或者可能是Rails Engines / Gems,或者我不知道,但我绝对不是git或rails足够熟练,无法清楚地看到这些洞图片。
谢谢!
答案 0 :(得分:2)
我们公司也有同样的情况,我们已经做了很多不同的事情来使我们的开发更加模块化。
首先,我们使用一些内部gems和Rails引擎。例如,我们开发了一个博客引擎,我们几乎每个项目都会启动它。
另一种选择可能是担忧。例如,您可以将评论系统推断为关注点,并将其移植到具有类似需求的其他项目中。
或者(也许,我最不喜欢的选项)是使用每个功能维护一些git repos并使用git模块将它们添加到你的项目中。