别碰代码!

Don’t Touch that Code!

在我们每个人身上都发生过。你的代码放到预演服务器上用于系统测试,然后测试经理反馈她发现了个问题。你的第一反应就是“快,让我修复它——我知道错误在哪儿。”

从更大的意义上来说,尽管,作为一个开发者犯的错,你觉得你应该去访问预演服务器。

大多数基于web的开发环境中,架构可以像这样分解:

  • 本地开发,并在开发者机器上完成单元测试
  • 手动或自动完成在开发服务器上集成测试
  • QA团队和用户访问预演服务器完成测试
  • (发布到)生产服务器

是的,那里还有其它的服务器和服务,就像源码控制和票据,但你获得了注意。使用这个模型,一个程序员——甚至是一个有资历的程序员——应该永远不要访问除了开发服务器意外的东西。很多开发是在开发者本地机器用他们喜欢的IDE、虚拟机上完成的,为了好运,还会撒上适量的黑魔法。

一旦进入SCC检查,不论是自动还是手动,都应该将其从开发服务器转交出去,并可以在其它地方被测试和调整,以确保一切工作正常。尽管,从这点来看,开发者在此过程中只能是一个观众。

预演经理应该为QA团队打包并转移代码到预演服务器。就像开发者不需要访问任何开发服务器意外的事情一样,QA团队和用户也要碰任何在开发服务器上的东西。如果它准备接受测试,切出发布(分支)并移交,不要再让用户到开发服务器上“只是看一点东西,真的很快”。记住,除非整个工程代码都是你写的,否则其他人会在上面改代码,并且他们可能并没有准备好让用户看。发布经理才是唯一应该访问这两者的人。

在任何,所有情况下——都不应该——让一个开发人员去访问生产服务器。如果又问题,你的技术支持人员要么修复它,要么请求修复它。在SCC检入之后,它们将在此滚动一个补丁。我曾目睹过一些超大型的编程灾难发生,由于某些人(咳咳)违反了这条规则。如果它破掉了,生产可不是修复它的地方。

0%