0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

谷歌工程师文化的六个核心原则是什么?

工程师人生 来源:网络整理 作者:工程师吴畏 2018-08-08 09:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

每周,一组谷歌员工都会在厕所的墙壁上粘贴一页来分享本周的测试小建议。有时这页纸会讨论依赖注入,并提供一个简单的示例展示如何用不同语言使用它;有时它可能会分享如何安装一个用于测量团队代码库测试覆盖率的软件。“Testing on the Toilet”起初是个奇怪又有趣的方式,来教给工程师在工作中会用到的一些新的东西,这也被突出为Google文化中的核心力量:向工程师组织有效的传播一系列最佳实践。

我大学毕业后便加入Google的搜索质量团队,在2006年中旬到2008年中旬在其工作,在这期间,公司的规模从8000人上涨到20000人。在我的第一个项目,我同两位极具天赋的工程师一起工作,短短六个月,我们原型化、测试并启动了网站的新功能,每天向数百万用户在google.com上展示相关搜索。作为团队的新员工,自始至终最突出的感受是在这样的环境中,公司如何能使像我这样的新工程师快速成长起来。

如果这不是Google工程文化的关键要素,对于我们这样规模的团队在如此短时间内发布新特性是极为困难的。这些要素能够让我迅速地获得Google的代码库、工具和基础设施。它们也是使公司能够达到今天50000雇员规模的原因。

一些前谷歌员工可能抱怨公司变得迟缓和官僚,但是不可否认它已经获得很高的成就和很大的规模,在《财富》评选的100家最适合工作的公司中名列前茅。

这有我从谷歌工程文化中获得的六个核心原则,你可能能够从中获益:

工程资源用于共享工具和抽象概念。在早期谷歌在工具和抽象概念上大力投资,例如Protocol Buffers,MapReduce,BigTable和其他在工程中自始至终都会用到的东西。解决问题好的态度并使得每个人能够接受已经带来巨大的收益。每个团队都花费较少的心理周期选择使用哪个工具,专注于工具的团队能够更关注提升工程生产力,和改善已经使用的工具和服务。每个团队可能使用截然不同的工具链,这也意味着当你学习了基本单元结构后,更容易理解许多项目背后的设计。这个方法的负面影响就是有些时候你可能感觉你的case是被强行塞入一个特别的良好支持的工具,即使它不是最好的。

在新工程师培训中投资可重复使用的训练材料。我在谷歌能够迅速变得如此高产的一个原因是公司在培训材料上面花了大力去投资,其称之为Codelabs,Codelabs包括了公司的核心抽象模型,解释它们为什么被设计出来,突出代码库的相关片段,以及通过实现练习验证理解它们。如果没有它,我将会花更多的时间来学习各种我需要去了解的各种技术,这也意味着我的队员要花费更多的精力向我去解释它们。我在谷歌这样积极的经历,强有力的影响了我在后来的Quora新人培训过程中大力推崇Codelabs使用的决定。

标准化编码约定。每个关于空格、大小写、行长度、是否使用智能指针等约定,可能似乎是不重要的,但是到了谷歌这样的大规模时会带来巨大的影响。我不是第一次承认,当代码校验人员挑刺我的代码令我感到十分不愉快,就因为我没有正确的缩进或在行长度超出了规定的两个字符。但是因为大家都遵循同样的约定,使得浏览代码变得大大容易。当更换团队或在跨部门项目中工作时,这几乎没有额外支出去学习新团队的约定。当团队规模很小时,约定是那种很容易被忽视的东西,但是在代码和团队规模逐渐壮大在这方面越来越做出改变,这样你事实上希望从始至终都是一致。如果可能早期在约定一致性上保持一致,或者使用谷歌开源的风格指南。

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

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

