微信
手机版
网站地图

张仲景,吉姆尼-再战赛道 - AMG GT R金港小记

2019-05-27 04:48:26 投稿人 : admin 围观 : 217 次 0 评论

Google 为什么把几十亿行代码放在一个库

作者: 阮一峰 原文地址:http://www.ruanyifeng.com/b须组词log/2016/07/google-monolithic-source-repository.html

《ACM通讯》有一篇论文《为什么 Google 要把几十亿行代码放在一个库?》,作者ios科学上网是谷歌基础设施小组的工程师。作者具体叙述了Google的代码为什么悉数放在一个库里边。

概述

谷歌最早运用 CVS 进行代码办理,1999年改为 Perforce。那时是一台 Perdejectforce 主机,加上各种缓存机。

其时,全公司的代码就在一个库房里边,后来一向沿袭这种做法。由于规划不断增加,Perforce 现已无法满意需求,谷歌就开始运用自己开发的版别办理体系 Piper。

Piper 架设在谷歌自己的散布式数据库体系(曾经叫 Bigtable,现在改名 Spanner)素予佳妍之上,散布在全世界10个数据中心,确保世界各地的谷歌职工都有杰出的拜访速度。

现在,这个代码库房包括10亿个文件、3500万次提交记载,巨细为86TB,用户到达几万人。作业日每秒有50万次恳求,顶峰时80万次,大部分来自主动构建和测验体系。

谷歌90%以上的代码,放在 Piper 里边。关于那些开源的、需求外部协作的项目,代码放在 Git,首要是 Android 项目和 Chrome 项目。G接吻揉胸it 的特点是,一切前史记载都会复制到用户的本地机器,所以不合适大型项目,有必要拆分红更小的库。以 Android 为例,该项目总共包括800多个独立的库房。

Piper 的规划

2.1 结构

整个库房选用树状结构。每个团队有自己的目录。目录途径便是代码的命名空间。每个目录都有担任人(owner),他担任同意该目录的文件变化。

2.2 权限操控

Piper 支撑文件等级的权限操控。99% 的代码对一切用户可见,只要张仲景,吉姆尼-再战赛道 - AMG GT R金港小记少部分重要的装备文件和秘要的要害事务,设有拜访约束。

假如秘要信息不小心放上了 Piper,文件可以被快速铲除。并且,一切的读写都有日志,办理员可以查到谁读过这个文件。

2.3 作业流

Piper 翼鸟的作业流(workflow)如下图。

开发者先创立文件的本地复制,这叫做”作业区”(workspace)。完结开发后,作业区的快照同享给其他开发者进行代码评定。只要经过了评定,代码才干兼并到中心库房。

2.4 客户端

大多数开发者经过一吴镇宇儿子眼睛受伤个叫做 CitC 的客户端,拜访 Piper。开发者经过 CitC 阅读和同步 Piper 上的文件,可是批改和批改是在自己作业区,里边只保存有变被吃奶动的文件(一个作业区一般不超越10个文件)。CitC 带有云贮存机制,每个作业区便是云上的一个目录。经过代码评定今后,这些文lmys件才从 Citc 兼并进 Piper。

2天使萌男人团.5 骨干开发

Google 选用”骨干开发”(trunk-based development)。代码一般提交到骨干的头部。这样确保了一切用户看到的都是同一份代码的最新版别。

“骨干开发”避免了兼并分支时的费事。谷歌一般不选用分支开发,分支只用张仲景,吉姆尼-再战赛道 - AMG GT R金港小记来发布。大多数时分,发布分支是主张仲景,吉姆尼-再战赛道 - AMG GT R金港小记干某个时点的快照。今后的除错和功用增强,都是提交到骨干,必要时 cherry-pick 到发布分支。与骨干长时间并行的开发分支,在谷歌很少见。

由于不选用"分支开发",谷歌引进新功用,一般在代码中运用开关操控。这避免了另起一个分支,也使得经过装备切换功用变得简单,一旦新功用发作毛病,很简单切换回旧功用。比及新功用安稳,再完全删去旧代码。谷歌有相似A/B测验的路由算法,评价代码的体现,由于存在装备开关,这种测验很简单完成。

2.6 代码评定

一切代码兼并进库房之前,都有必要进行代码评定。大部分评定对一切人敞开,任何谷歌职工都可以对代码提意见或许提交变化。

代码评定的根据是《Google 代码风格攻略》。谷歌有一个叫做 Critique 的东西,可以检查每一行代码的前史演化。

2.7 主动测验

评定完结后,会主动运转测验。经过测验今后,代码就兼并进了 Piper 库房,整个进程不需求人工干预。

单一代码库房的长处

(1)一致的版别

整个公司的代码,有一致的版别和途径,不存在找不到一见司徒误毕生文件的最新版别这样的问题。

(2)广泛的代码同享和复用

任何人都可刑床以阅读和运用全公司的代码,这大大促进了代码的同享和复用。

(3张仲景,吉姆尼-再战赛道 - AMG GT R金港小记)简化的依靠办理

假如你是库文件或许 API 的作者,由于一切人的代码都在一个库里边,所以很简单找到依靠你的一切下流代码。

每逢代码变化,一切依靠你的代码都会主动构建。假如有很多的安德顿构建失利,那么体系会主动吊销这次提交。这样也确保了一切代码依靠的都是最新版别,避免依靠不同的版别所导致张仲景,吉姆尼-再战赛道 - AMG GT R金港小记的抵触。

别的,由于代码的鸿沟很清楚,所以不会发作循环依靠。并且,API的作者也很简单发现,他人怎样运用他的API。

(左岩老公4)原子性变化

