2010-08-16 68 views
1

我有一个程序,我选择复制,因为它正在被修改,以满足完全不同的市场的要求。然而,该计划的许多方面,尤其是大部分内容,将保持不变(目前)。我们针对的特定市场受政府监管,并且在处理过此类情况之前,我了解到任何东西都可以在任何时间更改。你如何管理多个程序都做类似的事情?

我基本上有两种方案可供选择:

选项1:不要重复程序。根据用户类型对现有程序进行更改。 选项2:复制程序。对模板和编程进行必要的更改。

如果我选择选项1,代码将很快变得无法管理,并且代码中散发着警告。对该项目做出很大的改变也很困难。

如果我选择选项2,并且需要对两个程序之间常见的区域进行更改,那么我必须执行两次。

我觉得这两种选择都是一个坏主意,我觉得必须有更好的方法来处理这个问题。还有什么我可以做的吗?

你如何管理多个程序都做类似的事情?

StackOverflow似乎可以很好地处理它们的多个StackExchange站点。

该项目是一个使用PHP,HTML,CSS,JS,PostgreSQL,Apache和SVN的Web应用程序。

在此先感谢!

回答

0

谢谢您提交的答案。

我和我的团队决定在Subversion中使用分支和标签来管理这个问题。

我们将保留一段代码作为基础程序。当我们需要为新市场大量修改主干时,我们将从主干创建一个分支并在那里进行必要的更改。

这将使我们能够保持我们所做的所有更改以及它们的应用位置的良好记录。

2

我会推荐阅读Martin Fowler重构书的第一章。它处理一个非常类似的困境。

3

如何:

  • 维护公用部分
  • 在每一个地方,软件的两个“版本”需要做的事情不同的连贯的代码库,调用一个函数
  • 声明在“版本”特异性源文件中的函数
  • 有,你可以换入或换出两个这样的源文件

这在PHP中特别容易,你可以真正在某个文件中声明一个全局函数。

相关问题