课程咨询 :186-8884-0703
课程咨询QQ:1587144692

深圳iOS培训 > 达内新闻 > 深圳IOS培训:如何在中国打造出一支好的团队【上】
  • 深圳IOS培训:如何在中国打造出一支好的团队【上】

    发布:深圳达内      来源:深圳达内      时间:2015-11-18

  • 深圳IOS培训:如何在中国打造出一支好的团队?本文为&Ticwear CTO雷欣博士从Coding、开发环境以及团队合作等角度切入,分享谷歌的工程师文化、以及他和他的团队是如何在中国打造公司的工程师文化。

    深圳IOS培训:如何在中国打造出一支好的团队【上】

    一、什么是谷歌的工程师文化

    在加入谷歌之前,我曾在微软和斯坦福研究所工作过。这两个地方其实是非常不一样的,微软是一种传统软件的开发模式,而斯坦福研究所是一个研究所,主要工作更偏向研究方向,更看重创新等能力,反而对代码质量等的要求不是特别高。

    到了谷歌之后,我印象最深的是,谷歌对代码质量的要求和追求到了一种近乎狂热的程度,主要体现在几个方面:

    Coding Style。谷歌内部有一套非常长的Coding Style Guide For Every Language。其中C++是谷歌的主要语言,包括其他语言如Java、Python等,不管什么语言,谷歌都有一个很长的Style Guide。

    Readability。在谷歌,当你要想写程序的时候,要先拿到所谓的Readability。假如你的代码质量不过关,没有通过Readability考核的话,那你的代码可能就没法Check In到代码库里面。

    Unit Test。谷歌有非常完善的Unit Test机制,也有十分强烈的Unit Test文化。大家都知道,写软件其实跟搭积木很像,如果下层基础不扎实的话,那整个软件框架其实是很危险的。在谷歌,差不多每做一次代码改动都会有一个Unit Test,虽然这会让开发变慢,但它也意味着高质量和可靠性。

    Code Review。谷歌很重视Code Review,基本上谷歌所有代码都会保证至少有两个以上的人对它Review后,才会让你Check In。

    LGTM(Look Good To Me)。最后,你的代码写完之后,你需要得到这样一个“LGTM”,就是“Look Good To Me”,得到这样一个Prove后,你才能把这个代码提交上去。

    高效的开发环境

    1、强大稳定的Base库

    除了对代码质量的高要求,谷歌的开发环境也相当强大,非常高效。在谷歌,成千上百万的代码用的其实都是同一个代码库,大家共享一套强大稳定的Base库。

    这点是我以前在微软的时候没有看到的,在微软,我们可能是每个小组都有自己的代码库,而且每个小组都有自己不同的代码规范和风格,因此,当更换团队或跨组工作的时候,不同小组之间的不同标准就会造成一些困难。

    但在整个谷歌,所有的代码规范都是统一的,因此可以这样想,假如把代码质量看作一个函数,描述成一个高斯分布的话,那谷歌的总体代码是高斯分布的Balance,方差是非常小的,整体质量是非常高的。

    2、代码构建工具Blaze

    代码的话,谷歌有一个构建工具叫Blaze,这是一个好东西。我们写代码的人可能都知道Makefile,但这个工具的话,我记得以前经常会花更多的时间在调这个Makefile,而不是写代码上。

    但谷歌的Blaze就让事情变得简单了,它可以让我们集中精力在代码上,进行快速并行编译,并且效率非常高。

    实际上,很多前谷歌人从谷歌出去后,想到的第一件事都是怎么重现谷歌的这个框架,怎么能够重新搭建这些东西,让写代码变得更加容易。

    其实,很多公司都有类似的工具,比如Facebook有Buck,Twitter有Pants,国内有个更加山寨的Blade,实际上这些东西都是想要达成Blaze的机制。

    谷歌还有其他很多好东西,譬如Protocol Buffer,就是一种数据交换的格式;Stubby,谷歌后台系统基于HTTP的RPC机制;还有Map Reduce、Big Table、GTest、 GFlags、 GLog等等。总的来讲,这些东西能让让开发更高效。

    3、敏捷的开发团队

    谷歌的开发团队一般都是比较小、比较敏捷的。以前谷歌的CEO Eric Schmidt说过这样的话,“Google有影响力的项目都是2个人的小团队开发出来的,如搜索、广告、Gmail”。

    一位在腾讯的前谷歌人也说过这样一句话,“3-5个人做不好的事情,30-50人做的更烂”。我是比较倾向于认同这句话的,假如一个项目在初始阶段,没有靠那么两三个人把框架搭得非常好的话,你再招更多的人只会是添乱,增加沟通、交流的成本。

    一个很小的、2-3人的小团队有什么好处呢?你能实现快速开发、快速上线、快速迭代,然后再去推进这个产品的改进。

    4、一切自动化,数据驱动

    谷歌还有一个特点是一切自动化,数据驱动。我们以前在谷歌是做语音识别的,语音识别中其实有很多东西是需要人手动去参与、调解的,比如一些参数类的东西。当时,我们组里面就有人提出要做这么一件事情——当时谷歌有40、50种语言的识别系统,那我们做这样一套系统,我按一个键,它过一段时间就能把所有的、每一种语言的语音识别系统全都训练出来,然后全部自动推上线,中间过程中不需要任何人的参与。当时就有人提出了这样的想法,这就有点将工程做到极致、做到最优的理念,这是非常重要的。

    更多深圳达内资讯请看点击这里:深圳IOS培训中心

    深圳IOS培训中心

上一篇:深圳IOS培训 :2016年软件开发发展六大趋势

下一篇:【深圳IOS】开发者如何选择 iOS和安卓哪个更好赚钱?(上)

最新开班日期  |  更多

3G-IOS软件工程师就业班

3G-IOS软件工程师就业班

开班日期:3月31日

3G-IOS软件工程师就业班

3G-IOS软件工程师就业班

开班日期:3月31日

3G-IOS软件工程师周末班

3G-IOS软件工程师周末班

开班日期:3月31日

3G-IOS软件工程师周末班

3G-IOS软件工程师周末班

开班日期:3月31日

  • 地址:深圳市龙岗区横岗力嘉路2013文化创客园A栋——深圳IOS培训中心龙岗校区
    深圳市宝安区共乐路西乡商会大厦10楼——深圳IOS培训中心宝安校区
  • 课程培训电话:186-8884-0703
    课程咨询QQ:1587144692     全国服务监督电话:400-111-8989
  • 服务邮箱 tousu@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56