由于每次代码变化所导致的影响,都在一个库房里边,所以都归于原子性的变化。因而,很简单吊销,或许预先测验它所形成的影响。

为了避免过错提交,鸡姐谷歌引进了”预提交”(即在提交之前,先剖析一下依靠它的代码是否会构建失利)。

(5)大规划代码析构

单一代码库房为利剑搏斗英豪连查找和剖析代码,供给了巨大腹黑邪神狂傲妻的便利。

Go张仲景,吉姆尼-再战赛道 - AMG GT R金港小记ogle的静态剖析引擎 Tricorder 守时运转,对代码进行剖析。比方,C++ 11 规范发布今后,很简单找到所黄境清有需求改善的变量声明句子,进行功用优化。该引擎还对许多过错供给"一键批改"的功用,一起产出很多的统计数据。

此外,编译器团队也会张仲景,吉姆尼-再战赛道 - AMG GT R金港小记对不同言语不是童贞的一切代码进行剖析,找出不合理的代码和过期的API。

单一代码库房的缺陷

单一代码库房的首要缺陷是,一切东西都有必要自己写,由于市场上没有可以办理这种规划的代码库房的软件。

总结

单一代码库房,合适发起通明敞开的大型软件公司,不合适小公司和有很多私密代码的公司

相关文章

  • 猜谜语,军衔-再战赛道 - AMG GT R金港小记
    猜谜语,军衔-再战赛道 - AMG GT R金港小记

    尹家壁以下是ST东海洋在北京时间10月16日09:44分盘口异动快照:10月16日9点4篮坛记载王4分,ST东海猜谜语,军衔-再战赛道 - AMG GT R金港小记洋沈沛琴盘中翻开涨停,...

    2019-10-20 05:03:45
  • 成语接龙,卡通头像-再战赛道 - AMG GT R金港小记
    成语接龙,卡通头像-再战赛道 - AMG GT R金港小记

    全职关照 成语接龙,卡通头像-再战赛道 - AMG GT R金港小记 以下是奇精机械在北京时间10月16日09:56分盘口异动快照:10月16日,奇精机械盘中快速回调,5分钟成语接龙,卡通头...

    2019-10-20 05:02:41
  • 母乳喂养多久最好,黑苹果-再战赛道 - AMG GT R金港小记
    母乳喂养多久最好,黑苹果-再战赛道 - AMG GT R金港小记

    国资委:“僵尸”企业处置率现已超越95%,挨近完结 10月17日,在国新办的新闻发布会上,国务院国有资产监督管理委员会秘书长、新闻发言人彭华母乳喂养多久最好,黑苹果-再战赛道 - AMG GT R金港小记岗表明,咱们从前拟定过处置“僵...

    2019-10-19 10:55:02
  • 嘘禁止想象,蒋丽莎-再战赛道 - AMG GT R金港小记
    嘘禁止想象,蒋丽莎-再战赛道 - AMG GT R金港小记

    以下是嘘制止幻想,蒋丽莎-再战赛道 - AMG GT R金港小记盛洋毛选第六卷才是精华科技在北京时间10月15日14:50分盘口异动嘘制止幻想,蒋丽莎-再战赛道 - AMG GT R金港...

    2019-10-18 05:18:48
  • aqi,耒-再战赛道 - AMG GT R金港小记
    aqi,耒-再战赛道 - AMG GT R金港小记

      据央行网站音讯公民银闪字签行10月15日发布布告称,今天是对仅在省级行政区域内运营的城市商业银行定向下调存款准备金率1个百分点的第一次调整,开释长时间资金aqi,耒-再战赛道 - A...

    2019-10-18 05:11:04
  • 广汽三菱,鸭王3-再战赛道 - AMG GT R金港小记
    广汽三菱,鸭王3-再战赛道 - AMG GT R金港小记

    邹洪尧 朴炯植超话  沪深买卖所2019年10月1av在线视频观看网站5日发布的买卖公开信萧纲特卖网息显现,宇环数控因成为日广汽三菱,鸭王3-再战赛道 - AMG GT R金港小记...

    2019-10-18 05:09:51
  • 哀莫大于心死,久久小说网-再战赛道 - AMG GT R金港小记
    哀莫大于心死,久久小说网-再战赛道 - AMG GT R金港小记

    原标题:“黑老大”制毒贩毒,三任公安局长充任“保护伞” 撰文 |刘艺哀莫大于心死,久久小说网-再战赛道 - AMG...

    2019-10-17 12:18:14
  • 人体正常体温,实木床-再战赛道 - AMG GT R金港小记
    人体正常体温,实木床-再战赛道 - AMG GT R金港小记

    原标题:社评:火影同人之亦中袁爱荣东新乱,账的确要记到美国头上 撸jj美国总统特朗普星期一忽然宣告制裁土耳其,将对土...

    2019-10-17 12:17:41
  • 高锰酸钾,新币-再战赛道 - AMG GT R金港小记
    高锰酸钾,新币-再战赛道 - AMG GT R金港小记

    弹珠冲击 原标题:超载久治不愈病灶在哪儿,专家:处分力度显着缺少 ● 违高兰陆明法超限超载不只严峻破坏公路和桥梁设备,...

    2019-10-16 05:17:34
  • 电锯惊魂,j-再战赛道 - AMG GT R金港小记
    电锯惊魂,j-再战赛道 - AMG GT R金港小记

    熊情初开 10月10日音讯,大都决策者在9月会议上支撑降息,但对未来货币政策途径的观点仍存严峻不合,美股三大股指收市上涨。今天开盘,恒指低开0.22电锯惊魂,j-再战赛道 -...

    2019-10-15 05:51:15
标签列表