前端做代码review

1,487 阅读5分钟

代码review

团队中的代码review是一个重要的课题。

现状分析和意义

大多数开发人员,所认知的代码review,就是把代码拿出来给别人看,大家讨论讨论,脑子里面没有特别深刻的概念。

其实代码review所涉及的东西包括:review的工具、review的规范、review的流程、review的方式、甚至人员参与度、时间把控等等。

代码review的意义,当然就是通过流程管理,尽可能的减少线上问题。对于TL,通过这样的过程管理,能够对项目质量把控。

当然它也有一定的缺点,增加了软件开发的流程,一定程度上降低了效率。(不过这是假设我们的项目都是高质量的,如果项目的质量本身存在问题,等到线上修复的时候,代价会大的多)

一些软性的见解

1、代码review的环境塑造

代码review是一个交流的过程,如果代码写的好,那就是展示自我的平台,向大家分享优秀的实践。

如果代码有问题,也没有关系,发现问题,并且解决问题。

一般而言,TL在这个过程的态度很重要,如果TL以一个批评的口气来说谁谁谁有问题,那天然的大家会对这件事起反感。

如果TL能在这个过程,一直输出一些优秀的思维方式,代码架构方式,其实是给底下人传授经验的过程,大家感觉有收获,自然会喜欢review。

特别的要注意态度的问题,人的情绪是非常敏感的,如果团队有人说出类似“这行代码真垃圾”这样的话,TL关注的点一定不能说这个代码的问题,而是团队中的某些人的语气问题了。

探讨别人的代码的时候,可以说,这行代码可以怎么怎么实现,表达自己的认知就行了,不要表达特殊(不好)情绪。

个人反而非常喜欢赞赏别人,比如代码量多,可以说别人这段时间幸苦了。逻辑复杂,可以说这个确实耗费了不少心力之类的话。

2、代码review——如何推动

其实人总是不想把自己的东西暴露出来,类似我写的代码,就是我的东西的感觉。

在推动代码review的时候,要从两方面下手,相辅相成。一方面是价值宣导,让大家认可这件事,认可代码review的重要性,另一方面是需要一定的强制性,因为这个是团队代码质量的需要,也是公司业务稳定性的需要。

依照个人经验,价值观宣导,可以从行业内大厂的做法,以及必要性,甚至团队成员的职业发展上说明,大概率是可以让大家认可的。

每次遇到重大问题的时候,其实也是机会,就看我们会不会利用,假如出现线上问题,提出代码review的事情,大家应该会接受。

3、代码review——不忘初心

时刻谨记,我们的目的是什么。

不要改一行样式代码,就要进行一次review。因为这个东西本身没有什么探讨的价值。

一般而言,代码量超过一定量的时候,其业务复杂度,代码的设计都是可以进行探讨的。

review的规范

review的规范,应该结合团队具体的情况,举行施行。

不过还是有一些共性的东西:比如review的要点有那些?review的参与人都有那些?review的粒度是什么?

review的要点

1、代码格式是否符合规范

这一部分包括lint规范、命名规范等。lint规范一般使用工具可以解决,但是命名是否规范需要我们去审查。

2、代码的可读性

是不是有深层的if else嵌套。

是不是有难以理解的函数、或者一个函数过于长。

比如如果是Vue项目,官方推荐的风格指南:cn.vuejs.org/v2/style-gu…

3、边界问题

是不是有开发人员没有想到的异常情况,这一般是和具体的业务场景相关。

4、代码架构

代码的组织方式,是不是有调整的空间。是不是有可复用的代码,提取出来?

参与人员

如果比较小的团队,比如三四个人,大家做的东西,应该都比较了解,可以全员参与

如果比较大型的团队,其实也是按照所熟悉的业务,分为不同的方向,相关人员可以参与reivew。

不过具体执行层面,需要具体问题,具体分析。

review的粒度

个人认为,一些简单的改动,是不需要代码review的。

但是团队成员的管理上,需要一些硬性规定,那么可以把代码量超过500行,算作一个临界点。

review的工具

review是一个系统的工程,有参与的人员、有相关规范,一定也有工具。

个人实践上,在阿里内部,其实有类似的工具。

但是考虑大多数公司可能没有自己确定的工具,那么个人推荐开源工具reviewboard。

写在最后:本文是作者专题《前端团队技术打造》的一部分,查看更多内容请看下面的文章:juejin.cn/post/685705…