1

基本上我的項目是基於產品的。 一旦我們開發了一個項目並捕獲多個客戶端並根據他們的需求部署應用程序。 但我們決定將新功能和項目相關模塊作爲組件。 現在我的應用程序有很多客戶。 每個客戶都需要基於組件的不同功能。 但是我們擁有所有客戶端的集中組件。我們將組件附加功能移至客戶端特定文件夾並進行部署。 我的問題是,我無法維護多個客戶端的組件功能。 我的組件功能代碼增加了,我無法跟蹤客戶端功能。 是否有任何解決方案來維護多個客戶端的多個組件功能?如何爲多個客戶端維護多個組件以實現多個功能?

回答

0

我曾在一個類似的空間 - 產品軟件,但非常大量定製的幾個公司工作。

從本質上來說,公司需要做出的決定是 - 你是一家產品公司嗎?(你的產品大致與每個客戶一樣)或者你是一家定製公司。目前聽起來像是他們在兩個凳子之間,並希望成爲一家產品公司的經濟體能夠像定製軟件公司那樣滿足特定客戶需求。

假設公司希望成爲一家產品軟件公司,除非有特定的技術原因,否則你需要移動到一個單一的代碼庫,修改每個客戶的定製選項(例如標誌說明如何處理這種特殊情況,這個功能是否可用等等)。

這些可以在運行時設置(因此可以根據客戶需要更改它們 - 考慮Word或Excel中的選項)或構建時間(因此在構建時包含/排除代碼),但是鍵事情是每個客戶都必須從相同的代碼庫中提取。

但是這需要與企業達成一致,因爲它限制了他們可以銷售的東西 - 他們銷售的每一個變化都必須符合單一產品可以滿足的總體願景。

另一種方法是,您基本上爲每個客戶端(專門爲他們想要的代碼編寫)製作定製軟件,但使用許多通用庫。這很好,可以讓你生產出正是他們想要的東西,但最終會有更多的工作,業務需要理解併爲此付出代價。

我們實際上做了兩個 - 有一個服務器產品是所有客戶端相同,然後是網絡和移動客戶端是特定於他們(在移動的情況下,你不能有很多死代碼在設備上 - 網站的東西是歷史性的,並將轉移到所有客戶的標準產品)。

祝你好運,這是一個難以解決的難題。

0

您實質上是在談論軟件產品線(SPL):與公共基礎的差異。由於您已將功能打包爲組件,因此您需要專門的工具來管理這些變化。

然後,您可以基於對任何給定客戶唯一的配置來構建完整的自定義應用程序。當然,說起來容易做起來難。

模型驅動的軟件開發(MDSD)方法可以幫助完成這項任務。一個可以支持這種開發設置的系統是ABSE,這是一種新興的MDSD方法,可以實現軟件產品線(信息:http://www.abse.info - 免責聲明:我是ABSE項目主管)。目前還沒有產品。阿爾法預覽即將到來。

同樣,我知道一些使用MDSD和代碼生成技術的公司已經實現了我所理解的你想要的產品:半封裝,半定製的產品。