微信
手机版
网站地图

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

2019-05-27 04:48:26 投稿人 : admin 围观 : 222 次 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金港小记

    阅读提示在北京城市副中心,一片规划近万亩的城市森林雏形已呈现在北运河南岸。据了解,北京城市副中心城市“绿心”以“千年惠林”为规划愿景,被命名为“东方绿星”,是副中心要点功用区之一,制作面积约11.2平方公里。“绿心”美化布局为“一核、两环、...

    2019-12-16 05:48:41
  • 曹操墓,平顶山天气-再战赛道 - AMG GT R金港小记
    曹操墓,平顶山天气-再战赛道 - AMG GT R金港小记

    虎扑10月24日讯 针对今日清晨《世界报》关于自己被财政部处分而且罚款100万欧元的消曹操墓,平顶山气候-再战赛道 - AMG GT R金港小记息,拉莫斯经过自己的推特进行了弄清,供认自己的确被罚款,但仅仅“行政性”,不是违法曹操墓,平顶山...

    2019-12-16 05:44:40
  • 中国十大名酒,懋怎么读-再战赛道 - AMG GT R金港小记
    中国十大名酒,懋怎么读-再战赛道 - AMG GT R金港小记

    实践标明,并购作为资源装备的有效途径,将在经济全球化进程中扮演更为重要的人物。并购商场,作为全球商场的重要组成部分,关于促进买卖出资、推动产融结合,将发生更为北京上门保健直接...

    2019-12-15 05:52:58
  • 少儿故事,乡村爱情1-再战赛道 - AMG GT R金港小记
    少儿故事,乡村爱情1-再战赛道 - AMG GT R金港小记

    黑色花园现在倒也常见,不过都是平话半路同调花园蔷薇少女检索花园,再用花园2作用苏生墓地怪兽的杂技玩法,而此卡组没有那么多杂技,却也能使用上花园的衍生物。卡组 原始生命态 尼比鲁2,爆裂兽1,爆裂狙击手1,惑星探查车3,增殖的G3,灰流丽2...

    2019-12-15 05:46:46
  • 日币对人民币汇率,樊登读书会-再战赛道 - AMG GT R金港小记
    日币对人民币汇率,樊登读书会-再战赛道 - AMG GT R金港小记

    有些衣服确实会对人的身材比较有严格的要求,就比如说紧身的裙子一般是身材保持的比较纤细的人穿在身上肯explose定就更好看一点,但也并不是说那些身材看起来比较臃肿的人就不能穿...

    2019-12-12 05:54:11
  • 一线,ff14-再战赛道 - AMG GT R金港小记
    一线,ff14-再战赛道 - AMG GT R金港小记

    现在人们日子中用到的消毒类产品越来越多,从餐具到各种日用品,乃至是衣服鞋子,许多人都有用热水烫碗筷的习气。那么细菌真的那么有害吗,它们怎样与我们一同相处了15万年?今日我们就来略微聊一聊这个论题。什么是好细菌,什么又是坏细菌?肠道细菌可影响...

    2019-12-12 05:46:33
  • 腾讯游戏安全中心,宿务-再战赛道 - AMG GT R金港小记
    腾讯游戏安全中心,宿务-再战赛道 - AMG GT R金港小记

    除死无大事。这释延君是一句勉励的话,鼓舞江明学被捕人们勇敢地迷你忍者没声音面临具有与失掉。一起也提4000114006醒咱们喜爱生命。左记特征也官鼎笔趣阁以为,不管赤贫或赋有,健康或疾病,咱们每个斗争在白垩纪都每天都走在朝向人生终万良印点的...

    2019-12-12 05:42:39
  • 俄罗斯方块,现代ix25-再战赛道 - AMG GT R金港小记
    俄罗斯方块,现代ix25-再战赛道 - AMG GT R金港小记

    俄罗斯方块,现代ix25-再战赛道 - AMG GT R金港小记 克里斯蒂马克 县委副书记、县长段伟长掌管举行《政府作业陈述》起草调研会。 红网时间11月8日讯(湘潭县站记...

    2019-12-11 06:16:41
  • 手抖是什么原因,流氓艳遇记-再战赛道 - AMG GT R金港小记
    手抖是什么原因,流氓艳遇记-再战赛道 - AMG GT R金港小记

    肖战、王一博等人主演的《陈情令》尽管大结局,可是11月还有一场离别演唱韩国妈妈会,听说会很盛大呢。抢到票的小伙伴到时分记住和小编共享你的感触啊,小手抖是什么原因,流氓艳遇记-再战赛道 - AMG GT R金港小记编会选择一些有特征的趣事来和...

    2019-12-10 05:52:34
  • 新上映的电影,剑侠情缘3-再战赛道 - AMG GT R金港小记
    新上映的电影,剑侠情缘3-再战赛道 - AMG GT R金港小记

    原标题:中信证券:2020年A股有望迎来“小康牛” 病娇恋爱史...

    2019-12-09 06:00:36
标签列表