不要碰那块代码
我们每个人都曾经经历过这种情况:你的代码转到登台服务器上作系统测试,测试经理回复你说她发现了一个问题,你的第一反应是“快,让我来修复,我知道哪里错了”。
往更大的方面说,不对的地方是作为一名开发人员,你认为你应该可以访问登台服务器。
大多数基于web的开发环境的体系可以这样划分:
· 开发人员本地机器上的开发和单元测试
· 开发服务器上进行手工的或自动化的集成测试
· 登台服务器上QA团队和用户做验收测试
· 产品服务器
是的,里面还分布着其它的服务器和服务,比如源代码控制,但你应该明白我的意思。以这种模型,一个开发人员,甚至高级开发人员,都应该绝不访问开发服务器后面的那睦。大多数的开发都在开发人员本地的机器上、使用他们喜爱的IDE、虚拟机以及相关的一些带来好运的魔法来完成。
一但提交给了SCC(源代码控制),不管是手动地还是自动地,都应该转给开发服务器以供测试,而且如果需要的话,合在一起以便一切都能在一起正常工作。从此以后,开发人员就已经是一个旁观者。
登台管理员应该打包代码并转到登台服务器上给QA团队。就像开发人员没有访问开发服务器之后的任何东西一样,QA团队也没有需要碰开发服务器上的任何东西。如果准备好验收测试了,分一个发布版本并转发,不要请求客户“就快速地看一下”开发服务器上的东西。记住,其他人在上面也有代码,可能还没有准备好给用户看,除非你是自己在开发一个项目。发布管理员是唯一的可以访问两者的人。
在任何情况下都不应该,绝不应该,让开发人员访问产品服务器。如果有问题,支持人员会修复它或者请求你来修复,然后提交给SCC,他们会从里面转一个补丁包。我曾经经历的一些重大的程序灾难都是因为有人违反了这条规则。如果出了问题,不该直接在产品上修复。