我听说Google拥有一个巨大的私有(内部)所有代码存储库,其员工可以访问它,因此在开发事物时,他们不必重新发明轮子。我想了解更多!
Google上有没有人可以更详细地描述它,或者您是否对此有所了解?我感兴趣的是主要了解它的组织方式以及它们如何使员工轻松找到必需的庞大代码库中的内容。
我听说Google拥有一个巨大的私有(内部)所有代码存储库,其员工可以访问它,因此在开发事物时,他们不必重新发明轮子。我想了解更多!
Google上有没有人可以更详细地描述它,或者您是否对此有所了解?我感兴趣的是主要了解它的组织方式以及它们如何使员工轻松找到必需的庞大代码库中的内容。
Answers:
这是一段解释其组织方式的视频:以Google的速度和规模发展
Ashish Kumar展示了Google如何在一个包含数亿条代码行的单个代码干中,将超过2000个项目的所有源代码保存在一个代码主干中,超过5,000名开发人员访问同一个存储库。
大多数情况下,Google使用Perforce设置。但是,有一些内部工具可以使其他工具(例如git)在其上运行。(我不知道他们是如何做到的。)但是,大型开源项目(例如Android和Chromium)有单独的存储库。
在Perforce之上构建了许多出色的内部应用程序。例如,有一些工具可以使构建,测试和代码审查变得神奇。
部分由于这种“魔术”和测试文化,Google并未真正使用分支。每个人都检查到“主要”。对于任何项目,您都可以在没有任何专业知识的情况下查看源代码,进行构建并运行单元测试。这是巨大的。当我在Microsoft时,每种产品都需要牺牲不同的动物来构建和运行他们的测试,这是不可能的。
此外,Google 针对我们使用的主要语言提供了全公司范围的样式指南。如果您可以访问另一支团队的源代码,那么格式化就很奇怪!
至于搜索,您可能熟悉Google Code Search。有一个特殊的版本,以及其他使代码导航更容易的绝密代码搜索工具。
简而言之,Google具有以工程为中心的文化,了解工具的价值和开发人员的生产力。
它是巨大的:
(截至2015年1月)
- 文件总数:10亿
- 源文件数量:900万
- 代码行数:20亿
- 历史深度:3500万次提交
- 内容大小:86 TB
- 每个工作日的提交次数:45,000
他们使用称为Piper的内部工具,其本身依赖于Google基础架构。