来自谷歌的开发心得:所有SQL和代码,都没必要藏着掖着
至少从工程技术的角度看,你的项目绝没有想象中那么“见不得光”。
谷歌在代码管理上很有特色,他们基于“主干”进行开发,并且将 90% 以上的代码放在名叫 Piper 的单一代码仓库中,由来自世界各国数十个办事处的数万名软件开发人员共享。对于那些开源的、需要外部协作的项目,代码才放在版本管理软件 Git 里,主要是 Android 项目和 Chrome 项目。
整个仓库采用树状结构,每个团队有自己的目录,目录路径就是代码的命名空间。每个目录都有负责人(owner),负责批准该目录的文件变动。
这种方法已经在谷歌运行了 20 年以上。2015 年,谷歌的这个代码库就包含了大约十亿个文件,并且具有约 3500 万次提交的历史。代码一般提交到主干的头部,保证所有用户看到的都是同一份代码的最新版本,支持文件级别的权限控制,99% 的代码对所有用户可见。只有少部分重要的配置文件和机密的关键业务,设有访问限制。所有的读写都有日志,管理员能够查到谁读过这个文件。
与给代码制定各种访问权限的管理方式相比,谷歌的方法带来的好处是很明显的:任何人都可以浏览和使用全公司的代码,大大促进了代码的共享和复用;具有统一的版本和路径,不存在找不到文件的最新版本这样的问题;每次代码变动,很容易撤销或者用预提交测试它所造成的影响…
就连 SQL 的管理,谷歌也在一定程度上遵循了这些原则。本文作者是一名数据工程师,给谷歌当了两年的供应商,在期间发现谷歌的数据工程师对待 SQL 的态度,跟软件工程师们对待代码的态度非常相似。他认为这种态度非常重要,无论大小企业都值得在数据战略中采取这样的心态。我们将作者的文章翻译了出来,通过他的文章,我们将一同了解谷歌这种把 SQL 当成代码的态度有哪些助益,又能给体量较小的组织机构带来哪些启示。