上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
研发环境
Google非常注重研发效率,我们围绕着自己的基础设施构建了一整套研发环境(参见文献[Mor12b])。
除了一些开源项目之外(Android和Chrome等),其他Google软件工程师全部使用同一个共享软件仓库开发(参见文献[Pot16])。这同时也对我们的日常工作流带来一些挑战:
● 如果一个工程师遇到了他工作的项目之外的一个基础组件的问题,他可以直接修改这个问题,向管理者提交一份改动申请(changelist,CL),等待代码评审,最后直接提交。
● 任何对自己项目代码的改动也需要代码评审。
在软件编译的过程中,编译软件会向运行在数据中心的编译服务器发送请求。Google编译软件可以通过并行机制处理超大型编译请求。这套技术架构体系同时也用来进行持续测试。每当一个CL被提交时,所有被这个CL直接或间接影响到的测试都会运行一次。如果测试框架检测到一个CL破坏了其他某个系统的正常工作,测试框架会向提交者发送通知。有些项目组甚至在实践自动部署机制:提交一个新版本,测试通过后,将直接部署于生产环境。