2010-08-16 31 views
1

我有一個程序,我選擇複製,因爲它正在被修改,以滿足完全不同的市場的要求。然而,該計劃的許多方面,尤其是大部分內容,將保持不變(目前)。我們針對的特定市場受政府監管,並且在處理過此類情況之前,我瞭解到任何東西都可以在任何時間更改。你如何管理多個程序都做類似的事情?

我基本上有兩種方案可供選擇:

選項1:不要重複程序。根據用戶類型對現有程序進行更改。 選項2:複製程序。對模板和編程進行必要的更改。

如果我選擇選項1,代碼將很快變得無法管理,並且代碼中散發着警告。對該項目做出很大的改變也很困難。

如果我選擇選項2,並且需要對兩個程序之間常見的區域進行更改,那麼我必須執行兩次。

我覺得這兩種選擇都是一個壞主意,我覺得必須有更好的方法來處理這個問題。還有什麼我可以做的嗎?

你如何管理多個程序都做類似的事情?

StackOverflow似乎可以很好地處理它們的多個StackExchange站點。

該項目是一個使用PHP,HTML,CSS,JS,PostgreSQL,Apache和SVN的Web應用程序。

在此先感謝!

回答

0

謝謝您提交的答案。

我和我的團隊決定在Subversion中使用分支和標籤來管理這個問題。

我們將保留一段代碼作爲基礎程序。當我們需要爲新市場大量修改主幹時,我們將從主幹創建一個分支並在那裏進行必要的更改。

這將使我們能夠保持我們所做的所有更改以及它們的應用位置的良好記錄。

2

我會推薦閱讀Martin Fowler重構書的第一章。它處理一個非常類似的困境。

3

如何:

  • 維護公用部分
  • 在每一個地方,軟件的兩個「版本」需要做的事情不同的連貫的代碼庫,調用一個函數
  • 聲明在「版本」特異性源文件中的函數
  • 有,你可以換入或換出兩個這樣的源文件

這在PHP中特別容易,你可以真正在某個文件中聲明一個全局函數。

相關問題