Google如何管理20亿行代码

《Wired》今天一篇文章谈到Google的代码量已达到20亿行,并简单介绍了Google是如何管理这些代码的。

这20亿行代码,涉及搜索、Gmail、文档、地图、YouTube、Google+等绝大多数Google提供的服务,存储在“一个”代码仓库中,两万五千名Google工程师都可以访问——这可能是世界上最大的单一代码库。只有几个例外:涉及机要信息的代码,如PageRank算法,或者相对独立的项目,如Android和Chrome系统储存在其他单独代码库中。工程师之间可以方便的共享代码——这意味着所有新项目和功能都能利用之前已经写好的代码——20亿行已经几乎无所不包了,而且一处改进,所有相关项目都能受益。

20亿行是什么概念?14年前,Windows XP发布时,包含4500万行代码——Google的代码数量,约为40多个XP。

Google使用一个称为Piper的系统管理这个巨大的代码仓库——这套系统运行在10个不同的数据中心之上,管理的数据量约为85TB,Google工程师每天会进行45000次commit。这又是什么概念?相当于Google工程师每周就重写了一次Linux。

不仅如此,这套从前任Perforce演化而来的系统,还要帮助人类工程师打理各种琐碎的代码修改和提交工作,例如检查Bug和清理用不到的代码,生成必要的配置文件等等——维护代码库健康的工作不仅是工程师在做。

此外,Google正与Facebook合作,计划将类似的强大代码管理工具提供给外界,让公司之外的所有工程师都能受益。不过这套系统并非基于Git,而是Mercurial。当这套系统公之于众时,GitHub会受什么影响?

其实不仅Google的代码庞大复杂至此,微软也毫不逊色。Hacker News上就有微软工程师讲到了自己了解的数据:仅Windows build system每天在微软内部网络产生的交换数据量,就相当于Netflix所有电影总和的数倍!

时间: 2024-12-29 11:30:07

Google如何管理20亿行代码的相关文章

谷歌代码库已超过 20 亿行代码,他们是如何管理的

谷歌代码库已超过 20 亿行代码,他们是如何管理的? IT蓝豹发表于 2015/10/22 Google有多庞大?要回答这个问题,我们可以看收入,看股价,看客户数量,看影响力.但是这都还不够充分.说到规模,那么Google绝对是一个巨大的计算机软件帝国.为了印证着一点,我们还可以看看Google的代码规模. 周一,Google员工 Rachel Potvin 在一个硅谷举办的工程会议上提到了代码量这个问题(看视频,请科学上网).根据她的估计,你平时用到的Google互联网服务的软件(包括搜索服务

谷歌为什么把上十亿行代码都放在一个仓库里

相对于一般公司,Google 使用了单一代码仓库,很多人不理解为什么这么做.本文作者是谷歌基础设施小组的工程师,他对这个问题进行了详细解读. 早期 Google 员工决定使用集中式源代码管理系统来管理代码库.这种方法已经在 Google 运行了 16 年以上,而今天绝大多数的 Google 软件仍然存储在一个共享的代码库中. 随着 Google 开发软件数量稳步增加,Google 代码库的规模也呈指数增长. 因此,用于管理代码库的技术也发生了显著变化. 本文概述了该代码库的规模,并详细介绍了 G

为什么上十亿行代码都放在同一个仓库里?

%E5%88%86%E6%9E%90%E5%B8%88%E9%A2%84%E8%AE%A1TwitterCEO%E4%B8%80%E5%B9%B4%E5%86%85%E7%A6%BB%E8%81%8C%EF%BC%9A%E8%82%A1%E4%BB%B7%E4%B8%8A%E6%B6%A8 http://music.baidu.com/songlist/498670170http://music.baidu.com/songlist/498670215http://music.baidu.com

HTML5游戏实战之20行代码实现打地鼠

之前写过一篇打地鼠的博客70行的代码实现打地鼠游戏,细致思考过后,发现70行代码都有点多余了,应用tangide的控件特性,能够将代码量缩减到20行左右. 先show一下终于成果,点击试玩:打地鼠.或者扫描二维码: 假设你想在这个游戏上改进.点击这里. 開始解说之前,打个广告.欢迎html5游戏开发爱好者扫描下方二维码或者搜群号223466431,增加开发人员QQ群,我们免费提供最高速的开发工具.我们的全部html5游戏都开源. 整个游戏的开发.基于在线H5游戏开发工具TangIDE,相关开发文

Python40行代码实现天气预报和每日鸡汤推送

情人节刚过去几天,但是这和我们程序员有什么关系呢,对我们来说,万物皆对象.但是啊,小编为了讨得仰慕已久的女神的欢心(真香),便用python爬取了爱词霸网站的每日一句和天气预报网站的天气预报,并且每天定时将内容推送到女神的手机短信中(代码实现,不需要短信费哦). 好东西要学会分享,因此小编打算分三个步骤来教大家实现,最后会给出源代码. 第一步,实现爬取爱词霸网站的每日一句:爱词霸的每日一句包括了英文版和中文版.爬取下来实际上4行有效代码就能搞定,不过为了提高代码的重用性,就将这个功能封装成了一个

天才黑客!17岁打脸乔布斯,20岁搞疯索尼,26岁叫板特斯拉,写2000行代码市值8000万美金

文/创日报 今天说一个屌到飞起的黑客小哥! 扒他的时候创哥就觉得无比的欢快, 因为他的人生用三个字就能概括: “爽!爽!爽!” 不但颜值出众,智商更是卓绝! 89年出生,却把互联网巨头玩弄于股掌间, 17岁仅靠一把螺丝刀,破解了iPhone核心基带, 让iPhone变成了全网通. ▼ 无数人削尖脑袋都挤不进去的 “Google,SpaceX,Facebook” 人家拍拍屁股混了一圈, 说不干就不干! 因为觉得人生太无聊, 顺手破解了索尼的游戏机, 逼的索尼将他告上法庭, 还引发了世!界!级!黑客

HTML5游戏实战(4): 20行代码实现FlappyBird

这个系列很久没有更新了.几个月前有位读者调侃说,能不能一行代码做一个游戏呢.呵呵,接下来一段时间,我天天都在想这个问题,怎么能让GameBuilder+CanTK进一步简化游戏的开发呢.经过几个月的努力,虽然还是做不到一行代码做一个游戏,但是GameBuilder的功能已经有了质的突破了.今天我们用FlappyBird为例介绍一下用GameBuilder +CanTK开发游戏的方法,整个游戏用了不到20行代码. CanTK(Canvas ToolKit)是一个开源的游戏引擎和APP框架,是开发H

20 行代码极速为 App 加上聊天功能

现在很多 App 都需要集成 IM 功能,今天就为大家分享一下集成 IM 基本功能的步骤.本文内容以 JMessage 为例.极光 IM ( JMessage ) = 极光推送 ( JPush ) + IM,本篇只论述其中的 IM 部分,为大家快速集成 IM 功能提供一个简明的范例. 我们先来看一下 IM 的基本功能与本文内容的对应关系: line 0:准备工作 下载 SDK 集成 SDK line 1:引入头文件 #import <JMessage/JMessage.h> JMessage

[转帖]知道这20个正则表达式,能让你少写1,000行代码

知道这20个正则表达式,能让你少写1,000行代码 https://zhuanlan.zhihu.com/p/29163295 一直说要学习 正则 一直没学习.. 正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑.熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升. 正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代码: var reg = /^(\\d{1,4})(-|\\/