建站技术

Google是如何做代码检查的?

点击次数:    更新时间:2016/2/17 10:41:57  【打印此页】  【关闭

之前我说到过,我现已不在Google作业了。我还没有想理解应当去哪里—有两三个十分好的作业时机摆在我面前。由于在这段做决议时刻里,我不再受雇于任何人,我想能够写一些专业性的东西,一些很风趣,但也会在搭档和办理作业中致使联系紧张的东西。

Google是一个十分优异的公司。他们做出了许多令人称誉的东西—既是公司外部,我们能够看到的东西,也是公司内部。有一些在公司内部并不归于保密的作业,在外部并没有给予满足广泛的谈论。这即是我今日要说的。

让Google的程序如此优异的一个最主要的作业看起来是十分的简略:代码检查。并不是只要Google做这个作业—代码检查现已被广泛的认可为一种十分好的做法,许多人都在这么做。但我还没有看到第二家这么大的公司能把这种作业运用的如此遍及。在Google,没有程序,任何商品、任何项目的程序代码,能够在没有经过有用的代码检查条件交到代码库里的。

所有人都要经过代码检查。并且很规范的:这种作业应当变成任何主要的软件开发作业中一个根本准则。并不单指商品程序——所有东西。它不需求许多的作业,但它的作用是无穷的。

从代码检查里能得到啥?

很显然:在代码提交前,用第二群双眼检查一遍,防止bug混入。这是对其最常见的了解,是对代码检查的优点的最广泛的知道。可是,依我的经历来看,这反倒是它最不主要的一点。我们确真实代码检查中找到了bug。可是,这些在代码检查中能发现的绝大部分bug,很显然,都是微不足道的bug,程序的作者花几分钟的时刻就能发现它们。真实需求花时刻去发现的bug不是在代码检查里能找到的。

代码检查的最大的功用是纯社会性的。假如你在编程,并且知道将会有搭档检查你的代码,你编程情绪就彻底不相同了。你写出的代码将愈加整齐,有非常好的注释,非常好的程序结构——由于你知道,那个你很介意的人将会检查你的程序。没有代码检查,你知道我们终究仍是会看你的程序。但这种作业不是当即发作的事,它不会给你带来同等的紧迫感,它不会给你相同的自个评判的那种感触。

还有一个十分主要的优点。代码检查能传播常识。在许多的开发团队里,常常每一自个负责一个中心模块,每自个都只注重他自个的那个模块。除非是搭档的模块影响了自个的程序,他们从不彼此沟通。这种状况的后果是,每个模块只要一自个了解里边的代码。假如这自个休假或——希望不是——辞去职务了,其他人则束手无策。经过代码检查,最少会有两自个了解这些程序——作者,以及检查者。检查者并不能像程序的作者相同对程序十分了解——但他会了解程序的设计和架构,这是极其主要的。

当然,没有啥作业能简略的做下来的。依我的经历,在你能准确的进行代码检查前,你需求花时刻训练学习。我发现我们在代码检查时常常会犯一些过错,致使不少费事——尤其在一些缺乏经历的检查者中常常的呈现,他们给了我们一个很遭的代码检查的体会,变成了我们承受代码检查准则的一个妨碍。

最主要的一个准则:代码检查意图是在代码提交前找到其间的疑问——你要发现是它的准确。在代码检查中最常犯的过错——简直每个新手都会犯的过错——是,检查者依据自个的编程习气来评判他人的代码。

关于一个疑问,一般咱们能找出十几种方法去解决。关于一种解决计划,咱们能有百万种编码计划来完结它。作为一个检查者,你的使命不是来保证被检查的代码都选用的是你的编码风格——由于它不也许跟你写的相同。作为一段代码的检查者的使命是保证由作者自个写出的代码是准确的。一旦这个准则被打破,你终究将会倍感折磨,深受挫折——这可不是咱们想要的成果。

疑问在于,这种过错是如此的遍及而易犯。假如你是个程序员,当你遇到一个疑问,你能想到一种解决计划——你就把你想到的计划作为标准答案。但作业不是这么的——作为一个好的检查者,你需求理解这个道理。

代码检查的第二个易犯的毛病是,我们觉得有压力,感受非要说点啥才好。你知道作者用了很多的时刻和精力来完结这些程序——不该说点啥吗?

不,你不需求。

只说一句“哇,不错呀”,任何时候都不会不合适。假如你总是力求找出一点啥东西来批判,你这么做的成果只会危害自个的声威。当你诲人不倦的找出一些东西来,仅仅为了说些啥,被检查人就会知道,你说这些话仅仅为了添补幽静。你的谈论将不再被人注重。

第三是速度。你不能匆匆忙忙的进行一次代码检查——但你也要能迅速的完结。你的火伴在等你。假如你和你的搭档并不想花太多时刻进行代码复查,你们很快的完结,那被检查者会觉得很懊丧,这种代码检查带来的只要绝望的感受。就好象是打搅了我们,使我们放下手头的作业来进行检查。作业不该是这么。你并不需求推掉手头上的任何作业来做代码检查。但假如中途耽误了几个小时,你中心还要歇息一会,喝杯茶,冲个澡,或谈会儿闲话。当你回到检查现场,你能够继续下去,把作业做完。假如你真是这么,我想没有人情愿在那干等着你。


本文链接:http://www.yizheng.net.cn/content/?259.html
上一条:如何把互联网商品规划得简略易用?    下一条:重要商品的呼应式规划流程