谈到这个问题,就不得不谈现时电子商务网站的现状了。
很多时候,在测试机上做开发的代码杂七杂八的功能都非常多,在没有使用UNIT等单元测试的时候,一些废弃功能也就永久的留在测试机上不会被删除。短时间内看不出啥问题,但时间长了,原有开发人员离职后,新的开发人员进入,如果再做上这些事情,那么时间长之后,哪些代码有效,哪些是测试代码就再也分不清了。
以下就是一位网友的经历:
首先,之所以把这个问题发到首页,一是我身边的朋友都有类似的问题,并且目前都没有最好的解决方案;二是有些朋友有好的解决方案,但是不一定是合理的方案,所以发到首页来相互学习,讨论。
我们进行WEB系统的电子商务系统开发,目前我有个问题不知道该怎么解决,想问问大家,看有什么好办法解决,情况如下:
1、我公司自己开发了一套电子商务系统,1.0的版本已经在运营。
2、现在开发人员要对该系统进行后续版本的功能增加,比如增加一些1.0中未实现的功能,甚至有时候还要改动1.0中的业务逻辑。
那么我的问题是:
在开发人员对后续功能进行增加的过程中,如果有一天发现1.0的版本中,有个严重的BUG,需要马上处理;
但是目前因为增加后续版本功能,代码已经修改了很多,这个时候,如果把1.0版本中的BUG修复,再布署到生产环境中的话,会出现很多两个版本中间不配套的问题,而出现程序错误;
然而,又不能全部布署最新的版本,因为当前的版本功能还没能完成。
这个时候,怎么办?
另外,我们开发环境中的数据库和生产环境中的数据库,数据同步的问题,比如1.0版本中的数据库已经有真实的用户数据和销售数据,但是我们后续的开 发工作可能增加了表,或修改了表的字段;本来是把后续的修改更新上去就可以了,但是我们在开发新功能的时候,开发环境中的数据库可能需要生产环境中的最新 数据才能进行。
这个时候,怎么办?
第一个问题,有朋友告诉我使用源码管理中的“分支”功能;
第二个问题,有朋友告诉我,在有需要最新的生产环境数据的时候,直接手工把数据导过来;
但是我总觉得应该还有更好的办法,或还有更细节的地方需要考虑和注意,特请有相关经验的人士一起讨论,谢谢。
补充:
虽然程序会经过严格的质量测试,但是布署到生产环境中的时候,难免还会有错误,像支付宝、淘宝这样的系统,他们除了质量测试,还有其他的技术手段来保证新的程序版本布署到生产环境中出现错误,不知道他们是如何做的。
关于程序的发布,另外还有两个朋友告诉我两种不同的解决方式:
1、是WEB程序的版本路径来区分,比如1.0的版本,上线发布的地址就定为:
http://pay.baidu.com/v1.0/login
而1.1的版本上线地址则为:
http://pay.baidu.com/v1.1/login
这样可以避免版本的冲突,但这个方法不适合我们的系统
2、上线的时候采用两台服务器切换,一旦有问题,直接切换到另已台服务器(这个方式我想没有正面地解决问题)
2009-11-18 晚上22:03
回家在网上找了资料,看了微软的一本书《使用 Visual Studio Team Foundation Server 进行团队开发》,简称“使用TFS进行团队开发”,其中看到两幅图,如下:
再参考了一下相关的文字说明,我想,解决我面临的问题,最佳的办法应该还是使用版本控制是最好的,在此感谢园子里面所有给予建议和解决思路的朋友,谢谢你们。
-----EOF----
最后这位作者想到了使用版本控制,事实上版本控制是非常有必要的,有些时候我们还是需要为一段程序加上分支。要知道电子商务网站加减新功能可能是很频繁的。。
随便看看,好象自己没发表啥意见 。。。