- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们为特定的利基行业编写了一个软件包。这个套餐非常成功,我们已经与业内几个不同的客户签约,他们将我们用作托管解决方案提供商,还有许多其他客户正在敲响我们的大门。如果我们取得了预期的成功,我们将拥有数百个客户,每个客户都有自己的网站托管在我们的服务器上。
问题是,每个客户都有自己的小定制和调整,他们需要根据自己的本地情况和条件进行调整,通常(但并非总是)基于本地州甚至县立法或官僚机构。因此,虽然所有客户端的系统 90-95% 可能都是相同的,但我们必须构建并支持这些小的定制。
此外,该系统仍处于开发阶段。核心系统不断进行增强和错误修复,需要应用于所有客户端。
我们正在使用 .NET(ASP、C#)编写代码,MS-SQL 2005 是我们的数据库服务器,并且我们正在使用 SourceGear Vault作为我们的源代码控制系统。我之前曾在 Vault 中处理过分支,如果您只需要保持 2 或 3 个分支同步,那就太好了 - 但我们正在考虑维护数百个分支,这是不可想象的。
我的问题是:您建议我们如何管理这一切?
我希望答案能够解决诸如对象架构、Web 服务器架构、源代码控制管理、开发团队等问题。我有一些自己的想法,但我在管理此类问题方面没有真正的经验,而且我'我非常感谢以前做过此类事情的人的来信。
谢谢!
最佳答案
我建议反对为每个客户维护单独的代码分支。对于维护核心的工作代码来说这是一场噩梦。
我确实建议您实现 Strategy Pattern并在您更改核心时通过自动化测试(例如单元和功能)覆盖您的“客户定制”。
更新:
我建议,在您获得太多客户之前,您需要建立一个创建和更新每个网站的系统。当然,您的参与程度将由您当前的收入来源来平衡,但您应该有一个目标。
例如,当您刚刚注册客户 X(希望全部通过网络)时,他们的网站将在 XX 分钟内创建,并向客户发送一封电子邮件,表明其已准备就绪。
您肯定想要设置一个持续集成(CI)环境。 TeamCity是一个很棒的工具,而且免费。
完成此操作后,您将能够在暂存环境中检查更新,然后可以在生产实例中应用这些补丁。
底线:一旦您获得了少数客户,您就需要开始考虑将您的操作和部署自动化,将其作为另一个应用程序。 p>
更新:此 post强调了按客户进行分支的负面影响。
关于version-control - 如何管理业务规则略有不同的多个客户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1662464/
直接问题:对于一个类对象的三个(或更多)几乎相同的拷贝,我怎样才能最好(或最有效)地存储它们之间的差异? 背景:我有一个需要一组参数的算法: struct params { std::strin
我是一名优秀的程序员,十分优秀!