先说一个故事:某公司最近线上代码级Bug越来越多,领导就在想如何提高代码质量,如何让开发人员提升代码质量,于是领导决定每个小组每两周必须进行一次代码评审,拣选一块代码,小组成员参加,20分钟左右完成,评审完成后要将问题和改进点整理发到群里。
刚开始的前一段时间开发人员还挺积极,积极组织积极参与积极改进,可过了没多长时间就变了,仿佛大家的热情在下降,评审代码也越来越敷衍,如此下去是否会变成形式主义?
那么领导的评审目的达到了吗?
什么是代码评审?
代码评审也称代码复查,是指通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动。——百度百科
代码评审的目的?
目的是改善和保证代码质量,预防 Bug(也就是减少Bug),尽早的发现代码缺陷。推行团队代码规范,形成团队技术氛围,加深技术团队成员沟通,老带新互助成长等等。
都有谁来参加?
团队所有人员,也可邀请跨团队参加。
多久评审一次?
一周一次或两周一次,要保证每次代码评审的质量,如果太过频繁恐怕会被人骂死的。每次评审时间要简短,不讨论跟代码无关的事情。
如何通知大家?
事都定了还愁不知道怎么通知大家吗?会议邀请、口头邀请、IM群邀请等等,各显神通就好。
人都来了,评什么?
标准是:代码编写是否规范、高效、简洁、健壮、可读性强。
看代码是否符合代码规范、代码是否简洁易懂、是否存在逻辑漏洞、是否重复代码、是否存在安全漏洞、代码性能是否可以改进等等。
切记评审时不要批评代码或人员,例如:这个代码写的真垃圾。而是提出正面建议,例如:这块代码换成其它写法会更好一点,替换这个方法性能可能会更高一点。要做到只对代码不对人,避免打击开发人员的评审积极性。
业务逻辑代码如何评?
如果要针对具体的需求逻辑代码进行评审,建议只邀请本需求相关人员、产品、资深架构人员参与,业务逻辑代码评审重在需求业务逻辑,要保证业务的正确性。统一逻辑,尤其可以保证多端开发统一代码逻辑(iOS、Android、H5)。
评审完成后做什么?
代码评审完成后要进行汇总整理,把会上的问题和总结进行详细记录,可供其他团队借鉴,如存在未讨论清除问题,需在会后继续讨论。要做到有问题的都解决,提出的建议都整改。如果只评不改,那还要评审有什么用。另外可以拣选优秀代码片段,发出来让团队共同学习。
代码评审有效果吗?
在进行了一段时间的代码评审,要持续观察评审的效果,参与人员是否出现厌恶情绪或者消极情绪,如果出现应积极应对,倾听大家意见。
另外就是通过代码评审,我们的目的真的达到了吗?想一想我们的最初决定实行代码评审的目的是什么?如果是提高代码质量,那经过一段时间后,开发人员的代码质量是否有所提高。如果是规范代码,那么开发人员的代码是否更符合代码规范。
其实代码评审是过程,结果最重要。