在研发管理上面,比较重要的就是编码的规范,单元的测试,持续重构和Code Review,我们现在着重的讲一下Code Review
很多人认为 Code Review很难实现,很难很好的落地执行,
那么因为很多人对Code Review抱有着这样的错误认知,导致的出现的这样问题,相比和之前遭受的挫折有关,于是我们从Code Review的价值角度说一些,为什么需要Code Review,这样只要认知了Code Review,就可以清楚的做到Code Review,而且,Google也开源了自己的Code Review的最佳实践
Code Review,中文叫做 代码审查,其执行起来并不容易,可能伴随着需求变化大,项目工期紧,导致的Code Review难以实施,至于为什么难以实施,可能是因为Code Review过程中,存在着一些误区
1.Code Review ,可以让你彼此促进代码水平
一个团队中,必然有着技术好的资深Coder和相对薄弱的新进Coder,但无论资深员工的代码功底多么的深,都可以去犯错误,只要去Code Review,就可能出现错误,所以无论自己觉着多么好的代码,只要经过不断的推敲,都有持续改进的空间
所以,永远不要觉着自己很厉害,写的代码不需要别人Review了,也不要觉着自己的水平一般,没有资格给别人Review了
2.Code Review,保证代码的统一
因为一个产品,必然是一个团队的产出,是一个团队的共同智慧的结晶,一个人默默的写代码去提交,不进行团队的Review,代表的只是一个人的智慧,代码的质量取决于一个人的技术水平,如果经过多个人Review,那么这个代码就好比是整体的团队智慧结晶
3.Code Review能够提高代码的可读性
很多时候,可读性都是占着大头的一部分,只要可读性好,那么后期维护起来就比较容易,线上的bug比较容易排查,新人容易熟悉代码
当然,自己看自己的代码,感觉是不会很难读懂的,但是时间一长了,改动的多了,就感觉不好使了,这时候,我们可以借助Code Review,让他人帮忙,将代码提交到Review Board之后,让所有的代码改动放一起
4.Code Review 是技术交流的有效途径
很多时候需要团队中进行技术和业务的传递,如何做传帮带呢?当然,业务上,需要文档,在技术上,就可以选择使用Code Review,每次的Code Review都是一次案例讲解,通过Code Review来提高技术水平
5.Code Review,让原本的代码有备份
如果只有一个人了解这个代码,这个同事恰好有事,别人就不了解这个代码,但是Code Review,可以保证有多个人能够了解这部分的代码
6.Code Review 打造良好的技术氛围
Code Review的多过程中,如果双方可以对一片代码进行不断的改进,提出有建设性的意见,展示自己的能力,那么可以增进双方的技术交流,活跃技术的气氛
一个良好的气氛,可以让团队有着强力的自驱力,不用leader 反复强调代码的重要性,自己就会去主动的关注代码的质量问题
7.Code Review可以交流技术
使用Code Review,可以彼此双方,去进行某一方面的技术交流,提高协作的效率
8.Code Review可以提高团队的自律性
在开发的过程中,难免有人不自律,存在着侥幸的心理,因为自己的代码无人看,所以随便就提交了,但是Code Review会让其无从隐藏,让大家逐渐的不再随便应付
如何去真正的执行Code Review?
是啊,对于一个技术力不是很强的团队,或者在项目刚起步,工期很紧的情况下,如何去执行CodeReview呢?
虽然有人认为,Code Review的流程长,浪费时间,工期紧张,今天改的代码,明天就要上,如果要等着同事再review,那么必然来不及
即使是工期紧,那么也应该坚持使用Code Review,一旦Code Review进行的熟练之后了,那么进行Code Review就好比键盘盲打,很简单了
如何代码的业务一直在变,今天的代码明日就要改,那么是不是不需要Code Review了呢?
这种情况在一些初期的创业公司和项目早期阶段很常见,追求的是短平快,但是Code Review仍然不可以缺少
虽然团队的水平不高,过往没有Code Review的经验,自己的代码都写不明白,别说Review别人了,但是团队的水平是可以培养的,可以让资深的同事帮助新人去Review,讲技术传递下去
虽然一开始Code Review的执行很不错,但是时间长了,那么Code Review可能就流于形式了,随便找个人去Review下,Review的人也不认真,随便就看了看,照这样肯定是不可以的
必须严格执行Code Review,即使需要一些杀鸡儆猴,可以将Code Review和KPI联系到一起,让高级工程师利用Code Review来展示自己的技术,提高整体对Code Review的认同感
本章的重点:
我们为何需要Code Review,因为其可以很好的实践三人行必有我师,能够摒弃个人的英雄主义,让技术良好的传递,打造一个良好的范围
当然,我们说了一些落地执行的问题,当然并不好执行
课后思考
对于是否进行Code Review,有什么看法,是否公司有着严格的Code Review,Code Review中有什么问题呢?
Code Review是个好东西,懂得人不少,可是能够执行起来的难上加难,大厂何尝不是,好处能列一大堆,可是咱不是领导,没有带头的能力,自己一个人搞Code Review起不了什么作用,只能各扫门前雪,自己对自己的些重构罢了