我刚在一家基于产品的公司开始了一项新工作,该公司允许客户定制。我在A产品上工作。
例如,产品A被出售给客户1和客户2。因此,每个客户端都请求自己的自定义。这些自定义必须与主流特性保持分离。但是,新的主流特性必须包含在每个客户端的副本中,同时保留它们自己的自定义。
客户端可以请求自定义,从简单的字段命名或添加/删除网格或报表列到添加/删除整个页面或模块。
我们刚刚开始使用SVN来管理我们的C#.net代码。
我的问题是:根据任何人的经验,在减少重复工作量的同时,管理所有这些需求的代码的最佳方法是什么?
分支可以解决部分问题,但是主流特性将不包含在客户端的版本中。
我希望这个问题足够清楚,请尽可能清楚地解释你的建议,也许举例说明。谢谢
发布于 2014-04-27 08:03:01
你可以用
就我个人而言,我更喜欢方式1--这种情况我每秒钟都知道,产品每个客户都有(而且还没有从日志历史中重建它),以及这个产品在整个生命周期中是如何进化的。
发布于 2014-04-27 07:40:27
在我的公司我们也有同样的情况。我们的解决办法:
- client 1 (v1, v2 etc)
- client 2 (v1, v2 etc)
- main version branches tags - release for main product version and client tags
当我们开发主要产品时,我们将致力于主干(或未来的分支)。当客户端请求新功能时-我们将在客户端版本分支中开发此功能。发布后,我们制作了客户端标记(在标记中),如果客户端功能良好,并且我们决定将它包含到主版本中,我们将他的更改合并到主干。另一边--如果主干的主要功能必须包含到客户端版本--我们将合并到客户端分支。
我们有大约6个不同的客户端版本。实际上,我们是手动进行合并的,但很快我们就想让批处理自动完成这个过程。
发布于 2014-04-27 07:35:54
我建议不要为每个客户保留一个永远不同的分支机构。这将使任何更改都很痛苦,因为可能会有某个客户端的分支产生合并冲突。
从您给出的示例来看,这听起来更像是一个简单的允许更多配置的问题。您可以允许通过某种管理界面配置字段名、列、页和模块,并将配置存储在客户端。或者,如果您希望保留完全控制,并且不希望构建这样的UI,请将每个客户端的配置存储在您的终端上,并代表他们更新它。
https://stackoverflow.com/questions/23320601
复制相似问题