自动化测试来衡量你的代码。谷歌有十分强烈的单元测试文化,“厕所测试”就是一个例子,差不多我每做一次代码的改动都伴随一个单元测试,代码复审员将会严格地检查他们。这让开发变慢,但它也意味着成百上千的工程师可以改变代码库中的同一部分而不会牺牲过多的质量和可靠性。谷歌以同样的方式在共享工具上进行投入,它也会共享测试框架,并通过最好的测试实践让大家写测试变得更容易。

当我后来在Ooyala和Quora帮助他们构建团队和产品时,谷歌的工作强烈地让我思考,在哪些地方什么会形成良好的工程文化。然而,在谷歌这样规模的公司工作好并不一定意味着会在不同机构的不同发展时期的工作同样会好。每个工程决策都包括一系列权衡,但是谷歌工程文化提供了一部分权衡,而你可以从这里开始。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 谷歌
    +关注

    关注

    27

    文章

    6244

    浏览量

    110253
  • 工程师
    +关注

    关注

    59

    文章

    1600

    浏览量

    70649
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    硬件工程师面试必会:10核心考点#硬件设计 #硬件工程师 #电路设计 #电路设计

    硬件工程师
    安泰小课堂
    发布于 :2025年09月23日 18:00:33

    招镶入式工程师1,硬件工程师

    东莞市研生科技有限公司是一家蓝牙方案公司,主营蓝牙方案的设计开发,产品包括蓝牙BLE/4G透传/AI智能体方案开发,因公司发展需要需对外招聘嵌入式软件开发工程师,对蓝牙音频/BLE以及智能IC读卡器有三年实操经验,能单独完成项目的软件开发,男女不限,投简历邮箱:659055848@qq.com
    发表于 08-29 02:14

    做了电子工程师之后,最好拍的视频出现了#硬件设计 #电子DIY #电子工程师

    电子工程师
    安泰小课堂
    发布于 :2025年06月24日 17:45:57

    (仰天长啸)为什么受伤的总是硬件工程师...#MDD#MDD辰达半导体 #电子工程师

    电子工程师
    MDD辰达半导体
    发布于 :2025年04月27日 18:21:47

    问,成为硬件工程师需要几只手?#硬件工程师 #YXC晶振 #扬兴科技 #搞笑

    硬件工程师
    扬兴科技
    发布于 :2025年04月25日 17:15:37

    硬件工程师手册(全套)

    §1.2.1 硬件工程师职责 一技术领先、运行可靠的硬件平台是公司产品质量的基础,硬件工程师职 责神圣,责任重大。yf-f4-06-cjy 1、硬件工程师应勇于尝试新的先进技
    发表于 04-22 15:05

    Allegro工程师能力升级建议 工程师技能如何升级进阶

    根据Cadence认证体系及中国企业需求,Allegro工程师能力分三级,分别是初级、中级、高级工程师。那么这三种工程师技能如何升级进阶?   1、初级工程师(Layout基础) ①
    的头像 发表于 03-31 11:39 1292次阅读

    硬件工程师:回答我!#回答我 #硬件工程师 #YXC晶振 #扬兴科技

    硬件工程师
    扬兴科技
    发布于 :2025年03月25日 18:46:59

    一招拿捏电子工程师#被AI拿捏了 #电子工程师 #电子电工

    电子工程师
    安泰小课堂
    发布于 :2025年03月25日 17:30:51

    ADS805E的转换结果要延后六个采样周期才输出吗?

    这时序图是说明ADS805E这款芯片的转换结果要延后六个采样周期才输出吗?即图中的Analog In中的N点对应的转换后的Data Out中的N 吗?还是说,这时序图是说明此芯片在上电后的前六个
    发表于 01-23 07:50

    电子工程师的经验分享

    电子工程师在实际工作中积累了丰富的经验,这些经验对于新手工程师和电子专业的学生具有重要的参考价值。 一、电路设计经验 电路设计核心思想 电路设计的核心在于理解电路的基本原理和功能需求。
    的头像 发表于 01-14 10:14 1061次阅读