一个程序员眼中的Google公司文化中的核心原则

图0:一个程序员眼中的Google公司文化中的核心原则

本文是对一位前Google的搜索质量工程师的观点进行了体验与总结,借此与大家共勉!

Google公司一直以其轻松随意的企业文化著称于世。Google公司的企业哲学在其一些看上去漫不经心的信条中展现得淋漓尽致,如“无需作恶,也可赚钱”、“无需西装革履,也可认真执著”、“工作充满着挑战而挑战充满欢乐”等等。

图1:一个程序员眼中的Google公司文化中的核心原则

让我们一起看看下在Google的工程师眼中,Google公司文化中的核心原则是什么?

1、把工程资源用于共享工具和抽象概念。

Google在工具和抽象概念上大力投资,例如Protocol Buffers,MapReduce,BigTable和其他在工程中自始至终都会用到的东西。解决问题好的态度并使得每个人能够接受已经带来巨大的收益。每个团队都花费较少的心理周期选择使用哪个工具,专注于工具的团队能够更关注提升工程生产力,和改善已经使用的工具和服务。

2、在新工程师培训中投资可重复使用的训练材料

一个工程师在Google能够迅速变得高产的一个原因是公司在培训材料上面花了大力去投资,其称之为Codelabs,Codelabs包括了公司的核心抽象模型,解释它们为什么被设计出来,突出代码库的相关片段,以及通过实现练习验证理解它们。

3、标准化编码约定

每个关于空格、大小写、行长度、是否使用智能指针等约定,可能似乎是不重要的,但是到了Google这样的大规模时会带来巨大的影响。因为大家都遵循同样的约定,使得浏览代码变得大大容易。当更换团队或在跨部门项目中工作时,这几乎没有额外支出去学习新团队的约定。

4、通过代码复审(Code Review)提升代码质量

对每次改变进行代码复审减缓了迭代更新的速度,但是提升了代码质量,新工程师收到反馈后,他们需要迅速的采取最佳的实践并专注于公认的代码质量等级。总体的代码质量越高,也就意味着新工程师在模仿周围人员的代码同时,初期就会写出更加简洁的代码。因此,代码复审有助于公司在较大规模上位置较高的软件质量。

5、用正确数据解决很多问题

Google研发主管Peter Norvig经常谈到在解决复杂问题上“不合理的数据有效性”。正确的数据能够帮助你了解用户,划分办公室政治,解决争论,并让你跟上进度。开发日志和数据基础工具,如Sawzall和MapReduce,使Google的工程师从大量数据中筛选出来变为可能。

6、自动化测试来衡量你的代码

Google有十分强烈的单元测试文化,“厕所测试”就是一个例子。这让开发变慢,但它也意味着成百上千的工程师可以改变代码库中的同一部分而不会牺牲过多的质量和可靠性。Google以同样的方式在共享工具上进行投入,它也会共享测试框架,并通过最好的测试实践让大家写测试变得更容易。

你也许感兴趣的:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注