谷歌的软件工程:软件开发
· 阅读需 6 分钟
业界公认,谷歌是一家工程能力超强的公司。它有哪些好的工程实践?我们可以在里面得到哪些启发?其中又有哪些地方是被人诟病的?这些内容比较细致我们慢慢讲,本篇主要是讲开发。
代码库
- 截止15年有 20 亿行代码存在少量的 Monorepo 单一代码库中,绝大部分代码对所有人是可见的。谷歌鼓励工程师见到有问题就可以改,只要所有人审核通过,就能进库。
- 几乎所有的开发都是在代码库的头部 (head) 进行的,而不是在分枝上,避免 merge 时候遇到问题,安全修复也更方便。
- 每个改动都会触发测试,有错几分钟内就能通知作者和审查者。
- 代码库的每个子树至少有两个所有人,其他开发者可以提交修改,但是所有人批准才能进库。