日期:2014-05-20  浏览次数:20734 次

怎么样最大减少版本化
大家好,
现在公司有一个产品,但这个产品对于不同客户定制性较强,现在是每个客户一个分支来进行管理的,但又有很多的公用的地方,例如数据访问层大约80%是相同的,只是隅而会遇到表结构不同,但也只是很少的情况。

在这种情况下,发现一处需要修修改的地方,基本就是把所有客户分支全修改一遍,这个我一直觉得不科学,但又没有找到更好的方法,请高手们指一下,产品化需要注意的地方,和最大程度减少版本化, 不用每次修改都把几十个客户的版本全部修改一遍,谢谢大家!

程序采用的是.net

------解决方案--------------------
产品化是个很大的话题,三言两语很难说清。

基本思想是主体结构要稳定,要可配置,
利用配置来完成绝大部分用户需求,

同时要预留定制开发接口,以满足特殊要求。
------解决方案--------------------
我们从来不考虑在源代码管理系统上进行什么分支。这就好像你没有必要要求建筑工人考虑将来买房的人家庭是否和睦一样。如果你要求简单的开发工具也能给你解决需求分化问题,那么自然就会产生很多诡异的问题。

我们开发一个产品,在这个产品中考虑到“用户需求千变万化”的问题。也就是说是找好那种具有这种软件设计能力的人才,这种人一开始就能够在产品设计进度和测试开发进度中给我们随时模拟出不同客户端“随时随地”提出刁钻的临时需求变更时软件该怎样表现,而不是从什么源代码管理系统上去找答案。
------解决方案--------------------
你想要让源代码管理系统给你解决客户需求变化问题,这其实是勉为其难的。

在软件部署时,你必要部署全部内容。这就要求你的架构师预先就对软件资源的下载、缓存机制进行指导。例如一个产品有200M资源和其它扩展内容(包括dll、exe等等),而一个企业第一次安装只需要下载3M就可以开始运行了,其它的都是动态下载的,(某个)企业客户端需要什么就下载什么。这个时候,你开发软件就是一个完整的产品,不需要考虑分支。反过来我们可以说,你之所以纠结于分支,是因为没有考虑清楚软件部署问题。