如何高效地协作开发:一些 Google 的实践
blog.incoming@1byte.io (江宏)
2023年3月23日 08:00
这是我一年前发在 TapTap 内部 Confluence 的一篇文章,经过一些修改后公开出来,希望对更多人有价值。
Google 的很多软件工程实践都在对外发布的各种 Tech Talk、CppCon 的演讲以及多本已出版的书里提到过(比如 Software Engineering at Google、Site Reliability Engineering 等),所以这篇文章的内容并不算新鲜事,只是贡献一些个人视角。另外我在 Google 工作已经是 10 多年前的事,现在可能已经变化很大,但我认为 2000~2010 年的时候是 Google 最有创造力、最高效、对人才的吸引力也最强的时候。
一点背景 有时言必谈前公司的人会有点让人讨厌,不过无论是之前创业,还是现在,讨论起工程方面的事情都很难避免提起 Google 是怎么做。Google 和所有公司一样,并不是所有方面都做得很好,比如产品能力以及饱受诟病的客户服务。但就是因为在 engineering 方面领先大部分公司很多,所以削弱了其他方面的弱点带来的影响。Google 取得成功的大部分产品基本都是在技术实现上大幅领先同时代的产品,从而实现用户体验上的领先,早期产品中最有代表性的是 Search、Maps 和 GMail。Google 的 engineering culture 也对包括 Facebook 等在内的大量硅谷公司以及国内包括字节这样的公司产生了深远影响。
我在 Google 的三年是在一个叫 Google Web Server(简称 GWS)的团队。这个项目可以说是 Google 历史最悠久的项目,从 Google 存在开始就有 GWS,到现在 20 多年,Google 的 HTTP header 里 server 还是 GWS,应该还是同一个项目、同一个 code base 和 binary。
GWS in Google’s HTTP header