Google 是如何构建 Web 框架的

浏览:
字体:
发布时间:2018-01-19 08:29:50
来源:

本文由 东方联盟 - 飞哥的咖啡 翻译。未经许可,禁止转载!
英文出处:Filip Hracek。欢迎加入翻译组。

众所周知,Google 使用单一代码库来共享所有 20 亿行代码,并且使用主干(trunk-based)开发模式。

它无疑是世界上最大的单一代码库之一。(具体内容见此)

对于公司之外的众多开发者来说,尽管这点令人惊讶,并且感觉违反常理,但它实际上运作得很好。(上面的文章已经给出了很好的例子,这里我就不重复了。)

Google 的代码库为世界各地数十个办事处,共超过 2.5 万名 Google 软件开发者提供共享服务。在一个普通的工作日内,他们能对代码库进行 1.6 万次修改。(具体内容见此)

本文是关于如何构建一个开源 Web 框架(AngularDart)的一些细节。

“人类用户”指的是在 Google 上提交代码的软件工程师,它与资源生成工具相反。(具体内容见此)

仅有单一版本

当你在单一代码库中使用主干开发模式时,你拥有的一切都是单一版本的。从字面上看,这很明显,但仍需要特别指出,它的意思是,Google 的 FooBar 不会有 AngularDart 2.2.1 和 2.3.0 两个版本,一定只会存在单一版本,而且是最新的版本。

这就是为什么 Google 的员工有时会说,他们所有的软件都处于行业前端,使用了最新的技术。

如果这时你突然想大叫“危险!”,这是可以理解的。诚然,仅仅依靠生产代码库中的主干(也就是 git 中的“master”),这听起来确实很危险。但别急,前方还有一个剧情转折点。

每个提交前的 7.4 万次测试

AngularDart 定义了 1601 个测试(看这里)。但是,当你在 Google 代码库中修改了 AngularDart 代码时,它也会为那些使用此框架的 Google 员工进行测试。目前,一次提交大约会进行 7.4 万次测试(取决于更改的程度,而系统会启发性地跳过不受影响的测试)。

当然,测试越多越好。

例如,我做了一个小更动(在这条 if 语句中添加了 && random.nextDouble() >

>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();