Google 是如何构建 Web 框架的
本文由 东方联盟 - 飞哥的咖啡 翻译。未经许可,禁止转载!
英文出处:Filip Hracek。欢迎加入翻译组。
众所周知,Google 使用单一代码库来共享所有 20 亿行代码,并且使用主干(trunk-based)开发模式。
对于公司之外的众多开发者来说,尽管这点令人惊讶,并且感觉违反常理,但它实际上运作得很好。(上面的文章已经给出了很好的例子,这里我就不重复了。)
Google 的代码库为世界各地数十个办事处,共超过 2.5 万名 Google 软件开发者提供共享服务。在一个普通的工作日内,他们能对代码库进行 1.6 万次修改。(具体内容见此)
本文是关于如何构建一个开源 Web 框架(AngularDart)的一些细节。
仅有单一版本
当你在单一代码库中使用主干开发模式时,你拥有的一切都是单一版本的。从字面上看,这很明显,但仍需要特别指出,它的意思是,Google 的 FooBar 不会有 AngularDart 2.2.1 和 2.3.0 两个版本,一定只会存在单一版本,而且是最新的版本。
这就是为什么 Google 的员工有时会说,他们所有的软件都处于行业前端,使用了最新的技术。
如果这时你突然想大叫“危险!”,这是可以理解的。诚然,仅仅依靠生产代码库中的主干(也就是 git 中的“master”),这听起来确实很危险。但别急,前方还有一个剧情转折点。
每个提交前的 7.4 万次测试
AngularDart 定义了 1601 个测试(看这里)。但是,当你在 Google 代码库中修改了 AngularDart 代码时,它也会为那些使用此框架的 Google 员工进行测试。目前,一次提交大约会进行 7.4 万次测试(取决于更改的程度,而系统会启发性地跳过不受影响的测试)。
当然,测试越多越好。
例如,我做了一个小更动(在这条 if 语句中添加了 && random.nextDouble() >
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 11-18LG新能源宣布与Bear Robotics达成合作,成为
- 11-18机构:三季度全球个人智能音频设备市场强势
- 11-18闲鱼:注册用户过6亿 AI技术已应用于闲置交
- 11-18美柚、宝宝树回应“涉黄短信骚扰”:未发现
- 11-01京东七鲜与前置仓完成融合