一个程序员眼中的Google公司文化中的核心原则
本文是对一位前Google的搜索质量工程师的观点进行了体验与总结,借此与大家共勉!
Google公司一直以其轻松随意的企业文化著称于世。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以同样的方式在共享工具上进行投入,它也会共享测试框架,并通过最好的测试实践让大家写测试变得更容易。
你也许感兴趣的:
- 谷歌抛弃滚动加载——重新采用「分页」显示搜索结果
- 【外评】泄露API文档揭示谷歌搜索如何把守互联网大门
- 【外评】谷歌搜索 API 文档泄露
- 【外评】披萨上的胶水?两只脚的大象?谷歌人工智被媒体嘲讽
- 【外评】谷歌云计算 VMware 引擎 (GCVE) 私有云宕机事故
- 【外评】Flutter 是否面临死亡?
- 【外评】Flutter 团队有多大?
- 【外评】谷歌搜索结果被人工智能编写的错误代码污染,令程序员沮丧不已
- Google Reader被“代码屎山”杀死
- 谷歌裁掉整个 Python 团队!PyTorch 创始人急得直骂人:“WTF!核心语言团队无可替换”
你对本文的反应是: